aboutsummaryrefslogtreecommitdiff
path: root/aoc2023/build/packages/pqueue/src
diff options
context:
space:
mode:
Diffstat (limited to 'aoc2023/build/packages/pqueue/src')
-rw-r--r--aoc2023/build/packages/pqueue/src/pqueue.app.src10
-rw-r--r--aoc2023/build/packages/pqueue/src/pqueue.erl2246
-rw-r--r--aoc2023/build/packages/pqueue/src/pqueue2.erl483
-rw-r--r--aoc2023/build/packages/pqueue/src/pqueue3.erl404
-rw-r--r--aoc2023/build/packages/pqueue/src/pqueue4.erl11662
-rw-r--r--aoc2023/build/packages/pqueue/src/pqueue_test.hrl49
6 files changed, 14854 insertions, 0 deletions
diff --git a/aoc2023/build/packages/pqueue/src/pqueue.app.src b/aoc2023/build/packages/pqueue/src/pqueue.app.src
new file mode 100644
index 0000000..b153ad1
--- /dev/null
+++ b/aoc2023/build/packages/pqueue/src/pqueue.app.src
@@ -0,0 +1,10 @@
+%-*-Mode:erlang;coding:utf-8;tab-width:4;c-basic-offset:4;indent-tabs-mode:()-*-
+% ex: set ft=erlang fenc=utf-8 sts=4 ts=4 sw=4 et nomod:
+
+{application, pqueue,
+ [{description, "Priority Queue Data Structures"},
+ {vsn, "2.0.7"},
+ {modules, [pqueue, pqueue2, pqueue3, pqueue4]},
+ {registered, []},
+ {applications, [stdlib, kernel]}]}.
+
diff --git a/aoc2023/build/packages/pqueue/src/pqueue.erl b/aoc2023/build/packages/pqueue/src/pqueue.erl
new file mode 100644
index 0000000..2c57fa2
--- /dev/null
+++ b/aoc2023/build/packages/pqueue/src/pqueue.erl
@@ -0,0 +1,2246 @@
+%-*-Mode:erlang;coding:utf-8;tab-width:4;c-basic-offset:4;indent-tabs-mode:()-*-
+% ex: set ft=erlang fenc=utf-8 sts=4 ts=4 sw=4 et nomod:
+%%%
+%%%------------------------------------------------------------------------
+%%% @doc
+%%% ==Static Priority Queue.==
+%%% This priority queue implementation depends on a static number of priorities
+%%% (-20 (high) to 20 (low)) so that tuple access times can be exploited for
+%%% quick in/out priority queue operations. This implementation was created to
+%%% avoid the slowness within the priority queue used by both RabbitMQ and Riak
+%%% (https://github.com/basho/riak_core/blob/master/src/priority_queue.erl).
+%%% @end
+%%%
+%%% MIT License
+%%%
+%%% Copyright (c) 2011-2020 Michael Truog <mjtruog at protonmail dot com>
+%%%
+%%% Permission is hereby granted, free of charge, to any person obtaining a
+%%% copy of this software and associated documentation files (the "Software"),
+%%% to deal in the Software without restriction, including without limitation
+%%% the rights to use, copy, modify, merge, publish, distribute, sublicense,
+%%% and/or sell copies of the Software, and to permit persons to whom the
+%%% Software is furnished to do so, subject to the following conditions:
+%%%
+%%% The above copyright notice and this permission notice shall be included in
+%%% all copies or substantial portions of the Software.
+%%%
+%%% THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+%%% IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+%%% FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+%%% AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+%%% LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+%%% FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+%%% DEALINGS IN THE SOFTWARE.
+%%%
+%%% @author Michael Truog <mjtruog at protonmail dot com>
+%%% @copyright 2011-2020 Michael Truog
+%%% @version 2.0.1 {@date} {@time}
+%%%------------------------------------------------------------------------
+
+-module(pqueue).
+-author('mjtruog at protonmail dot com').
+
+%% external interface
+-export([in/2, % O(1)
+ in/3, % O(1)
+ is_empty/1, % O(1)
+ is_queue/1, % O(1)
+ join/2, % O(N) typically (?)
+ len/1, % O(N)
+ new/0, % O(1)
+ out/1, % O(1) amortized, O(N) worst case
+ out/2, % O(1) amortized, O(N) worst case
+ pout/1, % O(1) amortized, O(N) worst case
+ to_list/1, % O(N)
+ test/0]).
+
+%%%------------------------------------------------------------------------
+%%% External interface functions
+%%%------------------------------------------------------------------------
+
+-ifdef(ERLANG_OTP_VERSION_16).
+-type pqueue() ::
+ {integer(),
+ {queue(), queue(), queue(), queue(), queue(), queue(), queue()},
+ {queue(), queue(), queue(), queue(), queue(), queue(), queue()},
+ {queue(), queue(), queue(), queue(), queue(), queue()},
+ queue(),
+ {queue(), queue(), queue(), queue(), queue(), queue()},
+ {queue(), queue(), queue(), queue(), queue(), queue(), queue()},
+ {queue(), queue(), queue(), queue(), queue(), queue(), queue()}} |
+ {'empty',
+ {queue(), queue(), queue(), queue(), queue(), queue(), queue()},
+ {queue(), queue(), queue(), queue(), queue(), queue(), queue()},
+ {queue(), queue(), queue(), queue(), queue(), queue()},
+ queue(),
+ {queue(), queue(), queue(), queue(), queue(), queue()},
+ {queue(), queue(), queue(), queue(), queue(), queue(), queue()},
+ {queue(), queue(), queue(), queue(), queue(), queue(), queue()}}.
+-else.
+-type pqueue() ::
+ {integer(),
+ {queue:queue(), queue:queue(), queue:queue(), queue:queue(),
+ queue:queue(), queue:queue(), queue:queue()},
+ {queue:queue(), queue:queue(), queue:queue(), queue:queue(),
+ queue:queue(), queue:queue(), queue:queue()},
+ {queue:queue(), queue:queue(), queue:queue(), queue:queue(),
+ queue:queue(), queue:queue()},
+ queue:queue(),
+ {queue:queue(), queue:queue(), queue:queue(), queue:queue(),
+ queue:queue(), queue:queue()},
+ {queue:queue(), queue:queue(), queue:queue(), queue:queue(),
+ queue:queue(), queue:queue(), queue:queue()},
+ {queue:queue(), queue:queue(), queue:queue(), queue:queue(),
+ queue:queue(), queue:queue(), queue:queue()}} |
+ {'empty',
+ {queue:queue(), queue:queue(), queue:queue(), queue:queue(),
+ queue:queue(), queue:queue(), queue:queue()},
+ {queue:queue(), queue:queue(), queue:queue(), queue:queue(),
+ queue:queue(), queue:queue(), queue:queue()},
+ {queue:queue(), queue:queue(), queue:queue(), queue:queue(),
+ queue:queue(), queue:queue()},
+ queue:queue(),
+ {queue:queue(), queue:queue(), queue:queue(), queue:queue(),
+ queue:queue(), queue:queue()},
+ {queue:queue(), queue:queue(), queue:queue(), queue:queue(),
+ queue:queue(), queue:queue(), queue:queue()},
+ {queue:queue(), queue:queue(), queue:queue(), queue:queue(),
+ queue:queue(), queue:queue(), queue:queue()}}.
+-endif.
+
+%%-------------------------------------------------------------------------
+%% @doc
+%% ===Append an item to the tail of the 0 priority queue.===
+%% O(1)
+%% @end
+%%-------------------------------------------------------------------------
+
+-spec in(term(), pqueue()) -> pqueue().
+
+in(X, Q) ->
+ in(X, 0, Q).
+
+%%-------------------------------------------------------------------------
+%% @doc
+%% ===Append an item to the tail of a specific priority queue.===
+%% O(1)
+%% @end
+%%-------------------------------------------------------------------------
+
+-spec in(term(), integer(), pqueue()) -> pqueue().
+
+in(_, P, _)
+ when P < -20; P > 20 ->
+ erlang:exit(badarg);
+in(X, P, {empty, _, _, _, _, _, _, _} = Q) ->
+ in_higher(P, Q, X);
+in(X, P, {Pc, _, _, _, _, _, _, _} = Q)
+ when P < Pc ->
+ in_higher(P, Q, X);
+in(X, P, Q) ->
+ in_lower(P, Q, X).
+
+%%-------------------------------------------------------------------------
+%% @doc
+%% ===Check if the priority queue is empty.===
+%% O(1)
+%% @end
+%%-------------------------------------------------------------------------
+
+-spec is_empty(pqueue()) -> 'true' | 'false'.
+
+is_empty({empty, _, _, _, _, _, _, _}) ->
+ true;
+is_empty({_,
+ {Qn20, Qn19, Qn18, Qn17, Qn16, Qn15, Qn14},
+ {Qn13, Qn12, Qn11, Qn10, Qn9, Qn8, Qn7},
+ {Qn6, Qn5, Qn4, Qn3, Qn2, Qn1},
+ Q0,
+ {Qp1, Qp2, Qp3, Qp4, Qp5, Qp6},
+ {Qp7, Qp8, Qp9, Qp10, Qp11, Qp12, Qp13},
+ {Qp14, Qp15, Qp16, Qp17, Qp18, Qp19, Qp20}}) ->
+ queue:is_empty(Qn20) and queue:is_empty(Qn19) and queue:is_empty(Qn18) and
+ queue:is_empty(Qn17) and queue:is_empty(Qn16) and queue:is_empty(Qn15) and
+ queue:is_empty(Qn14) and
+ queue:is_empty(Qn13) and queue:is_empty(Qn12) and queue:is_empty(Qn11) and
+ queue:is_empty(Qn10) and queue:is_empty(Qn9) and queue:is_empty(Qn8) and
+ queue:is_empty(Qn7) and
+ queue:is_empty(Qn6) and queue:is_empty(Qn5) and queue:is_empty(Qn4) and
+ queue:is_empty(Qn3) and queue:is_empty(Qn2) and queue:is_empty(Qn1) and
+ queue:is_empty(Q0) and
+ queue:is_empty(Qp1) and queue:is_empty(Qp2) and queue:is_empty(Qp3) and
+ queue:is_empty(Qp4) and queue:is_empty(Qp5) and queue:is_empty(Qp6) and
+ queue:is_empty(Qp7) and queue:is_empty(Qp8) and queue:is_empty(Qp9) and
+ queue:is_empty(Qp10) and queue:is_empty(Qp11) and queue:is_empty(Qp12) and
+ queue:is_empty(Qp13) and
+ queue:is_empty(Qp14) and queue:is_empty(Qp15) and queue:is_empty(Qp16) and
+ queue:is_empty(Qp17) and queue:is_empty(Qp18) and queue:is_empty(Qp19) and
+ queue:is_empty(Qp20).
+
+%%-------------------------------------------------------------------------
+%% @doc
+%% ===Check if the priority queue type is as expected.===
+%% O(1)
+%% @end
+%%-------------------------------------------------------------------------
+
+-spec is_queue(pqueue()) -> 'true' | 'false'.
+
+is_queue({Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14})
+ when tuple_size(Qsn14) == 7, tuple_size(Qsn7) == 7, tuple_size(Qsn1) == 6,
+ tuple_size(Qsp14) == 7, tuple_size(Qsp7) == 7, tuple_size(Qsp1) == 6 ->
+ (((Pc =:= empty) or is_integer(Pc)) and queue:is_queue(Q0));
+is_queue(_) ->
+ false.
+
+%%-------------------------------------------------------------------------
+%% @doc
+%% ===Join two priority queues.===
+%% O(N)
+%% @end
+%%-------------------------------------------------------------------------
+
+-spec join(pqueue(), pqueue()) -> pqueue().
+
+join({P1c,
+ {Q1_n20, Q1_n19, Q1_n18, Q1_n17, Q1_n16, Q1_n15, Q1_n14},
+ {Q1_n13, Q1_n12, Q1_n11, Q1_n10, Q1_n9, Q1_n8, Q1_n7},
+ {Q1_n6, Q1_n5, Q1_n4, Q1_n3, Q1_n2, Q1_n1},
+ Q1_0,
+ {Q1_p1, Q1_p2, Q1_p3, Q1_p4, Q1_p5, Q1_p6},
+ {Q1_p7, Q1_p8, Q1_p9, Q1_p10, Q1_p11, Q1_p12, Q1_p13},
+ {Q1_p14, Q1_p15, Q1_p16, Q1_p17, Q1_p18, Q1_p19, Q1_p20}},
+ {P2c,
+ {Q2_n20, Q2_n19, Q2_n18, Q2_n17, Q2_n16, Q2_n15, Q2_n14},
+ {Q2_n13, Q2_n12, Q2_n11, Q2_n10, Q2_n9, Q2_n8, Q2_n7},
+ {Q2_n6, Q2_n5, Q2_n4, Q2_n3, Q2_n2, Q2_n1},
+ Q2_0,
+ {Q2_p1, Q2_p2, Q2_p3, Q2_p4, Q2_p5, Q2_p6},
+ {Q2_p7, Q2_p8, Q2_p9, Q2_p10, Q2_p11, Q2_p12, Q2_p13},
+ {Q2_p14, Q2_p15, Q2_p16, Q2_p17, Q2_p18, Q2_p19, Q2_p20}}) ->
+ {erlang:min(P1c, P2c),
+ {queue:join(Q1_n20, Q2_n20), queue:join(Q1_n19, Q2_n19),
+ queue:join(Q1_n18, Q2_n18), queue:join(Q1_n17, Q2_n17),
+ queue:join(Q1_n16, Q2_n16), queue:join(Q1_n15, Q2_n15),
+ queue:join(Q1_n14, Q2_n14)},
+ {queue:join(Q1_n13, Q2_n13), queue:join(Q1_n12, Q2_n12),
+ queue:join(Q1_n11, Q2_n11), queue:join(Q1_n10, Q2_n10),
+ queue:join(Q1_n9, Q2_n9), queue:join(Q1_n8, Q2_n8),
+ queue:join(Q1_n7, Q2_n7)},
+ {queue:join(Q1_n6, Q2_n6), queue:join(Q1_n5, Q2_n5),
+ queue:join(Q1_n4, Q2_n4), queue:join(Q1_n3, Q2_n3),
+ queue:join(Q1_n2, Q2_n2), queue:join(Q1_n1, Q2_n1)},
+ queue:join(Q1_0, Q2_0),
+ {queue:join(Q1_p1, Q2_p1), queue:join(Q1_p2, Q2_p2),
+ queue:join(Q1_p3, Q2_p3), queue:join(Q1_p4, Q2_p4),
+ queue:join(Q1_p5, Q2_p5), queue:join(Q1_p6, Q2_p6)},
+ {queue:join(Q1_p7, Q2_p7), queue:join(Q1_p8, Q2_p8),
+ queue:join(Q1_p9, Q2_p9), queue:join(Q1_p10, Q2_p10),
+ queue:join(Q1_p11, Q2_p11), queue:join(Q1_p12, Q2_p12),
+ queue:join(Q1_p13, Q2_p13)},
+ {queue:join(Q1_p14, Q2_p14), queue:join(Q1_p15, Q2_p15),
+ queue:join(Q1_p16, Q2_p16), queue:join(Q1_p17, Q2_p17),
+ queue:join(Q1_p18, Q2_p18), queue:join(Q1_p19, Q2_p19),
+ queue:join(Q1_p20, Q2_p20)}}.
+
+%%-------------------------------------------------------------------------
+%% @doc
+%% ===Determine the length of a priority queue.===
+%% O(N)
+%% @end
+%%-------------------------------------------------------------------------
+
+-spec len(pqueue()) -> non_neg_integer().
+
+len({_,
+ {Qn20, Qn19, Qn18, Qn17, Qn16, Qn15, Qn14},
+ {Qn13, Qn12, Qn11, Qn10, Qn9, Qn8, Qn7},
+ {Qn6, Qn5, Qn4, Qn3, Qn2, Qn1},
+ Q0,
+ {Qp1, Qp2, Qp3, Qp4, Qp5, Qp6},
+ {Qp7, Qp8, Qp9, Qp10, Qp11, Qp12, Qp13},
+ {Qp14, Qp15, Qp16, Qp17, Qp18, Qp19, Qp20}}) ->
+ queue:len(Qn20) + queue:len(Qn19) + queue:len(Qn18) + queue:len(Qn17) +
+ queue:len(Qn16) + queue:len(Qn15) + queue:len(Qn14) +
+ queue:len(Qn13) + queue:len(Qn12) + queue:len(Qn11) + queue:len(Qn10) +
+ queue:len(Qn9) + queue:len(Qn8) + queue:len(Qn7) +
+ queue:len(Qn6) + queue:len(Qn5) + queue:len(Qn4) + queue:len(Qn3) +
+ queue:len(Qn2) + queue:len(Qn1) +
+ queue:len(Q0) +
+ queue:len(Qp1) + queue:len(Qp2) + queue:len(Qp3) + queue:len(Qp4) +
+ queue:len(Qp5) + queue:len(Qp6) +
+ queue:len(Qp7) + queue:len(Qp8) + queue:len(Qp9) + queue:len(Qp10) +
+ queue:len(Qp11) + queue:len(Qp12) + queue:len(Qp13) +
+ queue:len(Qp14) + queue:len(Qp15) + queue:len(Qp16) + queue:len(Qp17) +
+ queue:len(Qp18) + queue:len(Qp19) + queue:len(Qp20).
+
+%%-------------------------------------------------------------------------
+%% @doc
+%% ===Create a new priority queue.===
+%% O(1)
+%% @end
+%%-------------------------------------------------------------------------
+
+-spec new() -> pqueue().
+
+new() ->
+ {empty, % current priority
+ erlang:make_tuple(7, queue:new()), % priority [-20..-14]
+ erlang:make_tuple(7, queue:new()), % priority [-13.. -7]
+ erlang:make_tuple(6, queue:new()), % priority [ -6.. -1]
+ queue:new(), % priority 0 (default)
+ erlang:make_tuple(6, queue:new()), % priority [ 1.. 6]
+ erlang:make_tuple(7, queue:new()), % priority [ 7.. 13]
+ erlang:make_tuple(7, queue:new())}. % priority [ 14.. 20]
+
+%%-------------------------------------------------------------------------
+%% @doc
+%% ===Take an item from the head of the priority queue.===
+%% O(1) amortized, O(N) worst case
+%% @end
+%%-------------------------------------------------------------------------
+
+-spec out(pqueue()) ->
+ {{'value', term()}, pqueue()} | {'empty', pqueue()}.
+
+out({empty, _, _, _, _, _, _, _} = Q) ->
+ {empty, Q};
+out({Pc, _, _, _, _, _, _, _} = Q) ->
+ out_current(Pc, Q, nopriority).
+
+%%-------------------------------------------------------------------------
+%% @doc
+%% ===Take an item of a specific priority from the head of the queue.===
+%% O(1) amortized, O(N) worst case
+%% @end
+%%-------------------------------------------------------------------------
+
+-spec out(integer(), pqueue()) ->
+ {{'value', term()}, pqueue()} | {'empty', pqueue()}.
+
+out(P, _)
+ when P < -20; P > 20 ->
+ erlang:exit(badarg);
+out(_, {empty, _, _, _, _, _, _, _} = Q) ->
+ {empty, Q};
+out(P, Q) ->
+ out_specific(P, Q).
+
+%%-------------------------------------------------------------------------
+%% @doc
+%% ===Take an item from the head of the priority queue.===
+%% Includes the priority in the return value.
+%% O(1) amortized, O(N) worst case
+%% @end
+%%-------------------------------------------------------------------------
+
+-spec pout(pqueue()) ->
+ {{'value', term(), integer()}, pqueue()} | {'empty', pqueue()}.
+
+pout({empty, _, _, _, _, _, _, _} = Q) ->
+ {empty, Q};
+pout({Pc, _, _, _, _, _, _, _} = Q) ->
+ out_current(Pc, Q, priority).
+
+%%-------------------------------------------------------------------------
+%% @doc
+%% ===Convert the priority queue to a list.===
+%% O(N)
+%% @end
+%%-------------------------------------------------------------------------
+
+-spec to_list(pqueue()) -> list(term()).
+
+to_list({_,
+ {Qn20, Qn19, Qn18, Qn17, Qn16, Qn15, Qn14},
+ {Qn13, Qn12, Qn11, Qn10, Qn9, Qn8, Qn7},
+ {Qn6, Qn5, Qn4, Qn3, Qn2, Qn1},
+ Q0,
+ {Qp1, Qp2, Qp3, Qp4, Qp5, Qp6},
+ {Qp7, Qp8, Qp9, Qp10, Qp11, Qp12, Qp13},
+ {Qp14, Qp15, Qp16, Qp17, Qp18, Qp19, Qp20}}) ->
+ queue:to_list(Qn20) ++ queue:to_list(Qn19) ++ queue:to_list(Qn18) ++
+ queue:to_list(Qn17) ++ queue:to_list(Qn16) ++ queue:to_list(Qn15) ++
+ queue:to_list(Qn14) ++
+ queue:to_list(Qn13) ++ queue:to_list(Qn12) ++ queue:to_list(Qn11) ++
+ queue:to_list(Qn10) ++ queue:to_list(Qn9) ++ queue:to_list(Qn8) ++
+ queue:to_list(Qn7) ++
+ queue:to_list(Qn6) ++ queue:to_list(Qn5) ++ queue:to_list(Qn4) ++
+ queue:to_list(Qn3) ++ queue:to_list(Qn2) ++ queue:to_list(Qn1) ++
+ queue:to_list(Q0) ++
+ queue:to_list(Qp1) ++ queue:to_list(Qp2) ++ queue:to_list(Qp3) ++
+ queue:to_list(Qp4) ++ queue:to_list(Qp5) ++ queue:to_list(Qp6) ++
+ queue:to_list(Qp7) ++ queue:to_list(Qp8) ++ queue:to_list(Qp9) ++
+ queue:to_list(Qp10) ++ queue:to_list(Qp11) ++ queue:to_list(Qp12) ++
+ queue:to_list(Qp13) ++
+ queue:to_list(Qp14) ++ queue:to_list(Qp15) ++ queue:to_list(Qp16) ++
+ queue:to_list(Qp17) ++ queue:to_list(Qp18) ++ queue:to_list(Qp19) ++
+ queue:to_list(Qp20).
+
+%%-------------------------------------------------------------------------
+%% @doc
+%% ===Regression test.===
+%% @end
+%%-------------------------------------------------------------------------
+
+test() ->
+ Q0 = pqueue:new(),
+ true = pqueue:is_queue(Q0),
+ Q1 = pqueue:in(20, 20, Q0),
+ Q2 = pqueue:in(19, 19, Q1),
+ Q3 = pqueue:in(18, 18, Q2),
+ Q4 = pqueue:in(17, 17, Q3),
+ Q5 = pqueue:in(16, 16, Q4),
+ Q6 = pqueue:in(15, 15, Q5),
+ Q7 = pqueue:in(14, 14, Q6),
+ Q8 = pqueue:in(13, 13, Q7),
+ Q9 = pqueue:in(12, 12, Q8),
+ Q10 = pqueue:in(11, 11, Q9),
+ Q11 = pqueue:in(10, 10, Q10),
+ Q12 = pqueue:in(9, 9, Q11),
+ Q13 = pqueue:in(8, 8, Q12),
+ Q14 = pqueue:in(7, 7, Q13),
+ Q15 = pqueue:in(6, 6, Q14),
+ Q16 = pqueue:in(5, 5, Q15),
+ Q17 = pqueue:in(4, 4, Q16),
+ Q18 = pqueue:in(3, 3, Q17),
+ Q19 = pqueue:in(2, 2, Q18),
+ Q20 = pqueue:in(1, 1, Q19),
+ Q21 = pqueue:in(0, 0, Q20),
+ Q22 = pqueue:in(-1, -1, Q21),
+ Q23 = pqueue:in(-2, -2, Q22),
+ Q24 = pqueue:in(-3, -3, Q23),
+ Q25 = pqueue:in(-4, -4, Q24),
+ Q26 = pqueue:in(-5, -5, Q25),
+ Q27 = pqueue:in(-6, -6, Q26),
+ Q28 = pqueue:in(-7, -7, Q27),
+ Q29 = pqueue:in(-8, -8, Q28),
+ Q30 = pqueue:in(-9, -9, Q29),
+ Q31 = pqueue:in(-10, -10, Q30),
+ Q32 = pqueue:in(-11, -11, Q31),
+ Q33 = pqueue:in(-12, -12, Q32),
+ Q34 = pqueue:in(-13, -13, Q33),
+ Q35 = pqueue:in(-14, -14, Q34),
+ Q36 = pqueue:in(-15, -15, Q35),
+ Q37 = pqueue:in(-16, -16, Q36),
+ Q38 = pqueue:in(-17, -17, Q37),
+ Q39 = pqueue:in(-18, -18, Q38),
+ Q40 = pqueue:in(-19, -19, Q39),
+ Q41 = pqueue:in(-20, -20, Q40),
+ Q42 = pqueue:in(-20, -20, Q41),
+ Q43 = pqueue:in(-19, -19, Q42),
+ Q44 = pqueue:in(-18, -18, Q43),
+ Q45 = pqueue:in(-17, -17, Q44),
+ Q46 = pqueue:in(-16, -16, Q45),
+ Q47 = pqueue:in(-15, -15, Q46),
+ Q48 = pqueue:in(-14, -14, Q47),
+ Q49 = pqueue:in(-13, -13, Q48),
+ Q50 = pqueue:in(-12, -12, Q49),
+ Q51 = pqueue:in(-11, -11, Q50),
+ Q52 = pqueue:in(-10, -10, Q51),
+ Q53 = pqueue:in(-9, -9, Q52),
+ Q54 = pqueue:in(-8, -8, Q53),
+ Q55 = pqueue:in(-7, -7, Q54),
+ Q56 = pqueue:in(-6, -6, Q55),
+ Q57 = pqueue:in(-5, -5, Q56),
+ Q58 = pqueue:in(-4, -4, Q57),
+ Q59 = pqueue:in(-3, -3, Q58),
+ Q60 = pqueue:in(-2, -2, Q59),
+ Q61 = pqueue:in(-1, -1, Q60),
+ Q62 = pqueue:in(0, 0, Q61),
+ Q63 = pqueue:in(1, 1, Q62),
+ Q64 = pqueue:in(2, 2, Q63),
+ Q65 = pqueue:in(3, 3, Q64),
+ Q66 = pqueue:in(4, 4, Q65),
+ Q67 = pqueue:in(5, 5, Q66),
+ Q68 = pqueue:in(6, 6, Q67),
+ Q69 = pqueue:in(7, 7, Q68),
+ Q70 = pqueue:in(8, 8, Q69),
+ Q71 = pqueue:in(9, 9, Q70),
+ Q72 = pqueue:in(10, 10, Q71),
+ Q73 = pqueue:in(11, 11, Q72),
+ Q74 = pqueue:in(12, 12, Q73),
+ Q75 = pqueue:in(13, 13, Q74),
+ Q76 = pqueue:in(14, 14, Q75),
+ Q77 = pqueue:in(15, 15, Q76),
+ Q78 = pqueue:in(16, 16, Q77),
+ Q79 = pqueue:in(17, 17, Q78),
+ Q80 = pqueue:in(18, 18, Q79),
+ Q81 = pqueue:in(19, 19, Q80),
+ Q82 = pqueue:in(20, 20, Q81),
+ true = pqueue:is_queue(Q82),
+ 82 = pqueue:len(Q82),
+ [-20, -20, -19, -19, -18, -18, -17, -17, -16, -16, -15, -15, -14, -14,
+ -13, -13, -12, -12, -11, -11, -10, -10, -9, -9, -8, -8, -7, -7, -6, -6,
+ -5, -5, -4, -4, -3, -3, -2, -2, -1, -1, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4,
+ 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14, 14,
+ 15, 15, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20] = pqueue:to_list(Q82),
+ {{value, -20}, Q83} = pqueue:out(Q82),
+ {{value, -20}, Q84} = pqueue:out(Q83),
+ {{value, -19}, Q85} = pqueue:out(Q84),
+ {{value, -19}, Q86} = pqueue:out(Q85),
+ {{value, -18}, Q87} = pqueue:out(Q86),
+ {{value, -18}, Q88} = pqueue:out(Q87),
+ {{value, 0}, Q89} = pqueue:out(0, Q88),
+ {{value, 0}, Q90} = pqueue:out(0, Q89),
+ {empty, _} = pqueue:out(0, Q90),
+ {{value, -17, -17}, Q91} = pqueue:pout(Q90),
+ {{value, -17, -17}, Q92} = pqueue:pout(Q91),
+ {{value, -16, -16}, Q93} = pqueue:pout(Q92),
+ {{value, -16, -16}, Q94} = pqueue:pout(Q93),
+ {{value, -15, -15}, Q95} = pqueue:pout(Q94),
+ {{value, -15, -15}, Q96} = pqueue:pout(Q95),
+ {{value, -14, -14}, Q97} = pqueue:pout(Q96),
+ {{value, -14, -14}, Q98} = pqueue:pout(Q97),
+ {{value, -13, -13}, Q99} = pqueue:pout(Q98),
+ {{value, -13, -13}, Q100} = pqueue:pout(Q99),
+ {{value, -12, -12}, Q101} = pqueue:pout(Q100),
+ {{value, -12, -12}, Q102} = pqueue:pout(Q101),
+ {{value, -11, -11}, Q103} = pqueue:pout(Q102),
+ {{value, -11, -11}, Q104} = pqueue:pout(Q103),
+ {{value, -10, -10}, Q105} = pqueue:pout(Q104),
+ {{value, -10, -10}, Q106} = pqueue:pout(Q105),
+ {{value, -9, -9}, Q107} = pqueue:pout(Q106),
+ {{value, -9, -9}, Q108} = pqueue:pout(Q107),
+ {{value, -8, -8}, Q109} = pqueue:pout(Q108),
+ {{value, -8, -8}, Q110} = pqueue:pout(Q109),
+ {{value, -7, -7}, Q111} = pqueue:pout(Q110),
+ {{value, -7, -7}, Q112} = pqueue:pout(Q111),
+ {{value, -6, -6}, Q113} = pqueue:pout(Q112),
+ {{value, -6, -6}, Q114} = pqueue:pout(Q113),
+ {{value, -5, -5}, Q115} = pqueue:pout(Q114),
+ {{value, -5, -5}, Q116} = pqueue:pout(Q115),
+ {{value, -4, -4}, Q117} = pqueue:pout(Q116),
+ {{value, -4, -4}, Q118} = pqueue:pout(Q117),
+ {{value, -3, -3}, Q119} = pqueue:pout(Q118),
+ {{value, -3, -3}, Q120} = pqueue:pout(Q119),
+ {{value, -2, -2}, Q121} = pqueue:pout(Q120),
+ {{value, -2, -2}, Q122} = pqueue:pout(Q121),
+ {{value, -1, -1}, Q123} = pqueue:pout(Q122),
+ {{value, -1, -1}, Q124} = pqueue:pout(Q123),
+ {{value, 1, 1}, Q125} = pqueue:pout(Q124),
+ {{value, 1, 1}, Q126} = pqueue:pout(Q125),
+ {{value, 2, 2}, Q127} = pqueue:pout(Q126),
+ {{value, 2, 2}, Q128} = pqueue:pout(Q127),
+ {{value, 3, 3}, Q129} = pqueue:pout(Q128),
+ {{value, 3, 3}, Q130} = pqueue:pout(Q129),
+ {{value, 4, 4}, Q131} = pqueue:pout(Q130),
+ {{value, 4, 4}, Q132} = pqueue:pout(Q131),
+ {{value, 5, 5}, Q133} = pqueue:pout(Q132),
+ {{value, 5, 5}, Q134} = pqueue:pout(Q133),
+ {{value, 6, 6}, Q135} = pqueue:pout(Q134),
+ {{value, 6, 6}, Q136} = pqueue:pout(Q135),
+ {{value, 7, 7}, Q137} = pqueue:pout(Q136),
+ {{value, 7, 7}, Q138} = pqueue:pout(Q137),
+ {{value, 8, 8}, Q139} = pqueue:pout(Q138),
+ {{value, 8, 8}, Q140} = pqueue:pout(Q139),
+ {{value, 9, 9}, Q141} = pqueue:pout(Q140),
+ {{value, 9, 9}, Q142} = pqueue:pout(Q141),
+ {{value, 10, 10}, Q143} = pqueue:pout(Q142),
+ {{value, 10, 10}, Q144} = pqueue:pout(Q143),
+ {{value, 11, 11}, Q145} = pqueue:pout(Q144),
+ {{value, 11, 11}, Q146} = pqueue:pout(Q145),
+ {{value, 12, 12}, Q147} = pqueue:pout(Q146),
+ {{value, 12, 12}, Q148} = pqueue:pout(Q147),
+ {{value, 13, 13}, Q149} = pqueue:pout(Q148),
+ {{value, 13, 13}, Q150} = pqueue:pout(Q149),
+ {{value, 14, 14}, Q151} = pqueue:pout(Q150),
+ {{value, 14, 14}, Q152} = pqueue:pout(Q151),
+ {{value, 15, 15}, Q153} = pqueue:pout(Q152),
+ {{value, 15, 15}, Q154} = pqueue:pout(Q153),
+ {{value, 16, 16}, Q155} = pqueue:pout(Q154),
+ {{value, 16, 16}, Q156} = pqueue:pout(Q155),
+ {{value, 17, 17}, Q157} = pqueue:pout(Q156),
+ {{value, 17, 17}, Q158} = pqueue:pout(Q157),
+ {{value, 18, 18}, Q159} = pqueue:pout(Q158),
+ {{value, 18, 18}, Q160} = pqueue:pout(Q159),
+ {{value, 19, 19}, Q161} = pqueue:pout(Q160),
+ {{value, 19, 19}, Q162} = pqueue:pout(Q161),
+ {{value, 20, 20}, Q163} = pqueue:pout(Q162),
+ {{value, 20, 20}, Q164} = pqueue:pout(Q163),
+ true = pqueue:is_empty(Q164),
+ {empty, Q165} = pqueue:pout(Q164),
+ true = pqueue:is_empty(Q165),
+ ok.
+
+%%%------------------------------------------------------------------------
+%%% Private functions
+%%%------------------------------------------------------------------------
+
+in_higher(-20, {_,
+ {Qn20, Qn19, Qn18, Qn17, Qn16, Qn15, Qn14},
+ Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}, X) ->
+ {-20,
+ {queue:in(X, Qn20), Qn19, Qn18, Qn17, Qn16, Qn15, Qn14},
+ Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14};
+in_higher(-19, {_,
+ {Qn20, Qn19, Qn18, Qn17, Qn16, Qn15, Qn14},
+ Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}, X) ->
+ {-19,
+ {Qn20, queue:in(X, Qn19), Qn18, Qn17, Qn16, Qn15, Qn14},
+ Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14};
+in_higher(-18, {_,
+ {Qn20, Qn19, Qn18, Qn17, Qn16, Qn15, Qn14},
+ Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}, X) ->
+ {-18,
+ {Qn20, Qn19, queue:in(X, Qn18), Qn17, Qn16, Qn15, Qn14},
+ Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14};
+in_higher(-17, {_,
+ {Qn20, Qn19, Qn18, Qn17, Qn16, Qn15, Qn14},
+ Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}, X) ->
+ {-17,
+ {Qn20, Qn19, Qn18, queue:in(X, Qn17), Qn16, Qn15, Qn14},
+ Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14};
+in_higher(-16, {_,
+ {Qn20, Qn19, Qn18, Qn17, Qn16, Qn15, Qn14},
+ Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}, X) ->
+ {-16,
+ {Qn20, Qn19, Qn18, Qn17, queue:in(X, Qn16), Qn15, Qn14},
+ Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14};
+in_higher(-15, {_,
+ {Qn20, Qn19, Qn18, Qn17, Qn16, Qn15, Qn14},
+ Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}, X) ->
+ {-15,
+ {Qn20, Qn19, Qn18, Qn17, Qn16, queue:in(X, Qn15), Qn14},
+ Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14};
+in_higher(-14, {_,
+ {Qn20, Qn19, Qn18, Qn17, Qn16, Qn15, Qn14},
+ Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}, X) ->
+ {-14,
+ {Qn20, Qn19, Qn18, Qn17, Qn16, Qn15, queue:in(X, Qn14)},
+ Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14};
+in_higher(-13, {_, Qsn14,
+ {Qn13, Qn12, Qn11, Qn10, Qn9, Qn8, Qn7},
+ Qsn1, Q0, Qsp1, Qsp7, Qsp14}, X) ->
+ {-13, Qsn14,
+ {queue:in(X, Qn13), Qn12, Qn11, Qn10, Qn9, Qn8, Qn7},
+ Qsn1, Q0, Qsp1, Qsp7, Qsp14};
+in_higher(-12, {_, Qsn14,
+ {Qn13, Qn12, Qn11, Qn10, Qn9, Qn8, Qn7},
+ Qsn1, Q0, Qsp1, Qsp7, Qsp14}, X) ->
+ {-12, Qsn14,
+ {Qn13, queue:in(X, Qn12), Qn11, Qn10, Qn9, Qn8, Qn7},
+ Qsn1, Q0, Qsp1, Qsp7, Qsp14};
+in_higher(-11, {_, Qsn14,
+ {Qn13, Qn12, Qn11, Qn10, Qn9, Qn8, Qn7},
+ Qsn1, Q0, Qsp1, Qsp7, Qsp14}, X) ->
+ {-11, Qsn14,
+ {Qn13, Qn12, queue:in(X, Qn11), Qn10, Qn9, Qn8, Qn7},
+ Qsn1, Q0, Qsp1, Qsp7, Qsp14};
+in_higher(-10, {_, Qsn14,
+ {Qn13, Qn12, Qn11, Qn10, Qn9, Qn8, Qn7},
+ Qsn1, Q0, Qsp1, Qsp7, Qsp14}, X) ->
+ {-10, Qsn14,
+ {Qn13, Qn12, Qn11, queue:in(X, Qn10), Qn9, Qn8, Qn7},
+ Qsn1, Q0, Qsp1, Qsp7, Qsp14};
+in_higher(-9, {_, Qsn14,
+ {Qn13, Qn12, Qn11, Qn10, Qn9, Qn8, Qn7},
+ Qsn1, Q0, Qsp1, Qsp7, Qsp14}, X) ->
+ {-9, Qsn14,
+ {Qn13, Qn12, Qn11, Qn10, queue:in(X, Qn9), Qn8, Qn7},
+ Qsn1, Q0, Qsp1, Qsp7, Qsp14};
+in_higher(-8, {_, Qsn14,
+ {Qn13, Qn12, Qn11, Qn10, Qn9, Qn8, Qn7},
+ Qsn1, Q0, Qsp1, Qsp7, Qsp14}, X) ->
+ {-8, Qsn14,
+ {Qn13, Qn12, Qn11, Qn10, Qn9, queue:in(X, Qn8), Qn7},
+ Qsn1, Q0, Qsp1, Qsp7, Qsp14};
+in_higher(-7, {_, Qsn14,
+ {Qn13, Qn12, Qn11, Qn10, Qn9, Qn8, Qn7},
+ Qsn1, Q0, Qsp1, Qsp7, Qsp14}, X) ->
+ {-7, Qsn14,
+ {Qn13, Qn12, Qn11, Qn10, Qn9, Qn8, queue:in(X, Qn7)},
+ Qsn1, Q0, Qsp1, Qsp7, Qsp14};
+in_higher(-6, {_, Qsn14, Qsn7,
+ {Qn6, Qn5, Qn4, Qn3, Qn2, Qn1},
+ Q0, Qsp1, Qsp7, Qsp14}, X) ->
+ {-6, Qsn14, Qsn7,
+ {queue:in(X, Qn6), Qn5, Qn4, Qn3, Qn2, Qn1},
+ Q0, Qsp1, Qsp7, Qsp14};
+in_higher(-5, {_, Qsn14, Qsn7,
+ {Qn6, Qn5, Qn4, Qn3, Qn2, Qn1},
+ Q0, Qsp1, Qsp7, Qsp14}, X) ->
+ {-5, Qsn14, Qsn7,
+ {Qn6, queue:in(X, Qn5), Qn4, Qn3, Qn2, Qn1},
+ Q0, Qsp1, Qsp7, Qsp14};
+in_higher(-4, {_, Qsn14, Qsn7,
+ {Qn6, Qn5, Qn4, Qn3, Qn2, Qn1},
+ Q0, Qsp1, Qsp7, Qsp14}, X) ->
+ {-4, Qsn14, Qsn7,
+ {Qn6, Qn5, queue:in(X, Qn4), Qn3, Qn2, Qn1},
+ Q0, Qsp1, Qsp7, Qsp14};
+in_higher(-3, {_, Qsn14, Qsn7,
+ {Qn6, Qn5, Qn4, Qn3, Qn2, Qn1},
+ Q0, Qsp1, Qsp7, Qsp14}, X) ->
+ {-3, Qsn14, Qsn7,
+ {Qn6, Qn5, Qn4, queue:in(X, Qn3), Qn2, Qn1},
+ Q0, Qsp1, Qsp7, Qsp14};
+in_higher(-2, {_, Qsn14, Qsn7,
+ {Qn6, Qn5, Qn4, Qn3, Qn2, Qn1},
+ Q0, Qsp1, Qsp7, Qsp14}, X) ->
+ {-2, Qsn14, Qsn7,
+ {Qn6, Qn5, Qn4, Qn3, queue:in(X, Qn2), Qn1},
+ Q0, Qsp1, Qsp7, Qsp14};
+in_higher(-1, {_, Qsn14, Qsn7,
+ {Qn6, Qn5, Qn4, Qn3, Qn2, Qn1},
+ Q0, Qsp1, Qsp7, Qsp14}, X) ->
+ {-1, Qsn14, Qsn7,
+ {Qn6, Qn5, Qn4, Qn3, Qn2, queue:in(X, Qn1)},
+ Q0, Qsp1, Qsp7, Qsp14};
+in_higher(0, {_, Qsn14, Qsn7, Qsn1,
+ Q0, Qsp1, Qsp7, Qsp14}, X) ->
+ {0, Qsn14, Qsn7, Qsn1,
+ queue:in(X, Q0),
+ Qsp1, Qsp7, Qsp14};
+in_higher(1, {_, Qsn14, Qsn7, Qsn1, Q0,
+ {Qp1, Qp2, Qp3, Qp4, Qp5, Qp6},
+ Qsp7, Qsp14}, X) ->
+ {1, Qsn14, Qsn7, Qsn1, Q0,
+ {queue:in(X, Qp1), Qp2, Qp3, Qp4, Qp5, Qp6},
+ Qsp7, Qsp14};
+in_higher(2, {_, Qsn14, Qsn7, Qsn1, Q0,
+ {Qp1, Qp2, Qp3, Qp4, Qp5, Qp6},
+ Qsp7, Qsp14}, X) ->
+ {2, Qsn14, Qsn7, Qsn1, Q0,
+ {Qp1, queue:in(X, Qp2), Qp3, Qp4, Qp5, Qp6},
+ Qsp7, Qsp14};
+in_higher(3, {_, Qsn14, Qsn7, Qsn1, Q0,
+ {Qp1, Qp2, Qp3, Qp4, Qp5, Qp6},
+ Qsp7, Qsp14}, X) ->
+ {3, Qsn14, Qsn7, Qsn1, Q0,
+ {Qp1, Qp2, queue:in(X, Qp3), Qp4, Qp5, Qp6},
+ Qsp7, Qsp14};
+in_higher(4, {_, Qsn14, Qsn7, Qsn1, Q0,
+ {Qp1, Qp2, Qp3, Qp4, Qp5, Qp6},
+ Qsp7, Qsp14}, X) ->
+ {4, Qsn14, Qsn7, Qsn1, Q0,
+ {Qp1, Qp2, Qp3, queue:in(X, Qp4), Qp5, Qp6},
+ Qsp7, Qsp14};
+in_higher(5, {_, Qsn14, Qsn7, Qsn1, Q0,
+ {Qp1, Qp2, Qp3, Qp4, Qp5, Qp6},
+ Qsp7, Qsp14}, X) ->
+ {5, Qsn14, Qsn7, Qsn1, Q0,
+ {Qp1, Qp2, Qp3, Qp4, queue:in(X, Qp5), Qp6},
+ Qsp7, Qsp14};
+in_higher(6, {_, Qsn14, Qsn7, Qsn1, Q0,
+ {Qp1, Qp2, Qp3, Qp4, Qp5, Qp6},
+ Qsp7, Qsp14}, X) ->
+ {6, Qsn14, Qsn7, Qsn1, Q0,
+ {Qp1, Qp2, Qp3, Qp4, Qp5, queue:in(X, Qp6)},
+ Qsp7, Qsp14};
+in_higher(7, {_, Qsn14, Qsn7, Qsn1, Q0, Qsp1,
+ {Qp7, Qp8, Qp9, Qp10, Qp11, Qp12, Qp13},
+ Qsp14}, X) ->
+ {7, Qsn14, Qsn7, Qsn1, Q0, Qsp1,
+ {queue:in(X, Qp7), Qp8, Qp9, Qp10, Qp11, Qp12, Qp13},
+ Qsp14};
+in_higher(8, {_, Qsn14, Qsn7, Qsn1, Q0, Qsp1,
+ {Qp7, Qp8, Qp9, Qp10, Qp11, Qp12, Qp13},
+ Qsp14}, X) ->
+ {8, Qsn14, Qsn7, Qsn1, Q0, Qsp1,
+ {Qp7, queue:in(X, Qp8), Qp9, Qp10, Qp11, Qp12, Qp13},
+ Qsp14};
+in_higher(9, {_, Qsn14, Qsn7, Qsn1, Q0, Qsp1,
+ {Qp7, Qp8, Qp9, Qp10, Qp11, Qp12, Qp13},
+ Qsp14}, X) ->
+ {9, Qsn14, Qsn7, Qsn1, Q0, Qsp1,
+ {Qp7, Qp8, queue:in(X, Qp9), Qp10, Qp11, Qp12, Qp13},
+ Qsp14};
+in_higher(10, {_, Qsn14, Qsn7, Qsn1, Q0, Qsp1,
+ {Qp7, Qp8, Qp9, Qp10, Qp11, Qp12, Qp13},
+ Qsp14}, X) ->
+ {10, Qsn14, Qsn7, Qsn1, Q0, Qsp1,
+ {Qp7, Qp8, Qp9, queue:in(X, Qp10), Qp11, Qp12, Qp13},
+ Qsp14};
+in_higher(11, {_, Qsn14, Qsn7, Qsn1, Q0, Qsp1,
+ {Qp7, Qp8, Qp9, Qp10, Qp11, Qp12, Qp13},
+ Qsp14}, X) ->
+ {11, Qsn14, Qsn7, Qsn1, Q0, Qsp1,
+ {Qp7, Qp8, Qp9, Qp10, queue:in(X, Qp11), Qp12, Qp13},
+ Qsp14};
+in_higher(12, {_, Qsn14, Qsn7, Qsn1, Q0, Qsp1,
+ {Qp7, Qp8, Qp9, Qp10, Qp11, Qp12, Qp13},
+ Qsp14}, X) ->
+ {12, Qsn14, Qsn7, Qsn1, Q0, Qsp1,
+ {Qp7, Qp8, Qp9, Qp10, Qp11, queue:in(X, Qp12), Qp13},
+ Qsp14};
+in_higher(13, {_, Qsn14, Qsn7, Qsn1, Q0, Qsp1,
+ {Qp7, Qp8, Qp9, Qp10, Qp11, Qp12, Qp13},
+ Qsp14}, X) ->
+ {13, Qsn14, Qsn7, Qsn1, Q0, Qsp1,
+ {Qp7, Qp8, Qp9, Qp10, Qp11, Qp12, queue:in(X, Qp13)},
+ Qsp14};
+in_higher(14, {_, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7,
+ {Qp14, Qp15, Qp16, Qp17, Qp18, Qp19, Qp20}}, X) ->
+ {14, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7,
+ {queue:in(X, Qp14), Qp15, Qp16, Qp17, Qp18, Qp19, Qp20}};
+in_higher(15, {_, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7,
+ {Qp14, Qp15, Qp16, Qp17, Qp18, Qp19, Qp20}}, X) ->
+ {15, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7,
+ {Qp14, queue:in(X, Qp15), Qp16, Qp17, Qp18, Qp19, Qp20}};
+in_higher(16, {_, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7,
+ {Qp14, Qp15, Qp16, Qp17, Qp18, Qp19, Qp20}}, X) ->
+ {16, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7,
+ {Qp14, Qp15, queue:in(X, Qp16), Qp17, Qp18, Qp19, Qp20}};
+in_higher(17, {_, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7,
+ {Qp14, Qp15, Qp16, Qp17, Qp18, Qp19, Qp20}}, X) ->
+ {17, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7,
+ {Qp14, Qp15, Qp16, queue:in(X, Qp17), Qp18, Qp19, Qp20}};
+in_higher(18, {_, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7,
+ {Qp14, Qp15, Qp16, Qp17, Qp18, Qp19, Qp20}}, X) ->
+ {18, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7,
+ {Qp14, Qp15, Qp16, Qp17, queue:in(X, Qp18), Qp19, Qp20}};
+in_higher(19, {_, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7,
+ {Qp14, Qp15, Qp16, Qp17, Qp18, Qp19, Qp20}}, X) ->
+ {19, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7,
+ {Qp14, Qp15, Qp16, Qp17, Qp18, queue:in(X, Qp19), Qp20}};
+in_higher(20, {_, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7,
+ {Qp14, Qp15, Qp16, Qp17, Qp18, Qp19, Qp20}}, X) ->
+ {20, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7,
+ {Qp14, Qp15, Qp16, Qp17, Qp18, Qp19, queue:in(X, Qp20)}}.
+
+in_lower(-20, {Pc,
+ {Qn20, Qn19, Qn18, Qn17, Qn16, Qn15, Qn14},
+ Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}, X) ->
+ {Pc,
+ {queue:in(X, Qn20), Qn19, Qn18, Qn17, Qn16, Qn15, Qn14},
+ Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14};
+in_lower(-19, {Pc,
+ {Qn20, Qn19, Qn18, Qn17, Qn16, Qn15, Qn14},
+ Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}, X) ->
+ {Pc,
+ {Qn20, queue:in(X, Qn19), Qn18, Qn17, Qn16, Qn15, Qn14},
+ Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14};
+in_lower(-18, {Pc,
+ {Qn20, Qn19, Qn18, Qn17, Qn16, Qn15, Qn14},
+ Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}, X) ->
+ {Pc,
+ {Qn20, Qn19, queue:in(X, Qn18), Qn17, Qn16, Qn15, Qn14},
+ Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14};
+in_lower(-17, {Pc,
+ {Qn20, Qn19, Qn18, Qn17, Qn16, Qn15, Qn14},
+ Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}, X) ->
+ {Pc,
+ {Qn20, Qn19, Qn18, queue:in(X, Qn17), Qn16, Qn15, Qn14},
+ Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14};
+in_lower(-16, {Pc,
+ {Qn20, Qn19, Qn18, Qn17, Qn16, Qn15, Qn14},
+ Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}, X) ->
+ {Pc,
+ {Qn20, Qn19, Qn18, Qn17, queue:in(X, Qn16), Qn15, Qn14},
+ Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14};
+in_lower(-15, {Pc,
+ {Qn20, Qn19, Qn18, Qn17, Qn16, Qn15, Qn14},
+ Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}, X) ->
+ {Pc,
+ {Qn20, Qn19, Qn18, Qn17, Qn16, queue:in(X, Qn15), Qn14},
+ Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14};
+in_lower(-14, {Pc,
+ {Qn20, Qn19, Qn18, Qn17, Qn16, Qn15, Qn14},
+ Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}, X) ->
+ {Pc,
+ {Qn20, Qn19, Qn18, Qn17, Qn16, Qn15, queue:in(X, Qn14)},
+ Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14};
+in_lower(-13, {Pc, Qsn14,
+ {Qn13, Qn12, Qn11, Qn10, Qn9, Qn8, Qn7},
+ Qsn1, Q0, Qsp1, Qsp7, Qsp14}, X) ->
+ {Pc, Qsn14,
+ {queue:in(X, Qn13), Qn12, Qn11, Qn10, Qn9, Qn8, Qn7},
+ Qsn1, Q0, Qsp1, Qsp7, Qsp14};
+in_lower(-12, {Pc, Qsn14,
+ {Qn13, Qn12, Qn11, Qn10, Qn9, Qn8, Qn7},
+ Qsn1, Q0, Qsp1, Qsp7, Qsp14}, X) ->
+ {Pc, Qsn14,
+ {Qn13, queue:in(X, Qn12), Qn11, Qn10, Qn9, Qn8, Qn7},
+ Qsn1, Q0, Qsp1, Qsp7, Qsp14};
+in_lower(-11, {Pc, Qsn14,
+ {Qn13, Qn12, Qn11, Qn10, Qn9, Qn8, Qn7},
+ Qsn1, Q0, Qsp1, Qsp7, Qsp14}, X) ->
+ {Pc, Qsn14,
+ {Qn13, Qn12, queue:in(X, Qn11), Qn10, Qn9, Qn8, Qn7},
+ Qsn1, Q0, Qsp1, Qsp7, Qsp14};
+in_lower(-10, {Pc, Qsn14,
+ {Qn13, Qn12, Qn11, Qn10, Qn9, Qn8, Qn7},
+ Qsn1, Q0, Qsp1, Qsp7, Qsp14}, X) ->
+ {Pc, Qsn14,
+ {Qn13, Qn12, Qn11, queue:in(X, Qn10), Qn9, Qn8, Qn7},
+ Qsn1, Q0, Qsp1, Qsp7, Qsp14};
+in_lower(-9, {Pc, Qsn14,
+ {Qn13, Qn12, Qn11, Qn10, Qn9, Qn8, Qn7},
+ Qsn1, Q0, Qsp1, Qsp7, Qsp14}, X) ->
+ {Pc, Qsn14,
+ {Qn13, Qn12, Qn11, Qn10, queue:in(X, Qn9), Qn8, Qn7},
+ Qsn1, Q0, Qsp1, Qsp7, Qsp14};
+in_lower(-8, {Pc, Qsn14,
+ {Qn13, Qn12, Qn11, Qn10, Qn9, Qn8, Qn7},
+ Qsn1, Q0, Qsp1, Qsp7, Qsp14}, X) ->
+ {Pc, Qsn14,
+ {Qn13, Qn12, Qn11, Qn10, Qn9, queue:in(X, Qn8), Qn7},
+ Qsn1, Q0, Qsp1, Qsp7, Qsp14};
+in_lower(-7, {Pc, Qsn14,
+ {Qn13, Qn12, Qn11, Qn10, Qn9, Qn8, Qn7},
+ Qsn1, Q0, Qsp1, Qsp7, Qsp14}, X) ->
+ {Pc, Qsn14,
+ {Qn13, Qn12, Qn11, Qn10, Qn9, Qn8, queue:in(X, Qn7)},
+ Qsn1, Q0, Qsp1, Qsp7, Qsp14};
+in_lower(-6, {Pc, Qsn14, Qsn7,
+ {Qn6, Qn5, Qn4, Qn3, Qn2, Qn1},
+ Q0, Qsp1, Qsp7, Qsp14}, X) ->
+ {Pc, Qsn14, Qsn7,
+ {queue:in(X, Qn6), Qn5, Qn4, Qn3, Qn2, Qn1},
+ Q0, Qsp1, Qsp7, Qsp14};
+in_lower(-5, {Pc, Qsn14, Qsn7,
+ {Qn6, Qn5, Qn4, Qn3, Qn2, Qn1},
+ Q0, Qsp1, Qsp7, Qsp14}, X) ->
+ {Pc, Qsn14, Qsn7,
+ {Qn6, queue:in(X, Qn5), Qn4, Qn3, Qn2, Qn1},
+ Q0, Qsp1, Qsp7, Qsp14};
+in_lower(-4, {Pc, Qsn14, Qsn7,
+ {Qn6, Qn5, Qn4, Qn3, Qn2, Qn1},
+ Q0, Qsp1, Qsp7, Qsp14}, X) ->
+ {Pc, Qsn14, Qsn7,
+ {Qn6, Qn5, queue:in(X, Qn4), Qn3, Qn2, Qn1},
+ Q0, Qsp1, Qsp7, Qsp14};
+in_lower(-3, {Pc, Qsn14, Qsn7,
+ {Qn6, Qn5, Qn4, Qn3, Qn2, Qn1},
+ Q0, Qsp1, Qsp7, Qsp14}, X) ->
+ {Pc, Qsn14, Qsn7,
+ {Qn6, Qn5, Qn4, queue:in(X, Qn3), Qn2, Qn1},
+ Q0, Qsp1, Qsp7, Qsp14};
+in_lower(-2, {Pc, Qsn14, Qsn7,
+ {Qn6, Qn5, Qn4, Qn3, Qn2, Qn1},
+ Q0, Qsp1, Qsp7, Qsp14}, X) ->
+ {Pc, Qsn14, Qsn7,
+ {Qn6, Qn5, Qn4, Qn3, queue:in(X, Qn2), Qn1},
+ Q0, Qsp1, Qsp7, Qsp14};
+in_lower(-1, {Pc, Qsn14, Qsn7,
+ {Qn6, Qn5, Qn4, Qn3, Qn2, Qn1},
+ Q0, Qsp1, Qsp7, Qsp14}, X) ->
+ {Pc, Qsn14, Qsn7,
+ {Qn6, Qn5, Qn4, Qn3, Qn2, queue:in(X, Qn1)},
+ Q0, Qsp1, Qsp7, Qsp14};
+in_lower(0, {Pc, Qsn14, Qsn7, Qsn1,
+ Q0, Qsp1, Qsp7, Qsp14}, X) ->
+ {Pc, Qsn14, Qsn7, Qsn1,
+ queue:in(X, Q0),
+ Qsp1, Qsp7, Qsp14};
+in_lower(1, {Pc, Qsn14, Qsn7, Qsn1, Q0,
+ {Qp1, Qp2, Qp3, Qp4, Qp5, Qp6},
+ Qsp7, Qsp14}, X) ->
+ {Pc, Qsn14, Qsn7, Qsn1, Q0,
+ {queue:in(X, Qp1), Qp2, Qp3, Qp4, Qp5, Qp6},
+ Qsp7, Qsp14};
+in_lower(2, {Pc, Qsn14, Qsn7, Qsn1, Q0,
+ {Qp1, Qp2, Qp3, Qp4, Qp5, Qp6},
+ Qsp7, Qsp14}, X) ->
+ {Pc, Qsn14, Qsn7, Qsn1, Q0,
+ {Qp1, queue:in(X, Qp2), Qp3, Qp4, Qp5, Qp6},
+ Qsp7, Qsp14};
+in_lower(3, {Pc, Qsn14, Qsn7, Qsn1, Q0,
+ {Qp1, Qp2, Qp3, Qp4, Qp5, Qp6},
+ Qsp7, Qsp14}, X) ->
+ {Pc, Qsn14, Qsn7, Qsn1, Q0,
+ {Qp1, Qp2, queue:in(X, Qp3), Qp4, Qp5, Qp6},
+ Qsp7, Qsp14};
+in_lower(4, {Pc, Qsn14, Qsn7, Qsn1, Q0,
+ {Qp1, Qp2, Qp3, Qp4, Qp5, Qp6},
+ Qsp7, Qsp14}, X) ->
+ {Pc, Qsn14, Qsn7, Qsn1, Q0,
+ {Qp1, Qp2, Qp3, queue:in(X, Qp4), Qp5, Qp6},
+ Qsp7, Qsp14};
+in_lower(5, {Pc, Qsn14, Qsn7, Qsn1, Q0,
+ {Qp1, Qp2, Qp3, Qp4, Qp5, Qp6},
+ Qsp7, Qsp14}, X) ->
+ {Pc, Qsn14, Qsn7, Qsn1, Q0,
+ {Qp1, Qp2, Qp3, Qp4, queue:in(X, Qp5), Qp6},
+ Qsp7, Qsp14};
+in_lower(6, {Pc, Qsn14, Qsn7, Qsn1, Q0,
+ {Qp1, Qp2, Qp3, Qp4, Qp5, Qp6},
+ Qsp7, Qsp14}, X) ->
+ {Pc, Qsn14, Qsn7, Qsn1, Q0,
+ {Qp1, Qp2, Qp3, Qp4, Qp5, queue:in(X, Qp6)},
+ Qsp7, Qsp14};
+in_lower(7, {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1,
+ {Qp7, Qp8, Qp9, Qp10, Qp11, Qp12, Qp13},
+ Qsp14}, X) ->
+ {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1,
+ {queue:in(X, Qp7), Qp8, Qp9, Qp10, Qp11, Qp12, Qp13},
+ Qsp14};
+in_lower(8, {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1,
+ {Qp7, Qp8, Qp9, Qp10, Qp11, Qp12, Qp13},
+ Qsp14}, X) ->
+ {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1,
+ {Qp7, queue:in(X, Qp8), Qp9, Qp10, Qp11, Qp12, Qp13},
+ Qsp14};
+in_lower(9, {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1,
+ {Qp7, Qp8, Qp9, Qp10, Qp11, Qp12, Qp13},
+ Qsp14}, X) ->
+ {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1,
+ {Qp7, Qp8, queue:in(X, Qp9), Qp10, Qp11, Qp12, Qp13},
+ Qsp14};
+in_lower(10, {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1,
+ {Qp7, Qp8, Qp9, Qp10, Qp11, Qp12, Qp13},
+ Qsp14}, X) ->
+ {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1,
+ {Qp7, Qp8, Qp9, queue:in(X, Qp10), Qp11, Qp12, Qp13},
+ Qsp14};
+in_lower(11, {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1,
+ {Qp7, Qp8, Qp9, Qp10, Qp11, Qp12, Qp13},
+ Qsp14}, X) ->
+ {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1,
+ {Qp7, Qp8, Qp9, Qp10, queue:in(X, Qp11), Qp12, Qp13},
+ Qsp14};
+in_lower(12, {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1,
+ {Qp7, Qp8, Qp9, Qp10, Qp11, Qp12, Qp13},
+ Qsp14}, X) ->
+ {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1,
+ {Qp7, Qp8, Qp9, Qp10, Qp11, queue:in(X, Qp12), Qp13},
+ Qsp14};
+in_lower(13, {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1,
+ {Qp7, Qp8, Qp9, Qp10, Qp11, Qp12, Qp13},
+ Qsp14}, X) ->
+ {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1,
+ {Qp7, Qp8, Qp9, Qp10, Qp11, Qp12, queue:in(X, Qp13)},
+ Qsp14};
+in_lower(14, {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7,
+ {Qp14, Qp15, Qp16, Qp17, Qp18, Qp19, Qp20}}, X) ->
+ {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7,
+ {queue:in(X, Qp14), Qp15, Qp16, Qp17, Qp18, Qp19, Qp20}};
+in_lower(15, {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7,
+ {Qp14, Qp15, Qp16, Qp17, Qp18, Qp19, Qp20}}, X) ->
+ {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7,
+ {Qp14, queue:in(X, Qp15), Qp16, Qp17, Qp18, Qp19, Qp20}};
+in_lower(16, {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7,
+ {Qp14, Qp15, Qp16, Qp17, Qp18, Qp19, Qp20}}, X) ->
+ {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7,
+ {Qp14, Qp15, queue:in(X, Qp16), Qp17, Qp18, Qp19, Qp20}};
+in_lower(17, {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7,
+ {Qp14, Qp15, Qp16, Qp17, Qp18, Qp19, Qp20}}, X) ->
+ {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7,
+ {Qp14, Qp15, Qp16, queue:in(X, Qp17), Qp18, Qp19, Qp20}};
+in_lower(18, {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7,
+ {Qp14, Qp15, Qp16, Qp17, Qp18, Qp19, Qp20}}, X) ->
+ {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7,
+ {Qp14, Qp15, Qp16, Qp17, queue:in(X, Qp18), Qp19, Qp20}};
+in_lower(19, {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7,
+ {Qp14, Qp15, Qp16, Qp17, Qp18, Qp19, Qp20}}, X) ->
+ {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7,
+ {Qp14, Qp15, Qp16, Qp17, Qp18, queue:in(X, Qp19), Qp20}};
+in_lower(20, {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7,
+ {Qp14, Qp15, Qp16, Qp17, Qp18, Qp19, Qp20}}, X) ->
+ {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7,
+ {Qp14, Qp15, Qp16, Qp17, Qp18, Qp19, queue:in(X, Qp20)}}.
+
+out_current(-20,
+ {_, {Qn20, Qn19, Qn18, Qn17, Qn16, Qn15, Qn14},
+ Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14} = Q, ReturnType) ->
+ {Value, NewQn20} = queue:out(Qn20),
+ if
+ Value =:= empty ->
+ out_current(-19, Q, ReturnType);
+ true ->
+ NewValue = if
+ ReturnType =:= priority ->
+ {value, Contents} = Value,
+ {value, Contents, -20};
+ true ->
+ Value
+ end,
+ {NewValue,
+ {-20,
+ {NewQn20, Qn19, Qn18, Qn17, Qn16, Qn15, Qn14},
+ Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}}
+ end;
+out_current(-19,
+ {_, {Qn20, Qn19, Qn18, Qn17, Qn16, Qn15, Qn14},
+ Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14} = Q, ReturnType) ->
+ {Value, NewQn19} = queue:out(Qn19),
+ if
+ Value =:= empty ->
+ out_current(-18, Q, ReturnType);
+ true ->
+ NewValue = if
+ ReturnType =:= priority ->
+ {value, Contents} = Value,
+ {value, Contents, -19};
+ true ->
+ Value
+ end,
+ {NewValue,
+ {-19,
+ {Qn20, NewQn19, Qn18, Qn17, Qn16, Qn15, Qn14},
+ Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}}
+ end;
+out_current(-18,
+ {_, {Qn20, Qn19, Qn18, Qn17, Qn16, Qn15, Qn14},
+ Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14} = Q, ReturnType) ->
+ {Value, NewQn18} = queue:out(Qn18),
+ if
+ Value =:= empty ->
+ out_current(-17, Q, ReturnType);
+ true ->
+ NewValue = if
+ ReturnType =:= priority ->
+ {value, Contents} = Value,
+ {value, Contents, -18};
+ true ->
+ Value
+ end,
+ {NewValue,
+ {-18,
+ {Qn20, Qn19, NewQn18, Qn17, Qn16, Qn15, Qn14},
+ Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}}
+ end;
+out_current(-17,
+ {_, {Qn20, Qn19, Qn18, Qn17, Qn16, Qn15, Qn14},
+ Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14} = Q, ReturnType) ->
+ {Value, NewQn17} = queue:out(Qn17),
+ if
+ Value =:= empty ->
+ out_current(-16, Q, ReturnType);
+ true ->
+ NewValue = if
+ ReturnType =:= priority ->
+ {value, Contents} = Value,
+ {value, Contents, -17};
+ true ->
+ Value
+ end,
+ {NewValue,
+ {-17,
+ {Qn20, Qn19, Qn18, NewQn17, Qn16, Qn15, Qn14},
+ Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}}
+ end;
+out_current(-16,
+ {_, {Qn20, Qn19, Qn18, Qn17, Qn16, Qn15, Qn14},
+ Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14} = Q, ReturnType) ->
+ {Value, NewQn16} = queue:out(Qn16),
+ if
+ Value =:= empty ->
+ out_current(-15, Q, ReturnType);
+ true ->
+ NewValue = if
+ ReturnType =:= priority ->
+ {value, Contents} = Value,
+ {value, Contents, -16};
+ true ->
+ Value
+ end,
+ {NewValue,
+ {-16,
+ {Qn20, Qn19, Qn18, Qn17, NewQn16, Qn15, Qn14},
+ Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}}
+ end;
+out_current(-15,
+ {_, {Qn20, Qn19, Qn18, Qn17, Qn16, Qn15, Qn14},
+ Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14} = Q, ReturnType) ->
+ {Value, NewQn15} = queue:out(Qn15),
+ if
+ Value =:= empty ->
+ out_current(-14, Q, ReturnType);
+ true ->
+ NewValue = if
+ ReturnType =:= priority ->
+ {value, Contents} = Value,
+ {value, Contents, -15};
+ true ->
+ Value
+ end,
+ {NewValue,
+ {-15,
+ {Qn20, Qn19, Qn18, Qn17, Qn16, NewQn15, Qn14},
+ Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}}
+ end;
+out_current(-14,
+ {_, {Qn20, Qn19, Qn18, Qn17, Qn16, Qn15, Qn14},
+ Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14} = Q, ReturnType) ->
+ {Value, NewQn14} = queue:out(Qn14),
+ if
+ Value =:= empty ->
+ out_current(-13, Q, ReturnType);
+ true ->
+ NewValue = if
+ ReturnType =:= priority ->
+ {value, Contents} = Value,
+ {value, Contents, -14};
+ true ->
+ Value
+ end,
+ {NewValue,
+ {-14,
+ {Qn20, Qn19, Qn18, Qn17, Qn16, Qn15, NewQn14},
+ Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}}
+ end;
+out_current(-13,
+ {_, Qsn14,
+ {Qn13, Qn12, Qn11, Qn10, Qn9, Qn8, Qn7},
+ Qsn1, Q0, Qsp1, Qsp7, Qsp14} = Q, ReturnType) ->
+ {Value, NewQn13} = queue:out(Qn13),
+ if
+ Value =:= empty ->
+ out_current(-12, Q, ReturnType);
+ true ->
+ NewValue = if
+ ReturnType =:= priority ->
+ {value, Contents} = Value,
+ {value, Contents, -13};
+ true ->
+ Value
+ end,
+ {NewValue,
+ {-13, Qsn14,
+ {NewQn13, Qn12, Qn11, Qn10, Qn9, Qn8, Qn7},
+ Qsn1, Q0, Qsp1, Qsp7, Qsp14}}
+ end;
+out_current(-12,
+ {_, Qsn14,
+ {Qn13, Qn12, Qn11, Qn10, Qn9, Qn8, Qn7},
+ Qsn1, Q0, Qsp1, Qsp7, Qsp14} = Q, ReturnType) ->
+ {Value, NewQn12} = queue:out(Qn12),
+ if
+ Value =:= empty ->
+ out_current(-11, Q, ReturnType);
+ true ->
+ NewValue = if
+ ReturnType =:= priority ->
+ {value, Contents} = Value,
+ {value, Contents, -12};
+ true ->
+ Value
+ end,
+ {NewValue,
+ {-12, Qsn14,
+ {Qn13, NewQn12, Qn11, Qn10, Qn9, Qn8, Qn7},
+ Qsn1, Q0, Qsp1, Qsp7, Qsp14}}
+ end;
+out_current(-11,
+ {_, Qsn14,
+ {Qn13, Qn12, Qn11, Qn10, Qn9, Qn8, Qn7},
+ Qsn1, Q0, Qsp1, Qsp7, Qsp14} = Q, ReturnType) ->
+ {Value, NewQn11} = queue:out(Qn11),
+ if
+ Value =:= empty ->
+ out_current(-10, Q, ReturnType);
+ true ->
+ NewValue = if
+ ReturnType =:= priority ->
+ {value, Contents} = Value,
+ {value, Contents, -11};
+ true ->
+ Value
+ end,
+ {NewValue,
+ {-11, Qsn14,
+ {Qn13, Qn12, NewQn11, Qn10, Qn9, Qn8, Qn7},
+ Qsn1, Q0, Qsp1, Qsp7, Qsp14}}
+ end;
+out_current(-10,
+ {_, Qsn14,
+ {Qn13, Qn12, Qn11, Qn10, Qn9, Qn8, Qn7},
+ Qsn1, Q0, Qsp1, Qsp7, Qsp14} = Q, ReturnType) ->
+ {Value, NewQn10} = queue:out(Qn10),
+ if
+ Value =:= empty ->
+ out_current(-9, Q, ReturnType);
+ true ->
+ NewValue = if
+ ReturnType =:= priority ->
+ {value, Contents} = Value,
+ {value, Contents, -10};
+ true ->
+ Value
+ end,
+ {NewValue,
+ {-10, Qsn14,
+ {Qn13, Qn12, Qn11, NewQn10, Qn9, Qn8, Qn7},
+ Qsn1, Q0, Qsp1, Qsp7, Qsp14}}
+ end;
+out_current(-9,
+ {_, Qsn14,
+ {Qn13, Qn12, Qn11, Qn10, Qn9, Qn8, Qn7},
+ Qsn1, Q0, Qsp1, Qsp7, Qsp14} = Q, ReturnType) ->
+ {Value, NewQn9} = queue:out(Qn9),
+ if
+ Value =:= empty ->
+ out_current(-8, Q, ReturnType);
+ true ->
+ NewValue = if
+ ReturnType =:= priority ->
+ {value, Contents} = Value,
+ {value, Contents, -9};
+ true ->
+ Value
+ end,
+ {NewValue,
+ {-9, Qsn14,
+ {Qn13, Qn12, Qn11, Qn10, NewQn9, Qn8, Qn7},
+ Qsn1, Q0, Qsp1, Qsp7, Qsp14}}
+ end;
+out_current(-8,
+ {_, Qsn14,
+ {Qn13, Qn12, Qn11, Qn10, Qn9, Qn8, Qn7},
+ Qsn1, Q0, Qsp1, Qsp7, Qsp14} = Q, ReturnType) ->
+ {Value, NewQn8} = queue:out(Qn8),
+ if
+ Value =:= empty ->
+ out_current(-7, Q, ReturnType);
+ true ->
+ NewValue = if
+ ReturnType =:= priority ->
+ {value, Contents} = Value,
+ {value, Contents, -8};
+ true ->
+ Value
+ end,
+ {NewValue,
+ {-8, Qsn14,
+ {Qn13, Qn12, Qn11, Qn10, Qn9, NewQn8, Qn7},
+ Qsn1, Q0, Qsp1, Qsp7, Qsp14}}
+ end;
+out_current(-7,
+ {_, Qsn14,
+ {Qn13, Qn12, Qn11, Qn10, Qn9, Qn8, Qn7},
+ Qsn1, Q0, Qsp1, Qsp7, Qsp14} = Q, ReturnType) ->
+ {Value, NewQn7} = queue:out(Qn7),
+ if
+ Value =:= empty ->
+ out_current(-6, Q, ReturnType);
+ true ->
+ NewValue = if
+ ReturnType =:= priority ->
+ {value, Contents} = Value,
+ {value, Contents, -7};
+ true ->
+ Value
+ end,
+ {NewValue,
+ {-7, Qsn14,
+ {Qn13, Qn12, Qn11, Qn10, Qn9, Qn8, NewQn7},
+ Qsn1, Q0, Qsp1, Qsp7, Qsp14}}
+ end;
+out_current(-6,
+ {_, Qsn14, Qsn7,
+ {Qn6, Qn5, Qn4, Qn3, Qn2, Qn1},
+ Q0, Qsp1, Qsp7, Qsp14} = Q, ReturnType) ->
+ {Value, NewQn6} = queue:out(Qn6),
+ if
+ Value =:= empty ->
+ out_current(-5, Q, ReturnType);
+ true ->
+ NewValue = if
+ ReturnType =:= priority ->
+ {value, Contents} = Value,
+ {value, Contents, -6};
+ true ->
+ Value
+ end,
+ {NewValue,
+ {-6, Qsn14, Qsn7,
+ {NewQn6, Qn5, Qn4, Qn3, Qn2, Qn1},
+ Q0, Qsp1, Qsp7, Qsp14}}
+ end;
+out_current(-5,
+ {_, Qsn14, Qsn7,
+ {Qn6, Qn5, Qn4, Qn3, Qn2, Qn1},
+ Q0, Qsp1, Qsp7, Qsp14} = Q, ReturnType) ->
+ {Value, NewQn5} = queue:out(Qn5),
+ if
+ Value =:= empty ->
+ out_current(-4, Q, ReturnType);
+ true ->
+ NewValue = if
+ ReturnType =:= priority ->
+ {value, Contents} = Value,
+ {value, Contents, -5};
+ true ->
+ Value
+ end,
+ {NewValue,
+ {-5, Qsn14, Qsn7,
+ {Qn6, NewQn5, Qn4, Qn3, Qn2, Qn1},
+ Q0, Qsp1, Qsp7, Qsp14}}
+ end;
+out_current(-4,
+ {_, Qsn14, Qsn7,
+ {Qn6, Qn5, Qn4, Qn3, Qn2, Qn1},
+ Q0, Qsp1, Qsp7, Qsp14} = Q, ReturnType) ->
+ {Value, NewQn4} = queue:out(Qn4),
+ if
+ Value =:= empty ->
+ out_current(-3, Q, ReturnType);
+ true ->
+ NewValue = if
+ ReturnType =:= priority ->
+ {value, Contents} = Value,
+ {value, Contents, -4};
+ true ->
+ Value
+ end,
+ {NewValue,
+ {-4, Qsn14, Qsn7,
+ {Qn6, Qn5, NewQn4, Qn3, Qn2, Qn1},
+ Q0, Qsp1, Qsp7, Qsp14}}
+ end;
+out_current(-3,
+ {_, Qsn14, Qsn7,
+ {Qn6, Qn5, Qn4, Qn3, Qn2, Qn1},
+ Q0, Qsp1, Qsp7, Qsp14} = Q, ReturnType) ->
+ {Value, NewQn3} = queue:out(Qn3),
+ if
+ Value =:= empty ->
+ out_current(-2, Q, ReturnType);
+ true ->
+ NewValue = if
+ ReturnType =:= priority ->
+ {value, Contents} = Value,
+ {value, Contents, -3};
+ true ->
+ Value
+ end,
+ {NewValue,
+ {-3, Qsn14, Qsn7,
+ {Qn6, Qn5, Qn4, NewQn3, Qn2, Qn1},
+ Q0, Qsp1, Qsp7, Qsp14}}
+ end;
+out_current(-2,
+ {_, Qsn14, Qsn7,
+ {Qn6, Qn5, Qn4, Qn3, Qn2, Qn1},
+ Q0, Qsp1, Qsp7, Qsp14} = Q, ReturnType) ->
+ {Value, NewQn2} = queue:out(Qn2),
+ if
+ Value =:= empty ->
+ out_current(-1, Q, ReturnType);
+ true ->
+ NewValue = if
+ ReturnType =:= priority ->
+ {value, Contents} = Value,
+ {value, Contents, -2};
+ true ->
+ Value
+ end,
+ {NewValue,
+ {-2, Qsn14, Qsn7,
+ {Qn6, Qn5, Qn4, Qn3, NewQn2, Qn1},
+ Q0, Qsp1, Qsp7, Qsp14}}
+ end;
+out_current(-1,
+ {_, Qsn14, Qsn7,
+ {Qn6, Qn5, Qn4, Qn3, Qn2, Qn1},
+ Q0, Qsp1, Qsp7, Qsp14} = Q, ReturnType) ->
+ {Value, NewQn1} = queue:out(Qn1),
+ if
+ Value =:= empty ->
+ out_current(0, Q, ReturnType);
+ true ->
+ NewValue = if
+ ReturnType =:= priority ->
+ {value, Contents} = Value,
+ {value, Contents, -1};
+ true ->
+ Value
+ end,
+ {NewValue,
+ {-1, Qsn14, Qsn7,
+ {Qn6, Qn5, Qn4, Qn3, Qn2, NewQn1},
+ Q0, Qsp1, Qsp7, Qsp14}}
+ end;
+out_current(0,
+ {_, Qsn14, Qsn7, Qsn1,
+ Q0, Qsp1, Qsp7, Qsp14} = Q, ReturnType) ->
+ {Value, NewQ0} = queue:out(Q0),
+ if
+ Value =:= empty ->
+ out_current(1, Q, ReturnType);
+ true ->
+ NewValue = if
+ ReturnType =:= priority ->
+ {value, Contents} = Value,
+ {value, Contents, 0};
+ true ->
+ Value
+ end,
+ {NewValue,
+ {0, Qsn14, Qsn7, Qsn1,
+ NewQ0,
+ Qsp1, Qsp7, Qsp14}}
+ end;
+out_current(1,
+ {_, Qsn14, Qsn7, Qsn1, Q0,
+ {Qp1, Qp2, Qp3, Qp4, Qp5, Qp6},
+ Qsp7, Qsp14} = Q, ReturnType) ->
+ {Value, NewQp1} = queue:out(Qp1),
+ if
+ Value =:= empty ->
+ out_current(2, Q, ReturnType);
+ true ->
+ NewValue = if
+ ReturnType =:= priority ->
+ {value, Contents} = Value,
+ {value, Contents, 1};
+ true ->
+ Value
+ end,
+ {NewValue,
+ {1, Qsn14, Qsn7, Qsn1, Q0,
+ {NewQp1, Qp2, Qp3, Qp4, Qp5, Qp6},
+ Qsp7, Qsp14}}
+ end;
+out_current(2,
+ {_, Qsn14, Qsn7, Qsn1, Q0,
+ {Qp1, Qp2, Qp3, Qp4, Qp5, Qp6},
+ Qsp7, Qsp14} = Q, ReturnType) ->
+ {Value, NewQp2} = queue:out(Qp2),
+ if
+ Value =:= empty ->
+ out_current(3, Q, ReturnType);
+ true ->
+ NewValue = if
+ ReturnType =:= priority ->
+ {value, Contents} = Value,
+ {value, Contents, 2};
+ true ->
+ Value
+ end,
+ {NewValue,
+ {2, Qsn14, Qsn7, Qsn1, Q0,
+ {Qp1, NewQp2, Qp3, Qp4, Qp5, Qp6},
+ Qsp7, Qsp14}}
+ end;
+out_current(3,
+ {_, Qsn14, Qsn7, Qsn1, Q0,
+ {Qp1, Qp2, Qp3, Qp4, Qp5, Qp6},
+ Qsp7, Qsp14} = Q, ReturnType) ->
+ {Value, NewQp3} = queue:out(Qp3),
+ if
+ Value =:= empty ->
+ out_current(4, Q, ReturnType);
+ true ->
+ NewValue = if
+ ReturnType =:= priority ->
+ {value, Contents} = Value,
+ {value, Contents, 3};
+ true ->
+ Value
+ end,
+ {NewValue,
+ {3, Qsn14, Qsn7, Qsn1, Q0,
+ {Qp1, Qp2, NewQp3, Qp4, Qp5, Qp6},
+ Qsp7, Qsp14}}
+ end;
+out_current(4,
+ {_, Qsn14, Qsn7, Qsn1, Q0,
+ {Qp1, Qp2, Qp3, Qp4, Qp5, Qp6},
+ Qsp7, Qsp14} = Q, ReturnType) ->
+ {Value, NewQp4} = queue:out(Qp4),
+ if
+ Value =:= empty ->
+ out_current(5, Q, ReturnType);
+ true ->
+ NewValue = if
+ ReturnType =:= priority ->
+ {value, Contents} = Value,
+ {value, Contents, 4};
+ true ->
+ Value
+ end,
+ {NewValue,
+ {4, Qsn14, Qsn7, Qsn1, Q0,
+ {Qp1, Qp2, Qp3, NewQp4, Qp5, Qp6},
+ Qsp7, Qsp14}}
+ end;
+out_current(5,
+ {_, Qsn14, Qsn7, Qsn1, Q0,
+ {Qp1, Qp2, Qp3, Qp4, Qp5, Qp6},
+ Qsp7, Qsp14} = Q, ReturnType) ->
+ {Value, NewQp5} = queue:out(Qp5),
+ if
+ Value =:= empty ->
+ out_current(6, Q, ReturnType);
+ true ->
+ NewValue = if
+ ReturnType =:= priority ->
+ {value, Contents} = Value,
+ {value, Contents, 5};
+ true ->
+ Value
+ end,
+ {NewValue,
+ {5, Qsn14, Qsn7, Qsn1, Q0,
+ {Qp1, Qp2, Qp3, Qp4, NewQp5, Qp6},
+ Qsp7, Qsp14}}
+ end;
+out_current(6,
+ {_, Qsn14, Qsn7, Qsn1, Q0,
+ {Qp1, Qp2, Qp3, Qp4, Qp5, Qp6},
+ Qsp7, Qsp14} = Q, ReturnType) ->
+ {Value, NewQp6} = queue:out(Qp6),
+ if
+ Value =:= empty ->
+ out_current(7, Q, ReturnType);
+ true ->
+ NewValue = if
+ ReturnType =:= priority ->
+ {value, Contents} = Value,
+ {value, Contents, 6};
+ true ->
+ Value
+ end,
+ {NewValue,
+ {6, Qsn14, Qsn7, Qsn1, Q0,
+ {Qp1, Qp2, Qp3, Qp4, Qp5, NewQp6},
+ Qsp7, Qsp14}}
+ end;
+out_current(7,
+ {_, Qsn14, Qsn7, Qsn1, Q0, Qsp1,
+ {Qp7, Qp8, Qp9, Qp10, Qp11, Qp12, Qp13},
+ Qsp14} = Q, ReturnType) ->
+ {Value, NewQp7} = queue:out(Qp7),
+ if
+ Value =:= empty ->
+ out_current(8, Q, ReturnType);
+ true ->
+ NewValue = if
+ ReturnType =:= priority ->
+ {value, Contents} = Value,
+ {value, Contents, 7};
+ true ->
+ Value
+ end,
+ {NewValue,
+ {7, Qsn14, Qsn7, Qsn1, Q0, Qsp1,
+ {NewQp7, Qp8, Qp9, Qp10, Qp11, Qp12, Qp13},
+ Qsp14}}
+ end;
+out_current(8,
+ {_, Qsn14, Qsn7, Qsn1, Q0, Qsp1,
+ {Qp7, Qp8, Qp9, Qp10, Qp11, Qp12, Qp13},
+ Qsp14} = Q, ReturnType) ->
+ {Value, NewQp8} = queue:out(Qp8),
+ if
+ Value =:= empty ->
+ out_current(9, Q, ReturnType);
+ true ->
+ NewValue = if
+ ReturnType =:= priority ->
+ {value, Contents} = Value,
+ {value, Contents, 8};
+ true ->
+ Value
+ end,
+ {NewValue,
+ {8, Qsn14, Qsn7, Qsn1, Q0, Qsp1,
+ {Qp7, NewQp8, Qp9, Qp10, Qp11, Qp12, Qp13},
+ Qsp14}}
+ end;
+out_current(9,
+ {_, Qsn14, Qsn7, Qsn1, Q0, Qsp1,
+ {Qp7, Qp8, Qp9, Qp10, Qp11, Qp12, Qp13},
+ Qsp14} = Q, ReturnType) ->
+ {Value, NewQp9} = queue:out(Qp9),
+ if
+ Value =:= empty ->
+ out_current(10, Q, ReturnType);
+ true ->
+ NewValue = if
+ ReturnType =:= priority ->
+ {value, Contents} = Value,
+ {value, Contents, 9};
+ true ->
+ Value
+ end,
+ {NewValue,
+ {9, Qsn14, Qsn7, Qsn1, Q0, Qsp1,
+ {Qp7, Qp8, NewQp9, Qp10, Qp11, Qp12, Qp13},
+ Qsp14}}
+ end;
+out_current(10,
+ {_, Qsn14, Qsn7, Qsn1, Q0, Qsp1,
+ {Qp7, Qp8, Qp9, Qp10, Qp11, Qp12, Qp13},
+ Qsp14} = Q, ReturnType) ->
+ {Value, NewQp10} = queue:out(Qp10),
+ if
+ Value =:= empty ->
+ out_current(11, Q, ReturnType);
+ true ->
+ NewValue = if
+ ReturnType =:= priority ->
+ {value, Contents} = Value,
+ {value, Contents, 10};
+ true ->
+ Value
+ end,
+ {NewValue,
+ {10, Qsn14, Qsn7, Qsn1, Q0, Qsp1,
+ {Qp7, Qp8, Qp9, NewQp10, Qp11, Qp12, Qp13},
+ Qsp14}}
+ end;
+out_current(11,
+ {_, Qsn14, Qsn7, Qsn1, Q0, Qsp1,
+ {Qp7, Qp8, Qp9, Qp10, Qp11, Qp12, Qp13},
+ Qsp14} = Q, ReturnType) ->
+ {Value, NewQp11} = queue:out(Qp11),
+ if
+ Value =:= empty ->
+ out_current(12, Q, ReturnType);
+ true ->
+ NewValue = if
+ ReturnType =:= priority ->
+ {value, Contents} = Value,
+ {value, Contents, 11};
+ true ->
+ Value
+ end,
+ {NewValue,
+ {11, Qsn14, Qsn7, Qsn1, Q0, Qsp1,
+ {Qp7, Qp8, Qp9, Qp10, NewQp11, Qp12, Qp13},
+ Qsp14}}
+ end;
+out_current(12,
+ {_, Qsn14, Qsn7, Qsn1, Q0, Qsp1,
+ {Qp7, Qp8, Qp9, Qp10, Qp11, Qp12, Qp13},
+ Qsp14} = Q, ReturnType) ->
+ {Value, NewQp12} = queue:out(Qp12),
+ if
+ Value =:= empty ->
+ out_current(13, Q, ReturnType);
+ true ->
+ NewValue = if
+ ReturnType =:= priority ->
+ {value, Contents} = Value,
+ {value, Contents, 12};
+ true ->
+ Value
+ end,
+ {NewValue,
+ {12, Qsn14, Qsn7, Qsn1, Q0, Qsp1,
+ {Qp7, Qp8, Qp9, Qp10, Qp11, NewQp12, Qp13},
+ Qsp14}}
+ end;
+out_current(13,
+ {_, Qsn14, Qsn7, Qsn1, Q0, Qsp1,
+ {Qp7, Qp8, Qp9, Qp10, Qp11, Qp12, Qp13},
+ Qsp14} = Q, ReturnType) ->
+ {Value, NewQp13} = queue:out(Qp13),
+ if
+ Value =:= empty ->
+ out_current(14, Q, ReturnType);
+ true ->
+ NewValue = if
+ ReturnType =:= priority ->
+ {value, Contents} = Value,
+ {value, Contents, 13};
+ true ->
+ Value
+ end,
+ {NewValue,
+ {13, Qsn14, Qsn7, Qsn1, Q0, Qsp1,
+ {Qp7, Qp8, Qp9, Qp10, Qp11, Qp12, NewQp13},
+ Qsp14}}
+ end;
+out_current(14,
+ {_, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7,
+ {Qp14, Qp15, Qp16, Qp17, Qp18, Qp19, Qp20}} = Q, ReturnType) ->
+ {Value, NewQp14} = queue:out(Qp14),
+ if
+ Value =:= empty ->
+ out_current(15, Q, ReturnType);
+ true ->
+ NewValue = if
+ ReturnType =:= priority ->
+ {value, Contents} = Value,
+ {value, Contents, 14};
+ true ->
+ Value
+ end,
+ {NewValue,
+ {14, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7,
+ {NewQp14, Qp15, Qp16, Qp17, Qp18, Qp19, Qp20}}}
+ end;
+out_current(15,
+ {_, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7,
+ {Qp14, Qp15, Qp16, Qp17, Qp18, Qp19, Qp20}} = Q, ReturnType) ->
+ {Value, NewQp15} = queue:out(Qp15),
+ if
+ Value =:= empty ->
+ out_current(16, Q, ReturnType);
+ true ->
+ NewValue = if
+ ReturnType =:= priority ->
+ {value, Contents} = Value,
+ {value, Contents, 15};
+ true ->
+ Value
+ end,
+ {NewValue,
+ {15, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7,
+ {Qp14, NewQp15, Qp16, Qp17, Qp18, Qp19, Qp20}}}
+ end;
+out_current(16,
+ {_, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7,
+ {Qp14, Qp15, Qp16, Qp17, Qp18, Qp19, Qp20}} = Q, ReturnType) ->
+ {Value, NewQp16} = queue:out(Qp16),
+ if
+ Value =:= empty ->
+ out_current(17, Q, ReturnType);
+ true ->
+ NewValue = if
+ ReturnType =:= priority ->
+ {value, Contents} = Value,
+ {value, Contents, 16};
+ true ->
+ Value
+ end,
+ {NewValue,
+ {16, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7,
+ {Qp14, Qp15, NewQp16, Qp17, Qp18, Qp19, Qp20}}}
+ end;
+out_current(17,
+ {_, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7,
+ {Qp14, Qp15, Qp16, Qp17, Qp18, Qp19, Qp20}} = Q, ReturnType) ->
+ {Value, NewQp17} = queue:out(Qp17),
+ if
+ Value =:= empty ->
+ out_current(18, Q, ReturnType);
+ true ->
+ NewValue = if
+ ReturnType =:= priority ->
+ {value, Contents} = Value,
+ {value, Contents, 17};
+ true ->
+ Value
+ end,
+ {NewValue,
+ {17, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7,
+ {Qp14, Qp15, Qp16, NewQp17, Qp18, Qp19, Qp20}}}
+ end;
+out_current(18,
+ {_, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7,
+ {Qp14, Qp15, Qp16, Qp17, Qp18, Qp19, Qp20}} = Q, ReturnType) ->
+ {Value, NewQp18} = queue:out(Qp18),
+ if
+ Value =:= empty ->
+ out_current(19, Q, ReturnType);
+ true ->
+ NewValue = if
+ ReturnType =:= priority ->
+ {value, Contents} = Value,
+ {value, Contents, 18};
+ true ->
+ Value
+ end,
+ {NewValue,
+ {18, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7,
+ {Qp14, Qp15, Qp16, Qp17, NewQp18, Qp19, Qp20}}}
+ end;
+out_current(19,
+ {_, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7,
+ {Qp14, Qp15, Qp16, Qp17, Qp18, Qp19, Qp20}} = Q, ReturnType) ->
+ {Value, NewQp19} = queue:out(Qp19),
+ if
+ Value =:= empty ->
+ out_current(20, Q, ReturnType);
+ true ->
+ NewValue = if
+ ReturnType =:= priority ->
+ {value, Contents} = Value,
+ {value, Contents, 19};
+ true ->
+ Value
+ end,
+ {NewValue,
+ {19, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7,
+ {Qp14, Qp15, Qp16, Qp17, Qp18, NewQp19, Qp20}}}
+ end;
+out_current(20,
+ {_, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7,
+ {Qp14, Qp15, Qp16, Qp17, Qp18, Qp19, Qp20} = Qsp14}, ReturnType) ->
+ {Value, NewQp20} = queue:out(Qp20),
+ if
+ Value =:= empty ->
+ {empty, {empty, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}};
+ true ->
+ NewValue = if
+ ReturnType =:= priority ->
+ {value, Contents} = Value,
+ {value, Contents, 20};
+ true ->
+ Value
+ end,
+ {NewValue,
+ {20, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7,
+ {Qp14, Qp15, Qp16, Qp17, Qp18, Qp19, NewQp20}}}
+ end.
+
+out_specific(-20,
+ {Pc,
+ {Qn20, Qn19, Qn18, Qn17, Qn16, Qn15, Qn14},
+ Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}) ->
+ {Value, NewQn20} = queue:out(Qn20),
+ {Value,
+ {Pc,
+ {NewQn20, Qn19, Qn18, Qn17, Qn16, Qn15, Qn14},
+ Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}};
+out_specific(-19,
+ {Pc,
+ {Qn20, Qn19, Qn18, Qn17, Qn16, Qn15, Qn14},
+ Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}) ->
+ {Value, NewQn19} = queue:out(Qn19),
+ {Value,
+ {Pc,
+ {Qn20, NewQn19, Qn18, Qn17, Qn16, Qn15, Qn14},
+ Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}};
+out_specific(-18,
+ {Pc,
+ {Qn20, Qn19, Qn18, Qn17, Qn16, Qn15, Qn14},
+ Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}) ->
+ {Value, NewQn18} = queue:out(Qn18),
+ {Value,
+ {Pc,
+ {Qn20, Qn19, NewQn18, Qn17, Qn16, Qn15, Qn14},
+ Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}};
+out_specific(-17,
+ {Pc,
+ {Qn20, Qn19, Qn18, Qn17, Qn16, Qn15, Qn14},
+ Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}) ->
+ {Value, NewQn17} = queue:out(Qn17),
+ {Value,
+ {Pc,
+ {Qn20, Qn19, Qn18, NewQn17, Qn16, Qn15, Qn14},
+ Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}};
+out_specific(-16,
+ {Pc,
+ {Qn20, Qn19, Qn18, Qn17, Qn16, Qn15, Qn14},
+ Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}) ->
+ {Value, NewQn16} = queue:out(Qn16),
+ {Value,
+ {Pc,
+ {Qn20, Qn19, Qn18, Qn17, NewQn16, Qn15, Qn14},
+ Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}};
+out_specific(-15,
+ {Pc,
+ {Qn20, Qn19, Qn18, Qn17, Qn16, Qn15, Qn14},
+ Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}) ->
+ {Value, NewQn15} = queue:out(Qn15),
+ {Value,
+ {Pc,
+ {Qn20, Qn19, Qn18, Qn17, Qn16, NewQn15, Qn14},
+ Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}};
+out_specific(-14,
+ {Pc,
+ {Qn20, Qn19, Qn18, Qn17, Qn16, Qn15, Qn14},
+ Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}) ->
+ {Value, NewQn14} = queue:out(Qn14),
+ {Value,
+ {Pc,
+ {Qn20, Qn19, Qn18, Qn17, Qn16, Qn15, NewQn14},
+ Qsn7, Qsn1, Q0, Qsp1, Qsp7, Qsp14}};
+out_specific(-13,
+ {Pc, Qsn14,
+ {Qn13, Qn12, Qn11, Qn10, Qn9, Qn8, Qn7},
+ Qsn1, Q0, Qsp1, Qsp7, Qsp14}) ->
+ {Value, NewQn13} = queue:out(Qn13),
+ {Value,
+ {Pc, Qsn14,
+ {NewQn13, Qn12, Qn11, Qn10, Qn9, Qn8, Qn7},
+ Qsn1, Q0, Qsp1, Qsp7, Qsp14}};
+out_specific(-12,
+ {Pc, Qsn14,
+ {Qn13, Qn12, Qn11, Qn10, Qn9, Qn8, Qn7},
+ Qsn1, Q0, Qsp1, Qsp7, Qsp14}) ->
+ {Value, NewQn12} = queue:out(Qn12),
+ {Value,
+ {Pc, Qsn14,
+ {Qn13, NewQn12, Qn11, Qn10, Qn9, Qn8, Qn7},
+ Qsn1, Q0, Qsp1, Qsp7, Qsp14}};
+out_specific(-11,
+ {Pc, Qsn14,
+ {Qn13, Qn12, Qn11, Qn10, Qn9, Qn8, Qn7},
+ Qsn1, Q0, Qsp1, Qsp7, Qsp14}) ->
+ {Value, NewQn11} = queue:out(Qn11),
+ {Value,
+ {Pc, Qsn14,
+ {Qn13, Qn12, NewQn11, Qn10, Qn9, Qn8, Qn7},
+ Qsn1, Q0, Qsp1, Qsp7, Qsp14}};
+out_specific(-10,
+ {Pc, Qsn14,
+ {Qn13, Qn12, Qn11, Qn10, Qn9, Qn8, Qn7},
+ Qsn1, Q0, Qsp1, Qsp7, Qsp14}) ->
+ {Value, NewQn10} = queue:out(Qn10),
+ {Value,
+ {Pc, Qsn14,
+ {Qn13, Qn12, Qn11, NewQn10, Qn9, Qn8, Qn7},
+ Qsn1, Q0, Qsp1, Qsp7, Qsp14}};
+out_specific(-9,
+ {Pc, Qsn14,
+ {Qn13, Qn12, Qn11, Qn10, Qn9, Qn8, Qn7},
+ Qsn1, Q0, Qsp1, Qsp7, Qsp14}) ->
+ {Value, NewQn9} = queue:out(Qn9),
+ {Value,
+ {Pc, Qsn14,
+ {Qn13, Qn12, Qn11, Qn10, NewQn9, Qn8, Qn7},
+ Qsn1, Q0, Qsp1, Qsp7, Qsp14}};
+out_specific(-8,
+ {Pc, Qsn14,
+ {Qn13, Qn12, Qn11, Qn10, Qn9, Qn8, Qn7},
+ Qsn1, Q0, Qsp1, Qsp7, Qsp14}) ->
+ {Value, NewQn8} = queue:out(Qn8),
+ {Value,
+ {Pc, Qsn14,
+ {Qn13, Qn12, Qn11, Qn10, Qn9, NewQn8, Qn7},
+ Qsn1, Q0, Qsp1, Qsp7, Qsp14}};
+out_specific(-7,
+ {Pc, Qsn14,
+ {Qn13, Qn12, Qn11, Qn10, Qn9, Qn8, Qn7},
+ Qsn1, Q0, Qsp1, Qsp7, Qsp14}) ->
+ {Value, NewQn7} = queue:out(Qn7),
+ {Value,
+ {Pc, Qsn14,
+ {Qn13, Qn12, Qn11, Qn10, Qn9, Qn8, NewQn7},
+ Qsn1, Q0, Qsp1, Qsp7, Qsp14}};
+out_specific(-6,
+ {Pc, Qsn14, Qsn7,
+ {Qn6, Qn5, Qn4, Qn3, Qn2, Qn1},
+ Q0, Qsp1, Qsp7, Qsp14}) ->
+ {Value, NewQn6} = queue:out(Qn6),
+ {Value,
+ {Pc, Qsn14, Qsn7,
+ {NewQn6, Qn5, Qn4, Qn3, Qn2, Qn1},
+ Q0, Qsp1, Qsp7, Qsp14}};
+out_specific(-5,
+ {Pc, Qsn14, Qsn7,
+ {Qn6, Qn5, Qn4, Qn3, Qn2, Qn1},
+ Q0, Qsp1, Qsp7, Qsp14}) ->
+ {Value, NewQn5} = queue:out(Qn5),
+ {Value,
+ {Pc, Qsn14, Qsn7,
+ {Qn6, NewQn5, Qn4, Qn3, Qn2, Qn1},
+ Q0, Qsp1, Qsp7, Qsp14}};
+out_specific(-4,
+ {Pc, Qsn14, Qsn7,
+ {Qn6, Qn5, Qn4, Qn3, Qn2, Qn1},
+ Q0, Qsp1, Qsp7, Qsp14}) ->
+ {Value, NewQn4} = queue:out(Qn4),
+ {Value,
+ {Pc, Qsn14, Qsn7,
+ {Qn6, Qn5, NewQn4, Qn3, Qn2, Qn1},
+ Q0, Qsp1, Qsp7, Qsp14}};
+out_specific(-3,
+ {Pc, Qsn14, Qsn7,
+ {Qn6, Qn5, Qn4, Qn3, Qn2, Qn1},
+ Q0, Qsp1, Qsp7, Qsp14}) ->
+ {Value, NewQn3} = queue:out(Qn3),
+ {Value,
+ {Pc, Qsn14, Qsn7,
+ {Qn6, Qn5, Qn4, NewQn3, Qn2, Qn1},
+ Q0, Qsp1, Qsp7, Qsp14}};
+out_specific(-2,
+ {Pc, Qsn14, Qsn7,
+ {Qn6, Qn5, Qn4, Qn3, Qn2, Qn1},
+ Q0, Qsp1, Qsp7, Qsp14}) ->
+ {Value, NewQn2} = queue:out(Qn2),
+ {Value,
+ {Pc, Qsn14, Qsn7,
+ {Qn6, Qn5, Qn4, Qn3, NewQn2, Qn1},
+ Q0, Qsp1, Qsp7, Qsp14}};
+out_specific(-1,
+ {Pc, Qsn14, Qsn7,
+ {Qn6, Qn5, Qn4, Qn3, Qn2, Qn1},
+ Q0, Qsp1, Qsp7, Qsp14}) ->
+ {Value, NewQn1} = queue:out(Qn1),
+ {Value,
+ {Pc, Qsn14, Qsn7,
+ {Qn6, Qn5, Qn4, Qn3, Qn2, NewQn1},
+ Q0, Qsp1, Qsp7, Qsp14}};
+out_specific(0,
+ {Pc, Qsn14, Qsn7, Qsn1,
+ Q0, Qsp1, Qsp7, Qsp14}) ->
+ {Value, NewQ0} = queue:out(Q0),
+ {Value,
+ {Pc, Qsn14, Qsn7, Qsn1,
+ NewQ0,
+ Qsp1, Qsp7, Qsp14}};
+out_specific(1,
+ {Pc, Qsn14, Qsn7, Qsn1, Q0,
+ {Qp1, Qp2, Qp3, Qp4, Qp5, Qp6},
+ Qsp7, Qsp14}) ->
+ {Value, NewQp1} = queue:out(Qp1),
+ {Value,
+ {Pc, Qsn14, Qsn7, Qsn1, Q0,
+ {NewQp1, Qp2, Qp3, Qp4, Qp5, Qp6},
+ Qsp7, Qsp14}};
+out_specific(2,
+ {Pc, Qsn14, Qsn7, Qsn1, Q0,
+ {Qp1, Qp2, Qp3, Qp4, Qp5, Qp6},
+ Qsp7, Qsp14}) ->
+ {Value, NewQp2} = queue:out(Qp2),
+ {Value,
+ {Pc, Qsn14, Qsn7, Qsn1, Q0,
+ {Qp1, NewQp2, Qp3, Qp4, Qp5, Qp6},
+ Qsp7, Qsp14}};
+out_specific(3,
+ {Pc, Qsn14, Qsn7, Qsn1, Q0,
+ {Qp1, Qp2, Qp3, Qp4, Qp5, Qp6},
+ Qsp7, Qsp14}) ->
+ {Value, NewQp3} = queue:out(Qp3),
+ {Value,
+ {Pc, Qsn14, Qsn7, Qsn1, Q0,
+ {Qp1, Qp2, NewQp3, Qp4, Qp5, Qp6},
+ Qsp7, Qsp14}};
+out_specific(4,
+ {Pc, Qsn14, Qsn7, Qsn1, Q0,
+ {Qp1, Qp2, Qp3, Qp4, Qp5, Qp6},
+ Qsp7, Qsp14}) ->
+ {Value, NewQp4} = queue:out(Qp4),
+ {Value,
+ {Pc, Qsn14, Qsn7, Qsn1, Q0,
+ {Qp1, Qp2, Qp3, NewQp4, Qp5, Qp6},
+ Qsp7, Qsp14}};
+out_specific(5,
+ {Pc, Qsn14, Qsn7, Qsn1, Q0,
+ {Qp1, Qp2, Qp3, Qp4, Qp5, Qp6},
+ Qsp7, Qsp14}) ->
+ {Value, NewQp5} = queue:out(Qp5),
+ {Value,
+ {Pc, Qsn14, Qsn7, Qsn1, Q0,
+ {Qp1, Qp2, Qp3, Qp4, NewQp5, Qp6},
+ Qsp7, Qsp14}};
+out_specific(6,
+ {Pc, Qsn14, Qsn7, Qsn1, Q0,
+ {Qp1, Qp2, Qp3, Qp4, Qp5, Qp6},
+ Qsp7, Qsp14}) ->
+ {Value, NewQp6} = queue:out(Qp6),
+ {Value,
+ {Pc, Qsn14, Qsn7, Qsn1, Q0,
+ {Qp1, Qp2, Qp3, Qp4, Qp5, NewQp6},
+ Qsp7, Qsp14}};
+out_specific(7,
+ {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1,
+ {Qp7, Qp8, Qp9, Qp10, Qp11, Qp12, Qp13},
+ Qsp14}) ->
+ {Value, NewQp7} = queue:out(Qp7),
+ {Value,
+ {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1,
+ {NewQp7, Qp8, Qp9, Qp10, Qp11, Qp12, Qp13},
+ Qsp14}};
+out_specific(8,
+ {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1,
+ {Qp7, Qp8, Qp9, Qp10, Qp11, Qp12, Qp13},
+ Qsp14}) ->
+ {Value, NewQp8} = queue:out(Qp8),
+ {Value,
+ {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1,
+ {Qp7, NewQp8, Qp9, Qp10, Qp11, Qp12, Qp13},
+ Qsp14}};
+out_specific(9,
+ {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1,
+ {Qp7, Qp8, Qp9, Qp10, Qp11, Qp12, Qp13},
+ Qsp14}) ->
+ {Value, NewQp9} = queue:out(Qp9),
+ {Value,
+ {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1,
+ {Qp7, Qp8, NewQp9, Qp10, Qp11, Qp12, Qp13},
+ Qsp14}};
+out_specific(10,
+ {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1,
+ {Qp7, Qp8, Qp9, Qp10, Qp11, Qp12, Qp13},
+ Qsp14}) ->
+ {Value, NewQp10} = queue:out(Qp10),
+ {Value,
+ {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1,
+ {Qp7, Qp8, Qp9, NewQp10, Qp11, Qp12, Qp13},
+ Qsp14}};
+out_specific(11,
+ {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1,
+ {Qp7, Qp8, Qp9, Qp10, Qp11, Qp12, Qp13},
+ Qsp14}) ->
+ {Value, NewQp11} = queue:out(Qp11),
+ {Value,
+ {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1,
+ {Qp7, Qp8, Qp9, Qp10, NewQp11, Qp12, Qp13},
+ Qsp14}};
+out_specific(12,
+ {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1,
+ {Qp7, Qp8, Qp9, Qp10, Qp11, Qp12, Qp13},
+ Qsp14}) ->
+ {Value, NewQp12} = queue:out(Qp12),
+ {Value,
+ {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1,
+ {Qp7, Qp8, Qp9, Qp10, Qp11, NewQp12, Qp13},
+ Qsp14}};
+out_specific(13,
+ {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1,
+ {Qp7, Qp8, Qp9, Qp10, Qp11, Qp12, Qp13},
+ Qsp14}) ->
+ {Value, NewQp13} = queue:out(Qp13),
+ {Value,
+ {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1,
+ {Qp7, Qp8, Qp9, Qp10, Qp11, Qp12, NewQp13},
+ Qsp14}};
+out_specific(14,
+ {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7,
+ {Qp14, Qp15, Qp16, Qp17, Qp18, Qp19, Qp20}}) ->
+ {Value, NewQp14} = queue:out(Qp14),
+ {Value,
+ {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7,
+ {NewQp14, Qp15, Qp16, Qp17, Qp18, Qp19, Qp20}}};
+out_specific(15,
+ {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7,
+ {Qp14, Qp15, Qp16, Qp17, Qp18, Qp19, Qp20}}) ->
+ {Value, NewQp15} = queue:out(Qp15),
+ {Value,
+ {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7,
+ {Qp14, NewQp15, Qp16, Qp17, Qp18, Qp19, Qp20}}};
+out_specific(16,
+ {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7,
+ {Qp14, Qp15, Qp16, Qp17, Qp18, Qp19, Qp20}}) ->
+ {Value, NewQp16} = queue:out(Qp16),
+ {Value,
+ {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7,
+ {Qp14, Qp15, NewQp16, Qp17, Qp18, Qp19, Qp20}}};
+out_specific(17,
+ {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7,
+ {Qp14, Qp15, Qp16, Qp17, Qp18, Qp19, Qp20}}) ->
+ {Value, NewQp17} = queue:out(Qp17),
+ {Value,
+ {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7,
+ {Qp14, Qp15, Qp16, NewQp17, Qp18, Qp19, Qp20}}};
+out_specific(18,
+ {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7,
+ {Qp14, Qp15, Qp16, Qp17, Qp18, Qp19, Qp20}}) ->
+ {Value, NewQp18} = queue:out(Qp18),
+ {Value,
+ {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7,
+ {Qp14, Qp15, Qp16, Qp17, NewQp18, Qp19, Qp20}}};
+out_specific(19,
+ {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7,
+ {Qp14, Qp15, Qp16, Qp17, Qp18, Qp19, Qp20}}) ->
+ {Value, NewQp19} = queue:out(Qp19),
+ {Value,
+ {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7,
+ {Qp14, Qp15, Qp16, Qp17, Qp18, NewQp19, Qp20}}};
+out_specific(20,
+ {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7,
+ {Qp14, Qp15, Qp16, Qp17, Qp18, Qp19, Qp20}}) ->
+ {Value, NewQp20} = queue:out(Qp20),
+ {Value,
+ {Pc, Qsn14, Qsn7, Qsn1, Q0, Qsp1, Qsp7,
+ {Qp14, Qp15, Qp16, Qp17, Qp18, Qp19, NewQp20}}}.
+
+-ifdef(TEST).
+-include_lib("eunit/include/eunit.hrl").
+
+-include("pqueue_test.hrl").
+
+module_test_() ->
+ {timeout, ?TEST_TIMEOUT, [
+ {"internal tests", ?_assertOk(test())}
+ ]}.
+
+long_test_() ->
+ test_condition([
+ {"proper tests", ?_assert(pqueue_proper:qc_pq())}
+ ], ?CLOUDI_LONG_TEST_TIMEOUT).
+
+-endif.
+
diff --git a/aoc2023/build/packages/pqueue/src/pqueue2.erl b/aoc2023/build/packages/pqueue/src/pqueue2.erl
new file mode 100644
index 0000000..bbdeaaf
--- /dev/null
+++ b/aoc2023/build/packages/pqueue/src/pqueue2.erl
@@ -0,0 +1,483 @@
+%-*-Mode:erlang;coding:utf-8;tab-width:4;c-basic-offset:4;indent-tabs-mode:()-*-
+% ex: set ft=erlang fenc=utf-8 sts=4 ts=4 sw=4 et nomod:
+%%%
+%%%------------------------------------------------------------------------
+%%% @doc
+%%% ==Skew Heap Priority Queue.==
+%%% Ulf Wiger suggested pursuing a skew heap as an optimal Erlang priority
+%%% queue implementation. Unfortunately, testing has shown this solution to
+%%% be more than 2 times slower than pqueue.
+%%% @end
+%%%
+%%% MIT License
+%%%
+%%% Copyright (c) 2011-2020 Michael Truog <mjtruog at protonmail dot com>
+%%%
+%%% Permission is hereby granted, free of charge, to any person obtaining a
+%%% copy of this software and associated documentation files (the "Software"),
+%%% to deal in the Software without restriction, including without limitation
+%%% the rights to use, copy, modify, merge, publish, distribute, sublicense,
+%%% and/or sell copies of the Software, and to permit persons to whom the
+%%% Software is furnished to do so, subject to the following conditions:
+%%%
+%%% The above copyright notice and this permission notice shall be included in
+%%% all copies or substantial portions of the Software.
+%%%
+%%% THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+%%% IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+%%% FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+%%% AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+%%% LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+%%% FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+%%% DEALINGS IN THE SOFTWARE.
+%%%
+%%% @author Michael Truog <mjtruog at protonmail dot com>
+%%% @copyright 2011-2020 Michael Truog
+%%% @version 2.0.1 {@date} {@time}
+%%%------------------------------------------------------------------------
+
+-module(pqueue2).
+-author('mjtruog at protonmail dot com').
+
+%% external interface
+-export([in/2,
+ in/3,
+ is_empty/1,
+ is_queue/1,
+ len/1,
+ new/0,
+ out/1,
+ out/2,
+ pout/1,
+ to_list/1,
+ test/0]).
+
+%%%------------------------------------------------------------------------
+%%% External interface functions
+%%%------------------------------------------------------------------------
+
+-ifdef(ERLANG_OTP_VERSION_16).
+-type pqueue2() ::
+ empty |
+ {integer(), pqueue2(), pqueue2(), element, term()} |
+ {integer(), pqueue2(), pqueue2(), queue, queue()}.
+-else.
+-type pqueue2() ::
+ empty |
+ {integer(), pqueue2(), pqueue2(), element, term()} |
+ {integer(), pqueue2(), pqueue2(), queue, queue:queue()}.
+-endif.
+
+%%-------------------------------------------------------------------------
+%% @doc
+%% ===Append an item to the tail of the 0 priority queue.===
+%% @end
+%%-------------------------------------------------------------------------
+
+-spec in(term(), pqueue2()) -> pqueue2().
+
+in(Value, H) ->
+ in(Value, 0, H).
+
+%%-------------------------------------------------------------------------
+%% @doc
+%% ===Append an item to the tail of a specific priority queue.===
+%% @end
+%%-------------------------------------------------------------------------
+
+-spec in(term(), integer(), pqueue2()) -> pqueue2().
+
+in(Value, P, H) ->
+ merge({P, empty, empty, element, Value}, H).
+
+%%-------------------------------------------------------------------------
+%% @doc
+%% ===Check if the priority queue is empty.===
+%% @end
+%%-------------------------------------------------------------------------
+
+-spec is_empty(pqueue2()) -> 'true' | 'false'.
+
+is_empty(empty) ->
+ true;
+is_empty({_, HL, HR, queue, Queue}) ->
+ is_empty(HL) andalso is_empty(HR) andalso queue:is_empty(Queue);
+is_empty(_) ->
+ false.
+
+%%-------------------------------------------------------------------------
+%% @doc
+%% ===Check if the priority queue type is as expected.===
+%% @end
+%%-------------------------------------------------------------------------
+
+-spec is_queue(pqueue2()) -> 'true' | 'false'.
+
+is_queue(empty) ->
+ true;
+is_queue({P, _, _, element, _})
+ when is_integer(P) ->
+ true;
+is_queue({P, _, _, queue, Queue})
+ when is_integer(P) ->
+ queue:is_queue(Queue);
+is_queue(_) ->
+ false.
+
+%%-------------------------------------------------------------------------
+%% @doc
+%% ===Determine the length of a priority queue.===
+%% @end
+%%-------------------------------------------------------------------------
+
+-spec len(pqueue2()) -> non_neg_integer().
+
+len(H) ->
+ len(0, out(H)).
+len(I, {empty, _}) ->
+ I;
+len(I, {{value, _}, H}) ->
+ len(I + 1, out(H)).
+
+%%-------------------------------------------------------------------------
+%% @doc
+%% ===Create a new priority queue.===
+%% @end
+%%-------------------------------------------------------------------------
+
+-spec new() -> pqueue2().
+
+new() ->
+ empty.
+
+%%-------------------------------------------------------------------------
+%% @doc
+%% ===Take an item from the head of the priority queue.===
+%% @end
+%%-------------------------------------------------------------------------
+
+-spec out(pqueue2()) ->
+ {{'value', term()}, pqueue2()} | {'empty', pqueue2()}.
+
+out(empty) ->
+ {empty, empty};
+out({_, HL, HR, element, Value}) ->
+ {{value, Value}, merge(HL, HR)};
+out({P, HL, HR, queue, Queue}) ->
+ case queue:out(Queue) of
+ {{value, _} = Result, NewQueue} ->
+ {Result, {P, HL, HR, queue, NewQueue}};
+ {empty, _} ->
+ out(merge(HL, HR))
+ end.
+
+%%-------------------------------------------------------------------------
+%% @doc
+%% ===Take an item of a specific priority from the head of the queue.===
+%% @end
+%%-------------------------------------------------------------------------
+
+-spec out(integer(), pqueue2()) ->
+ {{'value', term()}, pqueue2()} | {'empty', pqueue2()}.
+
+out(_, empty) ->
+ {empty, empty};
+out(P, {P1, _, _, _, _} = H) when P < P1 ->
+ {empty, H};
+out(P, {P1, HL1, HR1, T, D}) when P > P1 ->
+ case out(P, HL1) of
+ {{value, _} = Result, HL2} ->
+ {Result, {P1, HL2, HR1, T, D}};
+ {empty, HL2} ->
+ case out(P, HR1) of
+ {{value, _} = Result, HR2} ->
+ {Result, {P1, HL2, HR2, T, D}};
+ {empty, HR2} ->
+ {empty, {P1, HL2, HR2, T, D}}
+ end
+ end;
+out(P, {P, HL, HR, element, Value}) ->
+ {{value, Value}, merge(HL, HR)};
+out(P, {P, HL, HR, queue, Queue}) ->
+ case queue:out(Queue) of
+ {{value, _} = Result, NewQueue} ->
+ {Result, {P, HL, HR, queue, NewQueue}};
+ {empty, _} ->
+ out(P, merge(HL, HR))
+ end.
+
+%%-------------------------------------------------------------------------
+%% @doc
+%% ===Take an item from the head of the priority queue.===
+%% Includes the priority in the return value.
+%% @end
+%%-------------------------------------------------------------------------
+
+-spec pout(pqueue2()) ->
+ {{'value', term(), integer()}, pqueue2()} | {'empty', pqueue2()}.
+
+pout(empty) ->
+ {empty, empty};
+pout({P, HL, HR, element, Value}) ->
+ {{value, Value, P}, merge(HL, HR)};
+pout({P, HL, HR, queue, Queue}) ->
+ case queue:out(Queue) of
+ {{value, Value}, NewQueue} ->
+ {{value, Value, P}, {P, HL, HR, queue, NewQueue}};
+ {empty, _} ->
+ pout(merge(HL, HR))
+ end.
+
+%%-------------------------------------------------------------------------
+%% @doc
+%% ===Convert the priority queue to a list.===
+%% @end
+%%-------------------------------------------------------------------------
+
+-spec to_list(pqueue2()) -> list(term()).
+
+to_list(H) ->
+ to_list([], out(H)).
+to_list(L, {empty, _}) ->
+ lists:reverse(L);
+to_list(L, {{value, Value}, H}) ->
+ to_list([Value | L], out(H)).
+
+%%-------------------------------------------------------------------------
+%% @doc
+%% ===Regression test.===
+%% @end
+%%-------------------------------------------------------------------------
+
+test() ->
+ Q0 = pqueue2:new(),
+ true = pqueue2:is_queue(Q0),
+ Q1 = pqueue2:in(20, 20, Q0),
+ Q2 = pqueue2:in(19, 19, Q1),
+ Q3 = pqueue2:in(18, 18, Q2),
+ Q4 = pqueue2:in(17, 17, Q3),
+ Q5 = pqueue2:in(16, 16, Q4),
+ Q6 = pqueue2:in(15, 15, Q5),
+ Q7 = pqueue2:in(14, 14, Q6),
+ Q8 = pqueue2:in(13, 13, Q7),
+ Q9 = pqueue2:in(12, 12, Q8),
+ Q10 = pqueue2:in(11, 11, Q9),
+ Q11 = pqueue2:in(10, 10, Q10),
+ Q12 = pqueue2:in(9, 9, Q11),
+ Q13 = pqueue2:in(8, 8, Q12),
+ Q14 = pqueue2:in(7, 7, Q13),
+ Q15 = pqueue2:in(6, 6, Q14),
+ Q16 = pqueue2:in(5, 5, Q15),
+ Q17 = pqueue2:in(4, 4, Q16),
+ Q18 = pqueue2:in(3, 3, Q17),
+ Q19 = pqueue2:in(2, 2, Q18),
+ Q20 = pqueue2:in(1, 1, Q19),
+ Q21 = pqueue2:in(0, 0, Q20),
+ Q22 = pqueue2:in(-1, -1, Q21),
+ Q23 = pqueue2:in(-2, -2, Q22),
+ Q24 = pqueue2:in(-3, -3, Q23),
+ Q25 = pqueue2:in(-4, -4, Q24),
+ Q26 = pqueue2:in(-5, -5, Q25),
+ Q27 = pqueue2:in(-6, -6, Q26),
+ Q28 = pqueue2:in(-7, -7, Q27),
+ Q29 = pqueue2:in(-8, -8, Q28),
+ Q30 = pqueue2:in(-9, -9, Q29),
+ Q31 = pqueue2:in(-10, -10, Q30),
+ Q32 = pqueue2:in(-11, -11, Q31),
+ Q33 = pqueue2:in(-12, -12, Q32),
+ Q34 = pqueue2:in(-13, -13, Q33),
+ Q35 = pqueue2:in(-14, -14, Q34),
+ Q36 = pqueue2:in(-15, -15, Q35),
+ Q37 = pqueue2:in(-16, -16, Q36),
+ Q38 = pqueue2:in(-17, -17, Q37),
+ Q39 = pqueue2:in(-18, -18, Q38),
+ Q40 = pqueue2:in(-19, -19, Q39),
+ Q41 = pqueue2:in(-20, -20, Q40),
+ Q42 = pqueue2:in(-20, -20, Q41),
+ Q43 = pqueue2:in(-19, -19, Q42),
+ Q44 = pqueue2:in(-18, -18, Q43),
+ Q45 = pqueue2:in(-17, -17, Q44),
+ Q46 = pqueue2:in(-16, -16, Q45),
+ Q47 = pqueue2:in(-15, -15, Q46),
+ Q48 = pqueue2:in(-14, -14, Q47),
+ Q49 = pqueue2:in(-13, -13, Q48),
+ Q50 = pqueue2:in(-12, -12, Q49),
+ Q51 = pqueue2:in(-11, -11, Q50),
+ Q52 = pqueue2:in(-10, -10, Q51),
+ Q53 = pqueue2:in(-9, -9, Q52),
+ Q54 = pqueue2:in(-8, -8, Q53),
+ Q55 = pqueue2:in(-7, -7, Q54),
+ Q56 = pqueue2:in(-6, -6, Q55),
+ Q57 = pqueue2:in(-5, -5, Q56),
+ Q58 = pqueue2:in(-4, -4, Q57),
+ Q59 = pqueue2:in(-3, -3, Q58),
+ Q60 = pqueue2:in(-2, -2, Q59),
+ Q61 = pqueue2:in(-1, -1, Q60),
+ Q62 = pqueue2:in(0, 0, Q61),
+ Q63 = pqueue2:in(1, 1, Q62),
+ Q64 = pqueue2:in(2, 2, Q63),
+ Q65 = pqueue2:in(3, 3, Q64),
+ Q66 = pqueue2:in(4, 4, Q65),
+ Q67 = pqueue2:in(5, 5, Q66),
+ Q68 = pqueue2:in(6, 6, Q67),
+ Q69 = pqueue2:in(7, 7, Q68),
+ Q70 = pqueue2:in(8, 8, Q69),
+ Q71 = pqueue2:in(9, 9, Q70),
+ Q72 = pqueue2:in(10, 10, Q71),
+ Q73 = pqueue2:in(11, 11, Q72),
+ Q74 = pqueue2:in(12, 12, Q73),
+ Q75 = pqueue2:in(13, 13, Q74),
+ Q76 = pqueue2:in(14, 14, Q75),
+ Q77 = pqueue2:in(15, 15, Q76),
+ Q78 = pqueue2:in(16, 16, Q77),
+ Q79 = pqueue2:in(17, 17, Q78),
+ Q80 = pqueue2:in(18, 18, Q79),
+ Q81 = pqueue2:in(19, 19, Q80),
+ Q82 = pqueue2:in(20, 20, Q81),
+ true = pqueue2:is_queue(Q82),
+ 82 = pqueue2:len(Q82),
+ [-20, -20, -19, -19, -18, -18, -17, -17, -16, -16, -15, -15, -14, -14,
+ -13, -13, -12, -12, -11, -11, -10, -10, -9, -9, -8, -8, -7, -7, -6, -6,
+ -5, -5, -4, -4, -3, -3, -2, -2, -1, -1, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4,
+ 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14, 14,
+ 15, 15, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20] = pqueue2:to_list(Q82),
+ {{value, -20}, Q83} = pqueue2:out(Q82),
+ {{value, -20}, Q84} = pqueue2:out(Q83),
+ {{value, -19}, Q85} = pqueue2:out(Q84),
+ {{value, -19}, Q86} = pqueue2:out(Q85),
+ {{value, -18}, Q87} = pqueue2:out(Q86),
+ {{value, -18}, Q88} = pqueue2:out(Q87),
+ {{value, 0}, Q89} = pqueue2:out(0, Q88),
+ {{value, 0}, Q90} = pqueue2:out(0, Q89),
+ {empty, _} = pqueue2:out(0, Q90),
+ {{value, -17, -17}, Q91} = pqueue2:pout(Q90),
+ {{value, -17, -17}, Q92} = pqueue2:pout(Q91),
+ {{value, -16, -16}, Q93} = pqueue2:pout(Q92),
+ {{value, -16, -16}, Q94} = pqueue2:pout(Q93),
+ {{value, -15, -15}, Q95} = pqueue2:pout(Q94),
+ {{value, -15, -15}, Q96} = pqueue2:pout(Q95),
+ {{value, -14, -14}, Q97} = pqueue2:pout(Q96),
+ {{value, -14, -14}, Q98} = pqueue2:pout(Q97),
+ {{value, -13, -13}, Q99} = pqueue2:pout(Q98),
+ {{value, -13, -13}, Q100} = pqueue2:pout(Q99),
+ {{value, -12, -12}, Q101} = pqueue2:pout(Q100),
+ {{value, -12, -12}, Q102} = pqueue2:pout(Q101),
+ {{value, -11, -11}, Q103} = pqueue2:pout(Q102),
+ {{value, -11, -11}, Q104} = pqueue2:pout(Q103),
+ {{value, -10, -10}, Q105} = pqueue2:pout(Q104),
+ {{value, -10, -10}, Q106} = pqueue2:pout(Q105),
+ {{value, -9, -9}, Q107} = pqueue2:pout(Q106),
+ {{value, -9, -9}, Q108} = pqueue2:pout(Q107),
+ {{value, -8, -8}, Q109} = pqueue2:pout(Q108),
+ {{value, -8, -8}, Q110} = pqueue2:pout(Q109),
+ {{value, -7, -7}, Q111} = pqueue2:pout(Q110),
+ {{value, -7, -7}, Q112} = pqueue2:pout(Q111),
+ {{value, -6, -6}, Q113} = pqueue2:pout(Q112),
+ {{value, -6, -6}, Q114} = pqueue2:pout(Q113),
+ {{value, -5, -5}, Q115} = pqueue2:pout(Q114),
+ {{value, -5, -5}, Q116} = pqueue2:pout(Q115),
+ {{value, -4, -4}, Q117} = pqueue2:pout(Q116),
+ {{value, -4, -4}, Q118} = pqueue2:pout(Q117),
+ {{value, -3, -3}, Q119} = pqueue2:pout(Q118),
+ {{value, -3, -3}, Q120} = pqueue2:pout(Q119),
+ {{value, -2, -2}, Q121} = pqueue2:pout(Q120),
+ {{value, -2, -2}, Q122} = pqueue2:pout(Q121),
+ {{value, -1, -1}, Q123} = pqueue2:pout(Q122),
+ {{value, -1, -1}, Q124} = pqueue2:pout(Q123),
+ {{value, 1, 1}, Q125} = pqueue2:pout(Q124),
+ {{value, 1, 1}, Q126} = pqueue2:pout(Q125),
+ {{value, 2, 2}, Q127} = pqueue2:pout(Q126),
+ {{value, 2, 2}, Q128} = pqueue2:pout(Q127),
+ {{value, 3, 3}, Q129} = pqueue2:pout(Q128),
+ {{value, 3, 3}, Q130} = pqueue2:pout(Q129),
+ {{value, 4, 4}, Q131} = pqueue2:pout(Q130),
+ {{value, 4, 4}, Q132} = pqueue2:pout(Q131),
+ {{value, 5, 5}, Q133} = pqueue2:pout(Q132),
+ {{value, 5, 5}, Q134} = pqueue2:pout(Q133),
+ {{value, 6, 6}, Q135} = pqueue2:pout(Q134),
+ {{value, 6, 6}, Q136} = pqueue2:pout(Q135),
+ {{value, 7, 7}, Q137} = pqueue2:pout(Q136),
+ {{value, 7, 7}, Q138} = pqueue2:pout(Q137),
+ {{value, 8, 8}, Q139} = pqueue2:pout(Q138),
+ {{value, 8, 8}, Q140} = pqueue2:pout(Q139),
+ {{value, 9, 9}, Q141} = pqueue2:pout(Q140),
+ {{value, 9, 9}, Q142} = pqueue2:pout(Q141),
+ {{value, 10, 10}, Q143} = pqueue2:pout(Q142),
+ {{value, 10, 10}, Q144} = pqueue2:pout(Q143),
+ {{value, 11, 11}, Q145} = pqueue2:pout(Q144),
+ {{value, 11, 11}, Q146} = pqueue2:pout(Q145),
+ {{value, 12, 12}, Q147} = pqueue2:pout(Q146),
+ {{value, 12, 12}, Q148} = pqueue2:pout(Q147),
+ {{value, 13, 13}, Q149} = pqueue2:pout(Q148),
+ {{value, 13, 13}, Q150} = pqueue2:pout(Q149),
+ {{value, 14, 14}, Q151} = pqueue2:pout(Q150),
+ {{value, 14, 14}, Q152} = pqueue2:pout(Q151),
+ {{value, 15, 15}, Q153} = pqueue2:pout(Q152),
+ {{value, 15, 15}, Q154} = pqueue2:pout(Q153),
+ {{value, 16, 16}, Q155} = pqueue2:pout(Q154),
+ {{value, 16, 16}, Q156} = pqueue2:pout(Q155),
+ {{value, 17, 17}, Q157} = pqueue2:pout(Q156),
+ {{value, 17, 17}, Q158} = pqueue2:pout(Q157),
+ {{value, 18, 18}, Q159} = pqueue2:pout(Q158),
+ {{value, 18, 18}, Q160} = pqueue2:pout(Q159),
+ {{value, 19, 19}, Q161} = pqueue2:pout(Q160),
+ {{value, 19, 19}, Q162} = pqueue2:pout(Q161),
+ {{value, 20, 20}, Q163} = pqueue2:pout(Q162),
+ {{value, 20, 20}, Q164} = pqueue2:pout(Q163),
+ true = pqueue2:is_empty(Q164),
+ {empty, Q165} = pqueue2:pout(Q164),
+ true = pqueue2:is_empty(Q165),
+ % test case 1, based on proper testing
+ C1V0 = pqueue2:in(-18, pqueue2:new()),
+ C1V1 = pqueue2:in(9, C1V0),
+ C1V2 = pqueue2:in(-10, -4, C1V1),
+ C1V3 = pqueue2:in(-29, C1V2),
+ C1V4 = pqueue2:in(11, C1V3),
+ 5 = pqueue2:len(C1V4),
+ [-10, -18, 9, -29, 11] = pqueue2:to_list(C1V4),
+ % test case 2, based on proper testing
+ C2V0 = pqueue2:in(-4, -15, pqueue2:new()),
+ C2V1 = pqueue2:in(13, C2V0),
+ C2V2 = pqueue2:in(2, C2V1),
+ [-4, 13, 2] = to_list(C2V2),
+ ok.
+
+%%%------------------------------------------------------------------------
+%%% Private functions
+%%%------------------------------------------------------------------------
+
+merge(empty, empty) ->
+ empty;
+merge(empty, {_, _, _, _, _} = H) ->
+ H;
+merge({_, _, _, _, _} = H, empty) ->
+ H;
+merge({P1, HL1, HR1, T, D}, {P2, _, _, _, _} = H2) when P1 < P2 ->
+ {P1, HL1, merge(HR1, H2), T, D};
+merge({P1, _, _, _, _} = H1, {P2, HL2, HR2, T, D}) when P1 > P2 ->
+ {P2, HL2, merge(H1, HR2), T, D};
+merge({P, HL1, HR1, element, Value1}, {P, HL2, HR2, element, Value2}) ->
+ {P, merge(HL1, HR1), merge(HL2, HR2), queue,
+ queue:from_list([Value2, Value1])};
+merge({P, HL1, HR1, queue, Queue}, {P, HL2, HR2, element, Value}) ->
+ {P, merge(HL1, HR1), merge(HL2, HR2), queue, queue:in(Value, Queue)};
+merge({P, HL1, HR1, element, Value}, {P, HL2, HR2, queue, Queue}) ->
+ {P, merge(HL1, HR1), merge(HL2, HR2), queue, queue:in(Value, Queue)}.
+
+-ifdef(TEST).
+-include_lib("eunit/include/eunit.hrl").
+
+-include("pqueue_test.hrl").
+
+module_test_() ->
+ {timeout, ?TEST_TIMEOUT, [
+ {"internal tests", ?_assertOk(test())}
+ ]}.
+
+long_test_() ->
+ test_condition([
+ {"proper tests", ?_assert(pqueue_proper:qc_pq2())}
+ ], ?CLOUDI_LONG_TEST_TIMEOUT).
+
+-endif.
+
diff --git a/aoc2023/build/packages/pqueue/src/pqueue3.erl b/aoc2023/build/packages/pqueue/src/pqueue3.erl
new file mode 100644
index 0000000..03b370a
--- /dev/null
+++ b/aoc2023/build/packages/pqueue/src/pqueue3.erl
@@ -0,0 +1,404 @@
+%-*-Mode:erlang;coding:utf-8;tab-width:4;c-basic-offset:4;indent-tabs-mode:()-*-
+% ex: set ft=erlang fenc=utf-8 sts=4 ts=4 sw=4 et nomod:
+%%%
+%%%------------------------------------------------------------------------
+%%% @doc
+%%% ==A Large Priority Queue.==
+%%% This priority queue implementation depends on layered tuples, so that tuple
+%%% access times can be exploited for quick in/out priority queue operations
+%%% when using 64 or more total priorities. This implementation was created
+%%% to avoid the slowness within the priority queue used by
+%%% both RabbitMQ and Riak
+%%% (https://github.com/basho/riak_core/blob/master/src/priority_queue.erl).
+%%% @end
+%%%
+%%% MIT License
+%%%
+%%% Copyright (c) 2011-2020 Michael Truog <mjtruog at protonmail dot com>
+%%%
+%%% Permission is hereby granted, free of charge, to any person obtaining a
+%%% copy of this software and associated documentation files (the "Software"),
+%%% to deal in the Software without restriction, including without limitation
+%%% the rights to use, copy, modify, merge, publish, distribute, sublicense,
+%%% and/or sell copies of the Software, and to permit persons to whom the
+%%% Software is furnished to do so, subject to the following conditions:
+%%%
+%%% The above copyright notice and this permission notice shall be included in
+%%% all copies or substantial portions of the Software.
+%%%
+%%% THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+%%% IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+%%% FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+%%% AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+%%% LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+%%% FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+%%% DEALINGS IN THE SOFTWARE.
+%%%
+%%% @author Michael Truog <mjtruog at protonmail dot com>
+%%% @copyright 2011-2020 Michael Truog
+%%% @version 2.0.1 {@date} {@time}
+%%%------------------------------------------------------------------------
+
+-module(pqueue3).
+-author('mjtruog at protonmail dot com').
+
+%% external interface
+-export([in/2, % O(1)
+ in/3, % O(1)
+ is_empty/1, % O(1)
+ is_queue/1, % O(1)
+ len/1, % O(N)
+ new/0, % O(1)
+ new/1, % O(1)
+ out/1, % O(1) amortized, O(N) worst case
+ out/2, % O(1) amortized, O(N) worst case
+ pout/1, % O(1) amortized, O(N) worst case
+ to_list/1]). % O(N)
+
+%%%------------------------------------------------------------------------
+%%% External interface functions
+%%%------------------------------------------------------------------------
+
+-type pqueue3() :: {integer(), integer(), empty | integer(), tuple()}.
+-type pqueue3_empty() :: {integer(), integer(), empty, tuple()}.
+
+%%-------------------------------------------------------------------------
+%% @doc
+%% ===Append an item to the tail of the 0 priority queue.===
+%% O(1)
+%% @end
+%%-------------------------------------------------------------------------
+
+-spec in(term(), pqueue3()) -> pqueue3().
+
+in(Value, Q) ->
+ in(Value, 0, Q).
+
+%%-------------------------------------------------------------------------
+%% @doc
+%% ===Append an item to the tail of a specific priority queue.===
+%% O(1)
+%% @end
+%%-------------------------------------------------------------------------
+
+-spec in(term(), integer(), pqueue3()) -> pqueue3().
+
+in(_, P, {Size, Offset, _, _})
+ when (P + Offset) < 0; (P + Offset) > Size ->
+ erlang:exit(badarg);
+in(Value, P, {Size, Offset, empty, Bins}) ->
+ PriorityIndex = P + Offset,
+ {Size, Offset, PriorityIndex,
+ in_queue(layer_indexes(Size, PriorityIndex), Value, Bins)};
+in(Value, P, {Size, Offset, I, Bins})
+ when (P + Offset) < I ->
+ PriorityIndex = P + Offset,
+ {Size, Offset, PriorityIndex,
+ in_queue(layer_indexes(Size, PriorityIndex), Value, Bins)};
+in(Value, P, {Size, Offset, I, Bins}) ->
+ {Size, Offset, I,
+ in_queue(layer_indexes(Size, P + Offset), Value, Bins)}.
+
+%%-------------------------------------------------------------------------
+%% @doc
+%% ===Check if the priority queue is empty.===
+%% O(1)
+%% @end
+%%-------------------------------------------------------------------------
+
+-spec is_empty(pqueue3()) -> 'true' | 'false'.
+
+is_empty({_, _, empty, _}) ->
+ true;
+is_empty({_, _, _, _} = Q) ->
+ case out(Q) of
+ {empty, _} ->
+ true;
+ {{value, _}, _} ->
+ false
+ end.
+
+%%-------------------------------------------------------------------------
+%% @doc
+%% ===Check if the priority queue type is as expected.===
+%% O(1)
+%% @end
+%%-------------------------------------------------------------------------
+
+-spec is_queue(pqueue3()) -> 'true' | 'false'.
+
+is_queue({Size, Offset, I, Bins})
+ when is_integer(Size), is_integer(Offset), is_tuple(Bins) ->
+ (I =:= empty) or is_integer(I);
+is_queue(_) ->
+ false.
+
+%%-------------------------------------------------------------------------
+%% @doc
+%% ===Determine the length of a priority queue.===
+%% O(N)
+%% @end
+%%-------------------------------------------------------------------------
+
+-spec len(pqueue3()) -> non_neg_integer().
+
+len(Q) ->
+ len(0, out(Q)).
+len(I, {empty, _}) ->
+ I;
+len(I, {{value, _}, Q}) ->
+ len(I + 1, out(Q)).
+
+%%-------------------------------------------------------------------------
+%% @doc
+%% ===Create a new priority queue.===
+%% O(1)
+%% @end
+%%-------------------------------------------------------------------------
+
+-spec new() -> pqueue3_empty().
+
+new() ->
+ new([]).
+
+%%-------------------------------------------------------------------------
+%% @doc
+%% ===Create a new priority queue with customization options.===
+%% O(1)
+%% @end
+%%-------------------------------------------------------------------------
+
+-spec new(list({atom(), term()})) -> pqueue3().
+
+new(Options) ->
+ Size = proplists:get_value(priorities, Options, 256),
+ MiddleZero = proplists:get_value(middle_priority_zero, Options, true),
+ Offset = if
+ MiddleZero =:= true ->
+ erlang:round((Size / 2) + 0.5) - 1;
+ true ->
+ 0
+ end,
+ {Size, Offset, empty, create(layer_sizes(Size))}.
+
+%%-------------------------------------------------------------------------
+%% @doc
+%% ===Take an item from the head of the priority queue.===
+%% O(1) amortized, O(N) worst case
+%% @end
+%%-------------------------------------------------------------------------
+
+-spec out(pqueue3()) ->
+ {{'value', term()}, pqueue3()} | {'empty', pqueue3()}.
+
+out({_, _, empty, _} = Q) ->
+ {empty, Q};
+out({Size, Offset, I, Bins}) ->
+ {Result, NewI, NewBins} = out_check(
+ I, Size, out_queue(layer_indexes(Size, I), Bins)
+ ),
+ {Result, {Size, Offset, NewI, NewBins}}.
+
+%%-------------------------------------------------------------------------
+%% @doc
+%% ===Take an item of a specific priority from the head of the queue.===
+%% O(1) amortized, O(N) worst case
+%% @end
+%%-------------------------------------------------------------------------
+
+-spec out(integer(), pqueue3()) ->
+ {{'value', term()}, pqueue3()} | {'empty', pqueue3()}.
+
+out(P, {Size, Offset, _, _})
+ when (P + Offset) < 0; (P + Offset) > Size ->
+ erlang:exit(badarg);
+out(_, {_, _, empty, _} = Q) ->
+ {empty, Q};
+out(P, {Size, Offset, I, Bins}) ->
+ {Result, NewBins} = out_queue(layer_indexes(Size, P + Offset), Bins),
+ {Result, {Size, Offset, I, NewBins}}.
+
+%%-------------------------------------------------------------------------
+%% @doc
+%% ===Take an item from the head of the priority queue.===
+%% Includes the priority in the return value.
+%% O(1) amortized, O(N) worst case
+%% @end
+%%-------------------------------------------------------------------------
+
+-spec pout(pqueue3()) ->
+ {{'value', term(), integer()}, pqueue3()} | {'empty', pqueue3()}.
+
+pout({_, _, empty, _} = Q) ->
+ {empty, Q};
+pout({Size, Offset, I, Bins}) ->
+ {Result, NewI, NewBins} = pout_check(
+ I, Size, Offset, out_queue(layer_indexes(Size, I), Bins)
+ ),
+ {Result, {Size, Offset, NewI, NewBins}}.
+
+%%-------------------------------------------------------------------------
+%% @doc
+%% ===Convert the priority queue to a list.===
+%% O(N)
+%% @end
+%%-------------------------------------------------------------------------
+
+-spec to_list(pqueue3()) -> list(term()).
+
+to_list(Q) ->
+ to_list([], out(Q)).
+to_list(L, {empty, _}) ->
+ lists:reverse(L);
+to_list(L, {{value, Value}, Q}) ->
+ to_list([Value | L], out(Q)).
+
+%%%------------------------------------------------------------------------
+%%% Private functions
+%%%------------------------------------------------------------------------
+
+create([]) ->
+ queue:new();
+
+create([I | Is]) ->
+ erlang:make_tuple(I + 1, create(Is)).
+
+in_queue({I1}, Value, Bins1) ->
+ erlang:setelement(I1, Bins1, queue:in(Value, erlang:element(I1, Bins1)));
+
+in_queue({I1, I2}, Value, Bins1) ->
+ Bins2 = erlang:element(I1, Bins1),
+ erlang:setelement(I1, Bins1,
+ erlang:setelement(I2, Bins2, queue:in(Value, erlang:element(I2, Bins2))));
+
+in_queue({I1, I2, I3}, Value, Bins1) ->
+ Bins2 = erlang:element(I1, Bins1),
+ Bins3 = erlang:element(I2, Bins2),
+ erlang:setelement(I1, Bins1,
+ erlang:setelement(I2, Bins2,
+ erlang:setelement(I3, Bins3, queue:in(Value, erlang:element(I3, Bins3)))));
+
+in_queue({I1, I2, I3, I4}, Value, Bins1) ->
+ Bins2 = erlang:element(I1, Bins1),
+ Bins3 = erlang:element(I2, Bins2),
+ Bins4 = erlang:element(I3, Bins3),
+ erlang:setelement(I1, Bins1,
+ erlang:setelement(I2, Bins2,
+ erlang:setelement(I3, Bins3,
+ erlang:setelement(I4, Bins4, queue:in(Value, erlang:element(I4, Bins4)))))).
+
+pout_check(Size, Size, _, {empty, Bins}) ->
+ {empty, empty, Bins};
+pout_check(I, _, Offset, {{value, Value}, Bins}) ->
+ {{value, Value, I - Offset}, I, Bins};
+pout_check(I, Size, Offset, {empty, Bins}) ->
+ NewI = I + 1,
+ pout_check(NewI, Size, Offset, out_queue(layer_indexes(Size, NewI), Bins)).
+
+out_check(Size, Size, {empty, Bins}) ->
+ {empty, empty, Bins};
+out_check(I, _, {{value, _} = Result, Bins}) ->
+ {Result, I, Bins};
+out_check(I, Size, {empty, Bins}) ->
+ NewI = I + 1,
+ out_check(NewI, Size, out_queue(layer_indexes(Size, NewI), Bins)).
+
+out_queue({I1}, Bins1) ->
+ {Result, NewQueue} = queue:out(erlang:element(I1, Bins1)),
+ {Result,
+ erlang:setelement(I1, Bins1, NewQueue)};
+
+out_queue({I1, I2}, Bins1) ->
+ Bins2 = erlang:element(I1, Bins1),
+ {Result, NewQueue} = queue:out(erlang:element(I2, Bins2)),
+ {Result,
+ erlang:setelement(I1, Bins1,
+ erlang:setelement(I2, Bins2, NewQueue))};
+
+out_queue({I1, I2, I3}, Bins1) ->
+ Bins2 = erlang:element(I1, Bins1),
+ Bins3 = erlang:element(I2, Bins2),
+ {Result, NewQueue} = queue:out(erlang:element(I3, Bins3)),
+ {Result,
+ erlang:setelement(I1, Bins1,
+ erlang:setelement(I2, Bins2,
+ erlang:setelement(I3, Bins3, NewQueue)))};
+
+out_queue({I1, I2, I3, I4}, Bins1) ->
+ Bins2 = erlang:element(I1, Bins1),
+ Bins3 = erlang:element(I2, Bins2),
+ Bins4 = erlang:element(I3, Bins3),
+ {Result, NewQueue} = queue:out(erlang:element(I4, Bins4)),
+ {Result,
+ erlang:setelement(I1, Bins1,
+ erlang:setelement(I2, Bins2,
+ erlang:setelement(I3, Bins3,
+ erlang:setelement(I4, Bins4, NewQueue))))}.
+
+layer_indexes(Size, PriorityIndex) ->
+ if
+ Size =< 127 ->
+ {PriorityIndex + 1};
+ Size =< 255 ->
+ <<I1:4, I2:4>> = <<PriorityIndex:8>>,
+ {I1 + 1, I2 + 1};
+ Size =< 511 ->
+ <<I1:4, I2:5>> = <<PriorityIndex:9>>,
+ {I1 + 1, I2 + 1};
+ Size =< 1023 ->
+ <<I1:3, I2:3, I3:4>> = <<PriorityIndex:10>>,
+ {I1 + 1, I2 + 1, I3 + 1};
+ Size =< 2047 ->
+ <<I1:3, I2:4, I3:4>> = <<PriorityIndex:11>>,
+ {I1 + 1, I2 + 1, I3 + 1};
+ Size =< 4095 ->
+ <<I1:4, I2:4, I3:4>> = <<PriorityIndex:12>>,
+ {I1 + 1, I2 + 1, I3 + 1};
+ Size =< 8191 ->
+ <<I1:4, I2:4, I3:5>> = <<PriorityIndex:13>>,
+ {I1 + 1, I2 + 1, I3 + 1};
+ Size =< 16383 ->
+ <<I1:4, I2:5, I3:5>> = <<PriorityIndex:14>>,
+ {I1 + 1, I2 + 1, I3 + 1};
+ Size =< 32767 ->
+ <<I1:3, I2:4, I3:4, I4:4>> = <<PriorityIndex:15>>,
+ {I1 + 1, I2 + 1, I3 + 1, I4 + 1};
+ Size =< 65535 ->
+ <<I1:4, I2:4, I3:4, I4:4>> = <<PriorityIndex:16>>,
+ {I1 + 1, I2 + 1, I3 + 1, I4 + 1}
+ end.
+
+layer_sizes(Size) ->
+ if
+ Size =< 127 ->
+ <<I1:7>> = <<127:7>>,
+ [I1];
+ Size =< 255 ->
+ <<I1:4, I2:4>> = <<255:8>>,
+ [I1, I2];
+ Size =< 511 ->
+ <<I1:4, I2:5>> = <<511:9>>,
+ [I1, I2];
+ Size =< 1023 ->
+ <<I1:3, I2:3, I3:4>> = <<1023:10>>,
+ [I1, I2, I3];
+ Size =< 2047 ->
+ <<I1:3, I2:4, I3:4>> = <<2047:11>>,
+ [I1, I2, I3];
+ Size =< 4095 ->
+ <<I1:4, I2:4, I3:4>> = <<4095:12>>,
+ [I1, I2, I3];
+ Size =< 8191 ->
+ <<I1:4, I2:4, I3:5>> = <<8191:13>>,
+ [I1, I2, I3];
+ Size =< 16383 ->
+ <<I1:4, I2:5, I3:5>> = <<16383:14>>,
+ [I1, I2, I3];
+ Size =< 32767 ->
+ <<I1:3, I2:4, I3:4, I4:4>> = <<32767:15>>,
+ [I1, I2, I3, I4];
+ Size =< 65535 ->
+ <<I1:4, I2:4, I3:4, I4:4>> = <<65535:16>>,
+ [I1, I2, I3, I4]
+ end.
+
diff --git a/aoc2023/build/packages/pqueue/src/pqueue4.erl b/aoc2023/build/packages/pqueue/src/pqueue4.erl
new file mode 100644
index 0000000..30b188d
--- /dev/null
+++ b/aoc2023/build/packages/pqueue/src/pqueue4.erl
@@ -0,0 +1,11662 @@
+%-*-Mode:erlang;coding:utf-8;tab-width:4;c-basic-offset:4;indent-tabs-mode:()-*-
+% ex: set ft=erlang fenc=utf-8 sts=4 ts=4 sw=4 et nomod:
+%%%
+%%%------------------------------------------------------------------------
+%%% @doc
+%%% ==Static Priority Queue.==
+%%% This priority queue implementation depends on a static number of priorities
+%%% (-128 (high) to 128 (low)) so that tuple access times can be exploited for
+%%% quick in/out priority queue operations. This implementation was created to
+%%% avoid the slowness within the priority queue used by both RabbitMQ and Riak
+%%% (https://github.com/basho/riak_core/blob/master/src/priority_queue.erl).
+%%% @end
+%%%
+%%% MIT License
+%%%
+%%% Copyright (c) 2011-2020 Michael Truog <mjtruog at protonmail dot com>
+%%%
+%%% Permission is hereby granted, free of charge, to any person obtaining a
+%%% copy of this software and associated documentation files (the "Software"),
+%%% to deal in the Software without restriction, including without limitation
+%%% the rights to use, copy, modify, merge, publish, distribute, sublicense,
+%%% and/or sell copies of the Software, and to permit persons to whom the
+%%% Software is furnished to do so, subject to the following conditions:
+%%%
+%%% The above copyright notice and this permission notice shall be included in
+%%% all copies or substantial portions of the Software.
+%%%
+%%% THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+%%% IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+%%% FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+%%% AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+%%% LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+%%% FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+%%% DEALINGS IN THE SOFTWARE.
+%%%
+%%%
+%%% queue_remove_unique/2 is based on queue:filter/2
+%%% which is under the Apache License 2.0:
+%%%
+%%% Copyright Ericsson AB 1996-2016. All Rights Reserved.
+%%%
+%%% Licensed under the Apache License, Version 2.0 (the "License");
+%%% you may not use this file except in compliance with the License.
+%%% You may obtain a copy of the License at
+%%%
+%%% http://www.apache.org/licenses/LICENSE-2.0
+%%%
+%%% Unless required by applicable law or agreed to in writing, software
+%%% distributed under the License is distributed on an "AS IS" BASIS,
+%%% WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+%%% See the License for the specific language governing permissions and
+%%% limitations under the License.
+%%%
+%%% @author Michael Truog <mjtruog at protonmail dot com>
+%%% @copyright 2011-2020 Michael Truog
+%%% @version 2.0.1 {@date} {@time}
+%%%------------------------------------------------------------------------
+
+-module(pqueue4).
+-author('mjtruog at protonmail dot com').
+
+%% external interface
+-export([filter/2, % O(N)
+ filter/3, % O(N)
+ in/2, % O(1)
+ in/3, % O(1)
+ is_empty/1, % O(1)
+ is_queue/1, % O(1)
+ len/1, % O(1)
+ new/0, % O(1)
+ out/1, % O(1) amortized, O(N) worst case
+ out/2, % O(1) amortized, O(N) worst case
+ pout/1, % O(1) amortized, O(N) worst case
+ remove_unique/2, % O(N) but smaller constant than filter/2
+ remove_unique/3, % O(N) but smaller constant than filter/3
+ to_list/1, % O(N)
+ to_plist/1, % O(N)
+ test/0]).
+
+%%%------------------------------------------------------------------------
+%%% External interface functions
+%%%------------------------------------------------------------------------
+
+-type priority() :: -128..128.
+-ifdef(ERLANG_OTP_VERSION_16).
+-type pqueue4(_) ::
+ {priority() | 'empty', % current priority
+ non_neg_integer(), % total size
+ {queue(), queue(), queue(), queue(), queue(), queue(), queue(), queue(),
+ queue(), queue(), queue(), queue(), queue(), queue(), queue(), queue()},
+ {queue(), queue(), queue(), queue(), queue(), queue(), queue(), queue(),
+ queue(), queue(), queue(), queue(), queue(), queue(), queue(), queue()},
+ {queue(), queue(), queue(), queue(), queue(), queue(), queue(), queue(),
+ queue(), queue(), queue(), queue(), queue(), queue(), queue(), queue()},
+ {queue(), queue(), queue(), queue(), queue(), queue(), queue(), queue(),
+ queue(), queue(), queue(), queue(), queue(), queue(), queue(), queue()},
+ {queue(), queue(), queue(), queue(), queue(), queue(), queue(), queue(),
+ queue(), queue(), queue(), queue(), queue(), queue(), queue(), queue()},
+ {queue(), queue(), queue(), queue(), queue(), queue(), queue(), queue(),
+ queue(), queue(), queue(), queue(), queue(), queue(), queue(), queue()},
+ {queue(), queue(), queue(), queue(), queue(), queue(), queue(), queue(),
+ queue(), queue(), queue(), queue(), queue(), queue(), queue(), queue()},
+ {queue(), queue(), queue(), queue(), queue(), queue(), queue(), queue(),
+ queue(), queue(), queue(), queue(), queue(), queue(), queue(), queue()},
+ queue(),
+ {queue(), queue(), queue(), queue(), queue(), queue(), queue(), queue(),
+ queue(), queue(), queue(), queue(), queue(), queue(), queue(), queue()},
+ {queue(), queue(), queue(), queue(), queue(), queue(), queue(), queue(),
+ queue(), queue(), queue(), queue(), queue(), queue(), queue(), queue()},
+ {queue(), queue(), queue(), queue(), queue(), queue(), queue(), queue(),
+ queue(), queue(), queue(), queue(), queue(), queue(), queue(), queue()},
+ {queue(), queue(), queue(), queue(), queue(), queue(), queue(), queue(),
+ queue(), queue(), queue(), queue(), queue(), queue(), queue(), queue()},
+ {queue(), queue(), queue(), queue(), queue(), queue(), queue(), queue(),
+ queue(), queue(), queue(), queue(), queue(), queue(), queue(), queue()},
+ {queue(), queue(), queue(), queue(), queue(), queue(), queue(), queue(),
+ queue(), queue(), queue(), queue(), queue(), queue(), queue(), queue()},
+ {queue(), queue(), queue(), queue(), queue(), queue(), queue(), queue(),
+ queue(), queue(), queue(), queue(), queue(), queue(), queue(), queue()},
+ {queue(), queue(), queue(), queue(), queue(), queue(), queue(), queue(),
+ queue(), queue(), queue(), queue(), queue(), queue(), queue(), queue()}}.
+-else.
+-type pqueue4(T) ::
+ {priority() | 'empty', % current priority
+ non_neg_integer(), % total size
+ {queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T),
+ queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T),
+ queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T),
+ queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T)},
+ {queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T),
+ queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T),
+ queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T),
+ queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T)},
+ {queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T),
+ queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T),
+ queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T),
+ queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T)},
+ {queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T),
+ queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T),
+ queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T),
+ queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T)},
+ {queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T),
+ queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T),
+ queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T),
+ queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T)},
+ {queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T),
+ queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T),
+ queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T),
+ queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T)},
+ {queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T),
+ queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T),
+ queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T),
+ queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T)},
+ {queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T),
+ queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T),
+ queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T),
+ queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T)},
+ queue:queue(T),
+ {queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T),
+ queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T),
+ queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T),
+ queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T)},
+ {queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T),
+ queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T),
+ queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T),
+ queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T)},
+ {queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T),
+ queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T),
+ queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T),
+ queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T)},
+ {queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T),
+ queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T),
+ queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T),
+ queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T)},
+ {queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T),
+ queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T),
+ queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T),
+ queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T)},
+ {queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T),
+ queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T),
+ queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T),
+ queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T)},
+ {queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T),
+ queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T),
+ queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T),
+ queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T)},
+ {queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T),
+ queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T),
+ queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T),
+ queue:queue(T), queue:queue(T), queue:queue(T), queue:queue(T)}}.
+-endif.
+-type pqueue4() :: pqueue4(any()).
+-export_type([pqueue4/0, pqueue4/1]).
+
+%%-------------------------------------------------------------------------
+%% @doc
+%% ===Filter the priority queue.===
+%% O(N)
+%% @end
+%%-------------------------------------------------------------------------
+
+-spec filter(fun((any()) -> boolean()), pqueue4()) -> pqueue4().
+
+filter(F, {empty, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _} = Q)
+ when is_function(F, 1) ->
+ Q;
+filter(F, {Pc, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _} = Q)
+ when is_function(F, 1) ->
+ filter_all(Pc, F, Q).
+
+filter_all(_, _, {_, 0, _, _, _, _, _, _, _, _,
+ _, _, _, _, _, _, _, _, _} = Q) ->
+ Q;
+filter_all(128, F, Q) ->
+ filter_priority(128, F, Q);
+filter_all(P, F, Q) when is_integer(P) ->
+ filter_all(P + 1, F, filter_priority(P, F, Q)).
+
+%%-------------------------------------------------------------------------
+%% @doc
+%% ===Filter a specific priority within the priority queue.===
+%% O(N)
+%% @end
+%%-------------------------------------------------------------------------
+
+-spec filter(fun((any()) -> boolean()), integer(), pqueue4()) -> pqueue4().
+
+filter(_, P, _)
+ when P < -128; P > 128 ->
+ erlang:exit(badarg);
+filter(F, P, Q) when is_function(F, 1) ->
+ filter_priority(P, F, Q).
+
+%%-------------------------------------------------------------------------
+%% @doc
+%% ===Append an item to the tail of the 0 priority queue.===
+%% O(1)
+%% @end
+%%-------------------------------------------------------------------------
+
+-spec in(any(), pqueue4()) -> pqueue4().
+
+in(X, Q) ->
+ in(X, 0, Q).
+
+%%-------------------------------------------------------------------------
+%% @doc
+%% ===Append an item to the tail of a specific priority queue.===
+%% O(1)
+%% @end
+%%-------------------------------------------------------------------------
+
+-spec in(any(), integer(), pqueue4()) -> pqueue4().
+
+in(_, P, _)
+ when P < -128; P > 128 ->
+ erlang:exit(badarg);
+in(X, P, {empty, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _} = Q) ->
+ in_higher(P, Q, X); % (in a higher priority)
+in(X, P, {Pc, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _} = Q)
+ when P < Pc ->
+ in_higher(P, Q, X); % (in a higher priority)
+in(X, P, Q) ->
+ in_lower(P, Q, X). % (in a lower priority)
+
+%%-------------------------------------------------------------------------
+%% @doc
+%% ===Check if the priority queue is empty.===
+%% O(1)
+%% @end
+%%-------------------------------------------------------------------------
+
+-spec is_empty(pqueue4()) -> 'true' | 'false'.
+
+is_empty({_, 0, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _}) ->
+ true;
+is_empty({_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _}) ->
+ false.
+
+%%-------------------------------------------------------------------------
+%% @doc
+%% ===Check if the priority queue type is as expected.===
+%% O(1)
+%% @end
+%%-------------------------------------------------------------------------
+
+-spec is_queue(pqueue4()) -> 'true' | 'false'.
+
+is_queue({Pc,
+ Size,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128})
+ when is_integer(Size),
+ tuple_size(Qn128) == 16, tuple_size(Qn112) == 16,
+ tuple_size(Qn96) == 16, tuple_size(Qn80) == 16,
+ tuple_size(Qn64) == 16, tuple_size(Qn48) == 16,
+ tuple_size(Qn32) == 16, tuple_size(Qn16) == 16,
+ tuple_size(Qp16) == 16, tuple_size(Qp32) == 16,
+ tuple_size(Qp48) == 16, tuple_size(Qp64) == 16,
+ tuple_size(Qp80) == 16, tuple_size(Qp96) == 16,
+ tuple_size(Qp112) == 16, tuple_size(Qp128) == 16 ->
+ (((Pc =:= empty) or is_integer(Pc)) and queue:is_queue(Q0));
+is_queue(_) ->
+ false.
+
+%%-------------------------------------------------------------------------
+%% @doc
+%% ===Determine the length of a priority queue.===
+%% O(1)
+%% @end
+%%-------------------------------------------------------------------------
+
+-spec len(pqueue4()) -> non_neg_integer().
+
+len({_, Size, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _}) ->
+ Size.
+
+%%-------------------------------------------------------------------------
+%% @doc
+%% ===Create a new priority queue.===
+%% O(1)
+%% @end
+%%-------------------------------------------------------------------------
+
+-spec new() -> pqueue4().
+
+new() ->
+ {empty, % current priority
+ 0, % current size
+ erlang:make_tuple(16, queue:new()), % priority [-128..-113]
+ erlang:make_tuple(16, queue:new()), % priority [-112.. -97]
+ erlang:make_tuple(16, queue:new()), % priority [ -96.. -81]
+ erlang:make_tuple(16, queue:new()), % priority [ -80.. -65]
+ erlang:make_tuple(16, queue:new()), % priority [ -64.. -49]
+ erlang:make_tuple(16, queue:new()), % priority [ -48.. -33]
+ erlang:make_tuple(16, queue:new()), % priority [ -32.. -17]
+ erlang:make_tuple(16, queue:new()), % priority [ -16.. -1]
+ queue:new(), % priority 0 (default)
+ erlang:make_tuple(16, queue:new()), % priority [ 1.. 16]
+ erlang:make_tuple(16, queue:new()), % priority [ 17.. 32]
+ erlang:make_tuple(16, queue:new()), % priority [ 33.. 48]
+ erlang:make_tuple(16, queue:new()), % priority [ 49.. 64]
+ erlang:make_tuple(16, queue:new()), % priority [ 65.. 80]
+ erlang:make_tuple(16, queue:new()), % priority [ 81.. 96]
+ erlang:make_tuple(16, queue:new()), % priority [ 97.. 112]
+ erlang:make_tuple(16, queue:new())}. % priority [ 113.. 128]
+
+%%-------------------------------------------------------------------------
+%% @doc
+%% ===Take an item from the head of the priority queue.===
+%% O(1) amortized, O(N) worst case
+%% @end
+%%-------------------------------------------------------------------------
+
+-spec out(pqueue4()) ->
+ {{'value', any()}, pqueue4()} | {'empty', pqueue4()}.
+
+out({empty, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _} = Q) ->
+ {empty, Q};
+out({Pc, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _} = Q) ->
+ out_current(Pc, Q).
+
+%%-------------------------------------------------------------------------
+%% @doc
+%% ===Take an item of a specific priority from the head of the queue.===
+%% O(1) amortized, O(N) worst case
+%% @end
+%%-------------------------------------------------------------------------
+
+-spec out(integer(), pqueue4()) ->
+ {{'value', any()}, pqueue4()} | {'empty', pqueue4()}.
+
+out(P, _)
+ when P < -128; P > 128 ->
+ erlang:exit(badarg);
+out(_, {empty, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _} = Q) ->
+ {empty, Q};
+out(P, Q) ->
+ out_specific(P, Q).
+
+%%-------------------------------------------------------------------------
+%% @doc
+%% ===Take an item from the head of the priority queue.===
+%% Includes the priority in the return value.
+%% O(1) amortized, O(N) worst case
+%% @end
+%%-------------------------------------------------------------------------
+
+-spec pout(pqueue4()) ->
+ {{'value', any(), integer()}, pqueue4()} | {'empty', pqueue4()}.
+
+pout({empty, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _} = Q) ->
+ {empty, Q};
+pout({Pc, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _} = Q) ->
+ out_current_p(Pc, Q).
+
+%%-------------------------------------------------------------------------
+%% @doc
+%% ===Remove a unique value from the priority queue with a binary predicate.===
+%% O(N) but smaller constant than filter/2
+%% @end
+%%-------------------------------------------------------------------------
+
+-spec remove_unique(fun((any()) -> boolean()), pqueue4()) ->
+ {boolean(), pqueue4()}.
+
+remove_unique(F, {_, 0, _, _, _, _, _, _, _, _,
+ _, _, _, _, _, _, _, _, _} = Q)
+ when is_function(F, 1) ->
+ {false, Q};
+remove_unique(F, {Pc, _, _, _, _, _, _, _, _, _,
+ _, _, _, _, _, _, _, _, _} = Q)
+ when is_function(F, 1) ->
+ remove_unique_all(Pc, F, Q).
+
+remove_unique_all(128, F, Q) ->
+ remove_unique_p(128, F, Q);
+remove_unique_all(P, F, Q) when is_integer(P) ->
+ case remove_unique_p(P, F, Q) of
+ {true, _} = Result ->
+ Result;
+ {false, Q} ->
+ remove_unique_all(P + 1, F, Q)
+ end.
+
+%%-------------------------------------------------------------------------
+%% @doc
+%% ===Remove a unique value in a specific priority within the priority queue with a binary predicate.===
+%% O(N) but smaller constant than filter/3
+%% @end
+%%-------------------------------------------------------------------------
+
+-spec remove_unique(fun((any()) -> boolean()), integer(), pqueue4()) ->
+ {boolean(), pqueue4()}.
+
+remove_unique(_, P, _)
+ when P < -128; P > 128 ->
+ erlang:exit(badarg);
+remove_unique(F, P, Q) when is_function(F, 1) ->
+ remove_unique_p(P, F, Q).
+
+%%-------------------------------------------------------------------------
+%% @doc
+%% ===Convert the priority queue to a list.===
+%% O(N)
+%% @end
+%%-------------------------------------------------------------------------
+
+-spec to_list(pqueue4()) -> list().
+
+to_list(Q) ->
+ to_list([], out(Q)).
+to_list(L, {empty, _}) ->
+ lists:reverse(L);
+to_list(L, {{value, Value}, Q}) ->
+ to_list([Value | L], out(Q)).
+
+%%-------------------------------------------------------------------------
+%% @doc
+%% ===Convert the priority queue to a list with priorities.===
+%% O(N)
+%% @end
+%%-------------------------------------------------------------------------
+
+-spec to_plist(pqueue4()) -> list({priority(), list()}).
+
+to_plist(Q) ->
+ to_plist([], [], undefined, pout(Q)).
+to_plist(L, [], _, {empty, _}) ->
+ lists:reverse(L);
+to_plist(L, Lp, Pc, {empty, _}) ->
+ lists:reverse([{Pc, lists:reverse(Lp)} | L]);
+to_plist(L, Lp, Pc, {{value, Value, Pc}, Q}) ->
+ to_plist(L, [Value | Lp], Pc, pout(Q));
+to_plist(L, [], _, {{value, Value, Pc}, Q}) ->
+ to_plist(L, [Value], Pc, pout(Q));
+to_plist(L, Lp, P, {{value, Value, Pc}, Q}) ->
+ to_plist([{P, lists:reverse(Lp)} | L], [Value], Pc, pout(Q)).
+
+%%-------------------------------------------------------------------------
+%% @private
+%% @doc
+%% ===Regression test.===
+%% @end
+%%-------------------------------------------------------------------------
+
+test() ->
+ Q0 = pqueue4:new(),
+ true = pqueue4:is_queue(Q0),
+ Q1 = pqueue4:in(20, 20, Q0),
+ Q2 = pqueue4:in(19, 19, Q1),
+ Q3 = pqueue4:in(18, 18, Q2),
+ Q4 = pqueue4:in(17, 17, Q3),
+ Q5 = pqueue4:in(16, 16, Q4),
+ Q6 = pqueue4:in(15, 15, Q5),
+ Q7 = pqueue4:in(14, 14, Q6),
+ Q8 = pqueue4:in(13, 13, Q7),
+ Q9 = pqueue4:in(12, 12, Q8),
+ Q10 = pqueue4:in(11, 11, Q9),
+ Q11 = pqueue4:in(10, 10, Q10),
+ Q12 = pqueue4:in(9, 9, Q11),
+ Q13 = pqueue4:in(8, 8, Q12),
+ Q14 = pqueue4:in(7, 7, Q13),
+ Q15 = pqueue4:in(6, 6, Q14),
+ Q16 = pqueue4:in(5, 5, Q15),
+ Q17 = pqueue4:in(4, 4, Q16),
+ Q18 = pqueue4:in(3, 3, Q17),
+ Q19 = pqueue4:in(2, 2, Q18),
+ Q20 = pqueue4:in(1, 1, Q19),
+ Q21 = pqueue4:in(0, 0, Q20),
+ Q22 = pqueue4:in(-1, -1, Q21),
+ Q23 = pqueue4:in(-2, -2, Q22),
+ Q24 = pqueue4:in(-3, -3, Q23),
+ Q25 = pqueue4:in(-4, -4, Q24),
+ Q26 = pqueue4:in(-5, -5, Q25),
+ Q27 = pqueue4:in(-6, -6, Q26),
+ Q28 = pqueue4:in(-7, -7, Q27),
+ Q29 = pqueue4:in(-8, -8, Q28),
+ Q30 = pqueue4:in(-9, -9, Q29),
+ Q31 = pqueue4:in(-10, -10, Q30),
+ Q32 = pqueue4:in(-11, -11, Q31),
+ Q33 = pqueue4:in(-12, -12, Q32),
+ Q34 = pqueue4:in(-13, -13, Q33),
+ Q35 = pqueue4:in(-14, -14, Q34),
+ Q36 = pqueue4:in(-15, -15, Q35),
+ Q37 = pqueue4:in(-16, -16, Q36),
+ Q38 = pqueue4:in(-17, -17, Q37),
+ Q39 = pqueue4:in(-18, -18, Q38),
+ Q40 = pqueue4:in(-19, -19, Q39),
+ Q41 = pqueue4:in(-20, -20, Q40),
+ Q42 = pqueue4:in(-20, -20, Q41),
+ Q43 = pqueue4:in(-19, -19, Q42),
+ Q44 = pqueue4:in(-18, -18, Q43),
+ Q45 = pqueue4:in(-17, -17, Q44),
+ Q46 = pqueue4:in(-16, -16, Q45),
+ Q47 = pqueue4:in(-15, -15, Q46),
+ Q48 = pqueue4:in(-14, -14, Q47),
+ Q49 = pqueue4:in(-13, -13, Q48),
+ Q50 = pqueue4:in(-12, -12, Q49),
+ Q51 = pqueue4:in(-11, -11, Q50),
+ Q52 = pqueue4:in(-10, -10, Q51),
+ Q53 = pqueue4:in(-9, -9, Q52),
+ Q54 = pqueue4:in(-8, -8, Q53),
+ Q55 = pqueue4:in(-7, -7, Q54),
+ Q56 = pqueue4:in(-6, -6, Q55),
+ Q57 = pqueue4:in(-5, -5, Q56),
+ Q58 = pqueue4:in(-4, -4, Q57),
+ Q59 = pqueue4:in(-3, -3, Q58),
+ Q60 = pqueue4:in(-2, -2, Q59),
+ Q61 = pqueue4:in(-1, -1, Q60),
+ Q62 = pqueue4:in(0, 0, Q61),
+ Q63 = pqueue4:in(1, 1, Q62),
+ Q64 = pqueue4:in(2, 2, Q63),
+ Q65 = pqueue4:in(3, 3, Q64),
+ Q66 = pqueue4:in(4, 4, Q65),
+ Q67 = pqueue4:in(5, 5, Q66),
+ Q68 = pqueue4:in(6, 6, Q67),
+ Q69 = pqueue4:in(7, 7, Q68),
+ Q70 = pqueue4:in(8, 8, Q69),
+ Q71 = pqueue4:in(9, 9, Q70),
+ Q72 = pqueue4:in(10, 10, Q71),
+ Q73 = pqueue4:in(11, 11, Q72),
+ Q74 = pqueue4:in(12, 12, Q73),
+ Q75 = pqueue4:in(13, 13, Q74),
+ Q76 = pqueue4:in(14, 14, Q75),
+ Q77 = pqueue4:in(15, 15, Q76),
+ Q78 = pqueue4:in(16, 16, Q77),
+ Q79 = pqueue4:in(17, 17, Q78),
+ Q80 = pqueue4:in(18, 18, Q79),
+ Q81 = pqueue4:in(19, 19, Q80),
+ Q82 = pqueue4:in(20, 20, Q81),
+ true = pqueue4:is_queue(Q82),
+ 82 = pqueue4:len(Q82),
+ [-20, -20, -19, -19, -18, -18, -17, -17, -16, -16, -15, -15, -14, -14,
+ -13, -13, -12, -12, -11, -11, -10, -10, -9, -9, -8, -8, -7, -7, -6, -6,
+ -5, -5, -4, -4, -3, -3, -2, -2, -1, -1, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4,
+ 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14, 14,
+ 15, 15, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20] = pqueue4:to_list(Q82),
+ [{-20, [-20, -20]}, {-19, [-19, -19]}, {-18, [-18, -18]},
+ {-17, [-17, -17]}, {-16, [-16, -16]}, {-15, [-15, -15]},
+ {-14, [-14, -14]}, {-13, [-13, -13]}, {-12, [-12, -12]},
+ {-11, [-11, -11]}, {-10, [-10, -10]}, {-9, [-9, -9]},
+ {-8, [-8, -8]}, {-7, [-7, -7]}, {-6, [-6, -6]},
+ {-5, [-5, -5]}, {-4, [-4, -4]}, {-3, [-3, -3]},
+ {-2, [-2, -2]}, {-1, [-1, -1]}, {0, [0, 0]},
+ {1, [1, 1]}, {2, [2, 2]}, {3, [3, 3]},
+ {4, [4, 4]}, {5, [5, 5]}, {6, [6, 6]},
+ {7, [7, 7]}, {8, [8, 8]}, {9, [9, 9]},
+ {10, [10, 10]}, {11, [11, 11]}, {12, [12, 12]},
+ {13, [13, 13]}, {14, [14, 14]}, {15, [15, 15]},
+ {16, [16, 16]}, {17, [17, 17]}, {18, [18, 18]},
+ {19, [19, 19]}, {20, [20, 20]}] = pqueue4:to_plist(Q82),
+ {{value, -20}, Q83} = pqueue4:out(Q82),
+ {{value, -20}, Q84} = pqueue4:out(Q83),
+ {{value, -19}, Q85} = pqueue4:out(Q84),
+ {{value, -19}, Q86} = pqueue4:out(Q85),
+ {{value, -18}, Q87} = pqueue4:out(Q86),
+ {{value, -18}, Q88} = pqueue4:out(Q87),
+ {{value, 0}, Q89} = pqueue4:out(0, Q88),
+ {{value, 0}, Q90} = pqueue4:out(0, Q89),
+ {empty, _} = pqueue4:out(0, Q90),
+ {{value, -17, -17}, Q91} = pqueue4:pout(Q90),
+ {{value, -17, -17}, Q92} = pqueue4:pout(Q91),
+ {{value, -16, -16}, Q93} = pqueue4:pout(Q92),
+ {{value, -16, -16}, Q94} = pqueue4:pout(Q93),
+ {{value, -15, -15}, Q95} = pqueue4:pout(Q94),
+ {{value, -15, -15}, Q96} = pqueue4:pout(Q95),
+ {{value, -14, -14}, Q97} = pqueue4:pout(Q96),
+ {{value, -14, -14}, Q98} = pqueue4:pout(Q97),
+ {{value, -13, -13}, Q99} = pqueue4:pout(Q98),
+ {{value, -13, -13}, Q100} = pqueue4:pout(Q99),
+ {{value, -12, -12}, Q101} = pqueue4:pout(Q100),
+ {{value, -12, -12}, Q102} = pqueue4:pout(Q101),
+ {{value, -11, -11}, Q103} = pqueue4:pout(Q102),
+ {{value, -11, -11}, Q104} = pqueue4:pout(Q103),
+ {{value, -10, -10}, Q105} = pqueue4:pout(Q104),
+ {{value, -10, -10}, Q106} = pqueue4:pout(Q105),
+ {{value, -9, -9}, Q107} = pqueue4:pout(Q106),
+ {{value, -9, -9}, Q108} = pqueue4:pout(Q107),
+ {{value, -8, -8}, Q109} = pqueue4:pout(Q108),
+ {{value, -8, -8}, Q110} = pqueue4:pout(Q109),
+ {{value, -7, -7}, Q111} = pqueue4:pout(Q110),
+ {{value, -7, -7}, Q112} = pqueue4:pout(Q111),
+ {{value, -6, -6}, Q113} = pqueue4:pout(Q112),
+ {{value, -6, -6}, Q114} = pqueue4:pout(Q113),
+ {{value, -5, -5}, Q115} = pqueue4:pout(Q114),
+ {{value, -5, -5}, Q116} = pqueue4:pout(Q115),
+ {{value, -4, -4}, Q117} = pqueue4:pout(Q116),
+ {{value, -4, -4}, Q118} = pqueue4:pout(Q117),
+ {{value, -3, -3}, Q119} = pqueue4:pout(Q118),
+ {{value, -3, -3}, Q120} = pqueue4:pout(Q119),
+ {{value, -2, -2}, Q121} = pqueue4:pout(Q120),
+ {{value, -2, -2}, Q122} = pqueue4:pout(Q121),
+ {{value, -1, -1}, Q123} = pqueue4:pout(Q122),
+ {{value, -1, -1}, Q124} = pqueue4:pout(Q123),
+ {{value, 1, 1}, Q125} = pqueue4:pout(Q124),
+ {{value, 1, 1}, Q126} = pqueue4:pout(Q125),
+ {{value, 2, 2}, Q127} = pqueue4:pout(Q126),
+ {{value, 2, 2}, Q128} = pqueue4:pout(Q127),
+ {{value, 3, 3}, Q129} = pqueue4:pout(Q128),
+ {{value, 3, 3}, Q130} = pqueue4:pout(Q129),
+ {{value, 4, 4}, Q131} = pqueue4:pout(Q130),
+ {{value, 4, 4}, Q132} = pqueue4:pout(Q131),
+ {{value, 5, 5}, Q133} = pqueue4:pout(Q132),
+ {{value, 5, 5}, Q134} = pqueue4:pout(Q133),
+ {{value, 6, 6}, Q135} = pqueue4:pout(Q134),
+ {{value, 6, 6}, Q136} = pqueue4:pout(Q135),
+ {{value, 7, 7}, Q137} = pqueue4:pout(Q136),
+ {{value, 7, 7}, Q138} = pqueue4:pout(Q137),
+ {{value, 8, 8}, Q139} = pqueue4:pout(Q138),
+ {{value, 8, 8}, Q140} = pqueue4:pout(Q139),
+ {{value, 9, 9}, Q141} = pqueue4:pout(Q140),
+ {{value, 9, 9}, Q142} = pqueue4:pout(Q141),
+ {{value, 10, 10}, Q143} = pqueue4:pout(Q142),
+ {{value, 10, 10}, Q144} = pqueue4:pout(Q143),
+ {{value, 11, 11}, Q145} = pqueue4:pout(Q144),
+ {{value, 11, 11}, Q146} = pqueue4:pout(Q145),
+ {{value, 12, 12}, Q147} = pqueue4:pout(Q146),
+ {{value, 12, 12}, Q148} = pqueue4:pout(Q147),
+ {{value, 13, 13}, Q149} = pqueue4:pout(Q148),
+ {{value, 13, 13}, Q150} = pqueue4:pout(Q149),
+ {{value, 14, 14}, Q151} = pqueue4:pout(Q150),
+ {{value, 14, 14}, Q152} = pqueue4:pout(Q151),
+ {{value, 15, 15}, Q153} = pqueue4:pout(Q152),
+ {{value, 15, 15}, Q154} = pqueue4:pout(Q153),
+ {{value, 16, 16}, Q155} = pqueue4:pout(Q154),
+ {{value, 16, 16}, Q156} = pqueue4:pout(Q155),
+ {{value, 17, 17}, Q157} = pqueue4:pout(Q156),
+ {{value, 17, 17}, Q158} = pqueue4:pout(Q157),
+ {{value, 18, 18}, Q159} = pqueue4:pout(Q158),
+ {{value, 18, 18}, Q160} = pqueue4:pout(Q159),
+ {{value, 19, 19}, Q161} = pqueue4:pout(Q160),
+ {{value, 19, 19}, Q162} = pqueue4:pout(Q161),
+ {{value, 20, 20}, Q163} = pqueue4:pout(Q162),
+ {{value, 20, 20}, Q164} = pqueue4:pout(Q163),
+ {{value, 20}, Q164} = pqueue4:out(Q163),
+ {{value, 20}, Q164} = pqueue4:out(20, Q163),
+ true = pqueue4:is_empty(Q164),
+ empty = erlang:element(1, Q164), % current priority
+ 0 = erlang:element(2, Q164), % size
+ {empty, Q164} = pqueue4:pout(Q164),
+ {empty, Q164} = pqueue4:out(Q164),
+ {empty, Q164} = pqueue4:out(20, Q164),
+
+ Queue0 = queue:new(),
+ "{[],[]}" = lists:flatten(io_lib:format("~p", [Queue0])),
+ Queue1 = queue:in(1, Queue0),
+ Queue2 = queue:in(2, Queue1),
+ Queue3 = queue:in(3, Queue2),
+ {{value, 1}, _} = queue:out(Queue2),
+ "{[3,2],[1]}" = lists:flatten(io_lib:format("~p", [Queue3])),
+ {true, {[3],[1]}} = queue_remove_unique(fun(I) -> I == 2 end, {[3,2],[1]}),
+ Queue4 = queue:filter(fun(I) -> not (I == 2) end, Queue3),
+ "{[3],[1]}" = lists:flatten(io_lib:format("~p", [Queue4])),
+ 2 = queue:len(Queue4),
+ {{value, 1}, _} = queue:out(Queue4),
+ [1, 3] = queue:to_list(Queue4),
+
+ Q166 = pqueue4:new(),
+ true = pqueue4:is_queue(Q166),
+ Q167 = pqueue4:in(6, 1, Q166),
+ Q168 = pqueue4:in(7, 1, Q167),
+ Q169 = pqueue4:in(8, 1, Q168),
+ Q170 = pqueue4:in(3, 0, Q169),
+ Q171 = pqueue4:in(4, 0, Q170),
+ Q172 = pqueue4:in(5, 0, Q171),
+ Q173 = pqueue4:in(0, -1, Q172),
+ Q174 = pqueue4:in(1, -1, Q173),
+ Q175 = pqueue4:in(2, -1, Q174),
+ [{-1, [0, 1, 2]}, {0, [3, 4, 5]}, {1, [6, 7, 8]}] = pqueue4:to_plist(Q175),
+ 3 = pqueue4:len(pqueue4:filter(fun(I) -> I > 5 end, Q175)),
+ 3 = pqueue4:len(pqueue4:filter(fun(I) -> I < 3 end, Q175)),
+ 3 = pqueue4:len(pqueue4:filter(fun(I) -> (I < 1) orelse (I > 6) end, Q175)),
+ {true, Q176} = pqueue4:remove_unique(fun(I) -> I == 4 end, Q175),
+ [{-1, [0, 1, 2]}, {0, [3, 5]}, {1, [6, 7, 8]}] = pqueue4:to_plist(Q176),
+ {true, Q177} = pqueue4:remove_unique(fun(I) -> I == 1 end, Q176),
+ [{-1, [0, 2]}, {0, [3, 5]}, {1, [6, 7, 8]}] = pqueue4:to_plist(Q177),
+ {true, Q178} = pqueue4:remove_unique(fun(I) -> I == 7 end, Q177),
+ [{-1, [0, 2]}, {0, [3, 5]}, {1, [6, 8]}] = pqueue4:to_plist(Q178),
+ 6 = pqueue4:len(Q178),
+ {{value, 0, -1}, Q179} = pqueue4:pout(Q178),
+ {{value, 2}, Q180} = pqueue4:out(Q179),
+ {{value, 6}, Q181} = pqueue4:out(1, Q180),
+ {false, Q181} = pqueue4:remove_unique(fun(I) -> I == 7 end, Q181),
+ [{0, [3, 5]}, {1, [8]}] = pqueue4:to_plist(Q181),
+ {true, Q182} = pqueue4:remove_unique(fun(I) -> I == 5 end, Q181),
+ {true, Q183} = pqueue4:remove_unique(fun(I) -> I == 8 end, 1, Q182),
+ {true, Q184} = pqueue4:remove_unique(fun(I) -> I == 3 end, Q183),
+ {empty, Q184} = pqueue4:pout(Q184),
+ {empty, Q184} = pqueue4:out(Q184),
+ {empty, Q184} = pqueue4:out(0, Q184),
+ ok.
+
+%%%------------------------------------------------------------------------
+%%% Private functions
+%%%------------------------------------------------------------------------
+
+%% @hidden
+-define(FILTER_P_Qn128(P, V1, V2, V3),
+filter_priority(P, F,
+ {Pc,
+ Size,
+ {Qn128, Qn127, Qn126, Qn125, Qn124, Qn123, Qn122, Qn121,
+ Qn120, Qn119, Qn118, Qn117, Qn116, Qn115, Qn114, Qn113},
+ Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}) ->
+ V2 = queue:filter(F, V1),
+ NewSize = Size - (queue:len(V1) - queue:len(V2)),
+ {if NewSize == 0 -> empty; true -> Pc end,
+ NewSize,
+ V3,
+ Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}).
+-define(FILTER_P_Qn112(P, V1, V2, V3),
+filter_priority(P, F,
+ {Pc,
+ Size,
+ Qn128,
+ {Qn112, Qn111, Qn110, Qn109, Qn108, Qn107, Qn106, Qn105,
+ Qn104, Qn103, Qn102, Qn101, Qn100, Qn99, Qn98, Qn97},
+ Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}) ->
+ V2 = queue:filter(F, V1),
+ NewSize = Size - (queue:len(V1) - queue:len(V2)),
+ {if NewSize == 0 -> empty; true -> Pc end,
+ NewSize,
+ Qn128,
+ V3,
+ Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}).
+-define(FILTER_P_Qn96(P, V1, V2, V3),
+filter_priority(P, F,
+ {Pc,
+ Size,
+ Qn128, Qn112,
+ {Qn96, Qn95, Qn94, Qn93, Qn92, Qn91, Qn90, Qn89,
+ Qn88, Qn87, Qn86, Qn85, Qn84, Qn83, Qn82, Qn81},
+ Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}) ->
+ V2 = queue:filter(F, V1),
+ NewSize = Size - (queue:len(V1) - queue:len(V2)),
+ {if NewSize == 0 -> empty; true -> Pc end,
+ NewSize,
+ Qn128, Qn112,
+ V3,
+ Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}).
+-define(FILTER_P_Qn80(P, V1, V2, V3),
+filter_priority(P, F,
+ {Pc,
+ Size,
+ Qn128, Qn112, Qn96,
+ {Qn80, Qn79, Qn78, Qn77, Qn76, Qn75, Qn74, Qn73,
+ Qn72, Qn71, Qn70, Qn69, Qn68, Qn67, Qn66, Qn65},
+ Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}) ->
+ V2 = queue:filter(F, V1),
+ NewSize = Size - (queue:len(V1) - queue:len(V2)),
+ {if NewSize == 0 -> empty; true -> Pc end,
+ NewSize,
+ Qn128, Qn112, Qn96,
+ V3,
+ Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}).
+-define(FILTER_P_Qn64(P, V1, V2, V3),
+filter_priority(P, F,
+ {Pc,
+ Size,
+ Qn128, Qn112, Qn96, Qn80,
+ {Qn64, Qn63, Qn62, Qn61, Qn60, Qn59, Qn58, Qn57,
+ Qn56, Qn55, Qn54, Qn53, Qn52, Qn51, Qn50, Qn49},
+ Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}) ->
+ V2 = queue:filter(F, V1),
+ NewSize = Size - (queue:len(V1) - queue:len(V2)),
+ {if NewSize == 0 -> empty; true -> Pc end,
+ NewSize,
+ Qn128, Qn112, Qn96, Qn80,
+ V3,
+ Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}).
+-define(FILTER_P_Qn48(P, V1, V2, V3),
+filter_priority(P, F,
+ {Pc,
+ Size,
+ Qn128, Qn112, Qn96, Qn80, Qn64,
+ {Qn48, Qn47, Qn46, Qn45, Qn44, Qn43, Qn42, Qn41,
+ Qn40, Qn39, Qn38, Qn37, Qn36, Qn35, Qn34, Qn33},
+ Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}) ->
+ V2 = queue:filter(F, V1),
+ NewSize = Size - (queue:len(V1) - queue:len(V2)),
+ {if NewSize == 0 -> empty; true -> Pc end,
+ NewSize,
+ Qn128, Qn112, Qn96, Qn80, Qn64,
+ V3,
+ Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}).
+-define(FILTER_P_Qn32(P, V1, V2, V3),
+filter_priority(P, F,
+ {Pc,
+ Size,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48,
+ {Qn32, Qn31, Qn30, Qn29, Qn28, Qn27, Qn26, Qn25,
+ Qn24, Qn23, Qn22, Qn21, Qn20, Qn19, Qn18, Qn17},
+ Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}) ->
+ V2 = queue:filter(F, V1),
+ NewSize = Size - (queue:len(V1) - queue:len(V2)),
+ {if NewSize == 0 -> empty; true -> Pc end,
+ NewSize,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48,
+ V3,
+ Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}).
+-define(FILTER_P_Qn16(P, V1, V2, V3),
+filter_priority(P, F,
+ {Pc,
+ Size,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32,
+ {Qn16, Qn15, Qn14, Qn13, Qn12, Qn11, Qn10, Qn9,
+ Qn8, Qn7, Qn6, Qn5, Qn4, Qn3, Qn2, Qn1},
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}) ->
+ V2 = queue:filter(F, V1),
+ NewSize = Size - (queue:len(V1) - queue:len(V2)),
+ {if NewSize == 0 -> empty; true -> Pc end,
+ NewSize,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32,
+ V3,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}).
+-define(FILTER_P_Qp16(P, V1, V2, V3),
+filter_priority(P, F,
+ {Pc,
+ Size,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ {Qp1, Qp2, Qp3, Qp4, Qp5, Qp6, Qp7, Qp8,
+ Qp9, Qp10, Qp11, Qp12, Qp13, Qp14, Qp15, Qp16},
+ Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}) ->
+ V2 = queue:filter(F, V1),
+ NewSize = Size - (queue:len(V1) - queue:len(V2)),
+ {if NewSize == 0 -> empty; true -> Pc end,
+ NewSize,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ V3,
+ Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}).
+-define(FILTER_P_Qp32(P, V1, V2, V3),
+filter_priority(P, F,
+ {Pc,
+ Size,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16,
+ {Qp17, Qp18, Qp19, Qp20, Qp21, Qp22, Qp23, Qp24,
+ Qp25, Qp26, Qp27, Qp28, Qp29, Qp30, Qp31, Qp32},
+ Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}) ->
+ V2 = queue:filter(F, V1),
+ NewSize = Size - (queue:len(V1) - queue:len(V2)),
+ {if NewSize == 0 -> empty; true -> Pc end,
+ NewSize,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16,
+ V3,
+ Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}).
+-define(FILTER_P_Qp48(P, V1, V2, V3),
+filter_priority(P, F,
+ {Pc,
+ Size,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32,
+ {Qp33, Qp34, Qp35, Qp36, Qp37, Qp38, Qp39, Qp40,
+ Qp41, Qp42, Qp43, Qp44, Qp45, Qp46, Qp47, Qp48},
+ Qp64, Qp80, Qp96, Qp112, Qp128}) ->
+ V2 = queue:filter(F, V1),
+ NewSize = Size - (queue:len(V1) - queue:len(V2)),
+ {if NewSize == 0 -> empty; true -> Pc end,
+ NewSize,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32,
+ V3,
+ Qp64, Qp80, Qp96, Qp112, Qp128}).
+-define(FILTER_P_Qp64(P, V1, V2, V3),
+filter_priority(P, F,
+ {Pc,
+ Size,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48,
+ {Qp49, Qp50, Qp51, Qp52, Qp53, Qp54, Qp55, Qp56,
+ Qp57, Qp58, Qp59, Qp60, Qp61, Qp62, Qp63, Qp64},
+ Qp80, Qp96, Qp112, Qp128}) ->
+ V2 = queue:filter(F, V1),
+ NewSize = Size - (queue:len(V1) - queue:len(V2)),
+ {if NewSize == 0 -> empty; true -> Pc end,
+ NewSize,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48,
+ V3,
+ Qp80, Qp96, Qp112, Qp128}).
+-define(FILTER_P_Qp80(P, V1, V2, V3),
+filter_priority(P, F,
+ {Pc,
+ Size,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64,
+ {Qp65, Qp66, Qp67, Qp68, Qp69, Qp70, Qp71, Qp72,
+ Qp73, Qp74, Qp75, Qp76, Qp77, Qp78, Qp79, Qp80},
+ Qp96, Qp112, Qp128}) ->
+ V2 = queue:filter(F, V1),
+ NewSize = Size - (queue:len(V1) - queue:len(V2)),
+ {if NewSize == 0 -> empty; true -> Pc end,
+ NewSize,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64,
+ V3,
+ Qp96, Qp112, Qp128}).
+-define(FILTER_P_Qp96(P, V1, V2, V3),
+filter_priority(P, F,
+ {Pc,
+ Size,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80,
+ {Qp81, Qp82, Qp83, Qp84, Qp85, Qp86, Qp87, Qp88,
+ Qp89, Qp90, Qp91, Qp92, Qp93, Qp94, Qp95, Qp96},
+ Qp112, Qp128}) ->
+ V2 = queue:filter(F, V1),
+ NewSize = Size - (queue:len(V1) - queue:len(V2)),
+ {if NewSize == 0 -> empty; true -> Pc end,
+ NewSize,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80,
+ V3,
+ Qp112, Qp128}).
+-define(FILTER_P_Qp112(P, V1, V2, V3),
+filter_priority(P, F,
+ {Pc,
+ Size,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96,
+ {Qp97, Qp98, Qp99, Qp100, Qp101, Qp102, Qp103, Qp104,
+ Qp105, Qp106, Qp107, Qp108, Qp109, Qp110, Qp111, Qp112},
+ Qp128}) ->
+ V2 = queue:filter(F, V1),
+ NewSize = Size - (queue:len(V1) - queue:len(V2)),
+ {if NewSize == 0 -> empty; true -> Pc end,
+ NewSize,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96,
+ V3,
+ Qp128}).
+-define(FILTER_P_Qp128(P, V1, V2, V3),
+filter_priority(P, F,
+ {Pc,
+ Size,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112,
+ {Qp113, Qp114, Qp115, Qp116, Qp117, Qp118, Qp119, Qp120,
+ Qp121, Qp122, Qp123, Qp124, Qp125, Qp126, Qp127, Qp128}}) ->
+ V2 = queue:filter(F, V1),
+ NewSize = Size - (queue:len(V1) - queue:len(V2)),
+ {if NewSize == 0 -> empty; true -> Pc end,
+ NewSize,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112,
+ V3}).
+
+?FILTER_P_Qn128(-128,
+ Qn128, NewQn128,
+ {NewQn128, Qn127, Qn126, Qn125, Qn124,
+ Qn123, Qn122, Qn121, Qn120, Qn119, Qn118,
+ Qn117, Qn116, Qn115, Qn114, Qn113});
+?FILTER_P_Qn128(-127,
+ Qn127, NewQn127,
+ {Qn128, NewQn127, Qn126, Qn125, Qn124,
+ Qn123, Qn122, Qn121, Qn120, Qn119, Qn118,
+ Qn117, Qn116, Qn115, Qn114, Qn113});
+?FILTER_P_Qn128(-126,
+ Qn126, NewQn126,
+ {Qn128, Qn127, NewQn126, Qn125, Qn124,
+ Qn123, Qn122, Qn121, Qn120, Qn119, Qn118,
+ Qn117, Qn116, Qn115, Qn114, Qn113});
+?FILTER_P_Qn128(-125,
+ Qn125, NewQn125,
+ {Qn128, Qn127, Qn126, NewQn125, Qn124,
+ Qn123, Qn122, Qn121, Qn120, Qn119, Qn118,
+ Qn117, Qn116, Qn115, Qn114, Qn113});
+?FILTER_P_Qn128(-124,
+ Qn124, NewQn124,
+ {Qn128, Qn127, Qn126, Qn125, NewQn124,
+ Qn123, Qn122, Qn121, Qn120, Qn119, Qn118,
+ Qn117, Qn116, Qn115, Qn114, Qn113});
+?FILTER_P_Qn128(-123,
+ Qn123, NewQn123,
+ {Qn128, Qn127, Qn126, Qn125, Qn124,
+ NewQn123, Qn122, Qn121, Qn120, Qn119, Qn118,
+ Qn117, Qn116, Qn115, Qn114, Qn113});
+?FILTER_P_Qn128(-122,
+ Qn122, NewQn122,
+ {Qn128, Qn127, Qn126, Qn125, Qn124,
+ Qn123, NewQn122, Qn121, Qn120, Qn119, Qn118,
+ Qn117, Qn116, Qn115, Qn114, Qn113});
+?FILTER_P_Qn128(-121,
+ Qn121, NewQn121,
+ {Qn128, Qn127, Qn126, Qn125, Qn124,
+ Qn123, Qn122, NewQn121, Qn120, Qn119, Qn118,
+ Qn117, Qn116, Qn115, Qn114, Qn113});
+?FILTER_P_Qn128(-120,
+ Qn120, NewQn120,
+ {Qn128, Qn127, Qn126, Qn125, Qn124,
+ Qn123, Qn122, Qn121, NewQn120, Qn119, Qn118,
+ Qn117, Qn116, Qn115, Qn114, Qn113});
+?FILTER_P_Qn128(-119,
+ Qn119, NewQn119,
+ {Qn128, Qn127, Qn126, Qn125, Qn124,
+ Qn123, Qn122, Qn121, Qn120, NewQn119, Qn118,
+ Qn117, Qn116, Qn115, Qn114, Qn113});
+?FILTER_P_Qn128(-118,
+ Qn118, NewQn118,
+ {Qn128, Qn127, Qn126, Qn125, Qn124,
+ Qn123, Qn122, Qn121, Qn120, Qn119, NewQn118,
+ Qn117, Qn116, Qn115, Qn114, Qn113});
+?FILTER_P_Qn128(-117,
+ Qn117, NewQn117,
+ {Qn128, Qn127, Qn126, Qn125, Qn124,
+ Qn123, Qn122, Qn121, Qn120, Qn119, Qn118,
+ NewQn117, Qn116, Qn115, Qn114, Qn113});
+?FILTER_P_Qn128(-116,
+ Qn116, NewQn116,
+ {Qn128, Qn127, Qn126, Qn125, Qn124,
+ Qn123, Qn122, Qn121, Qn120, Qn119, Qn118,
+ Qn117, NewQn116, Qn115, Qn114, Qn113});
+?FILTER_P_Qn128(-115,
+ Qn115, NewQn115,
+ {Qn128, Qn127, Qn126, Qn125, Qn124,
+ Qn123, Qn122, Qn121, Qn120, Qn119, Qn118,
+ Qn117, Qn116, NewQn115, Qn114, Qn113});
+?FILTER_P_Qn128(-114,
+ Qn114, NewQn114,
+ {Qn128, Qn127, Qn126, Qn125, Qn124,
+ Qn123, Qn122, Qn121, Qn120, Qn119, Qn118,
+ Qn117, Qn116, Qn115, NewQn114, Qn113});
+?FILTER_P_Qn128(-113,
+ Qn113, NewQn113,
+ {Qn128, Qn127, Qn126, Qn125, Qn124,
+ Qn123, Qn122, Qn121, Qn120, Qn119, Qn118,
+ Qn117, Qn116, Qn115, Qn114, NewQn113});
+?FILTER_P_Qn112(-112,
+ Qn112, NewQn112,
+ {NewQn112, Qn111, Qn110, Qn109, Qn108,
+ Qn107, Qn106, Qn105, Qn104, Qn103, Qn102,
+ Qn101, Qn100, Qn99, Qn98, Qn97});
+?FILTER_P_Qn112(-111,
+ Qn111, NewQn111,
+ {Qn112, NewQn111, Qn110, Qn109, Qn108,
+ Qn107, Qn106, Qn105, Qn104, Qn103, Qn102,
+ Qn101, Qn100, Qn99, Qn98, Qn97});
+?FILTER_P_Qn112(-110,
+ Qn110, NewQn110,
+ {Qn112, Qn111, NewQn110, Qn109, Qn108,
+ Qn107, Qn106, Qn105, Qn104, Qn103, Qn102,
+ Qn101, Qn100, Qn99, Qn98, Qn97});
+?FILTER_P_Qn112(-109,
+ Qn109, NewQn109,
+ {Qn112, Qn111, Qn110, NewQn109, Qn108,
+ Qn107, Qn106, Qn105, Qn104, Qn103, Qn102,
+ Qn101, Qn100, Qn99, Qn98, Qn97});
+?FILTER_P_Qn112(-108,
+ Qn108, NewQn108,
+ {Qn112, Qn111, Qn110, Qn109, NewQn108,
+ Qn107, Qn106, Qn105, Qn104, Qn103, Qn102,
+ Qn101, Qn100, Qn99, Qn98, Qn97});
+?FILTER_P_Qn112(-107,
+ Qn107, NewQn107,
+ {Qn112, Qn111, Qn110, Qn109, Qn108,
+ NewQn107, Qn106, Qn105, Qn104, Qn103, Qn102,
+ Qn101, Qn100, Qn99, Qn98, Qn97});
+?FILTER_P_Qn112(-106,
+ Qn106, NewQn106,
+ {Qn112, Qn111, Qn110, Qn109, Qn108,
+ Qn107, NewQn106, Qn105, Qn104, Qn103, Qn102,
+ Qn101, Qn100, Qn99, Qn98, Qn97});
+?FILTER_P_Qn112(-105,
+ Qn105, NewQn105,
+ {Qn112, Qn111, Qn110, Qn109, Qn108,
+ Qn107, Qn106, NewQn105, Qn104, Qn103, Qn102,
+ Qn101, Qn100, Qn99, Qn98, Qn97});
+?FILTER_P_Qn112(-104,
+ Qn104, NewQn104,
+ {Qn112, Qn111, Qn110, Qn109, Qn108,
+ Qn107, Qn106, Qn105, NewQn104, Qn103, Qn102,
+ Qn101, Qn100, Qn99, Qn98, Qn97});
+?FILTER_P_Qn112(-103,
+ Qn103, NewQn103,
+ {Qn112, Qn111, Qn110, Qn109, Qn108,
+ Qn107, Qn106, Qn105, Qn104, NewQn103, Qn102,
+ Qn101, Qn100, Qn99, Qn98, Qn97});
+?FILTER_P_Qn112(-102,
+ Qn102, NewQn102,
+ {Qn112, Qn111, Qn110, Qn109, Qn108,
+ Qn107, Qn106, Qn105, Qn104, Qn103, NewQn102,
+ Qn101, Qn100, Qn99, Qn98, Qn97});
+?FILTER_P_Qn112(-101,
+ Qn101, NewQn101,
+ {Qn112, Qn111, Qn110, Qn109, Qn108,
+ Qn107, Qn106, Qn105, Qn104, Qn103, Qn102,
+ NewQn101, Qn100, Qn99, Qn98, Qn97});
+?FILTER_P_Qn112(-100,
+ Qn100, NewQn100,
+ {Qn112, Qn111, Qn110, Qn109, Qn108,
+ Qn107, Qn106, Qn105, Qn104, Qn103, Qn102,
+ Qn101, NewQn100, Qn99, Qn98, Qn97});
+?FILTER_P_Qn112(-99,
+ Qn99, NewQn99,
+ {Qn112, Qn111, Qn110, Qn109, Qn108,
+ Qn107, Qn106, Qn105, Qn104, Qn103, Qn102,
+ Qn101, Qn100, NewQn99, Qn98, Qn97});
+?FILTER_P_Qn112(-98,
+ Qn98, NewQn98,
+ {Qn112, Qn111, Qn110, Qn109, Qn108,
+ Qn107, Qn106, Qn105, Qn104, Qn103, Qn102,
+ Qn101, Qn100, Qn99, NewQn98, Qn97});
+?FILTER_P_Qn112(-97,
+ Qn97, NewQn97,
+ {Qn112, Qn111, Qn110, Qn109, Qn108,
+ Qn107, Qn106, Qn105, Qn104, Qn103, Qn102,
+ Qn101, Qn100, Qn99, Qn98, NewQn97});
+?FILTER_P_Qn96(-96,
+ Qn96, NewQn96,
+ {NewQn96, Qn95, Qn94, Qn93, Qn92,
+ Qn91, Qn90, Qn89, Qn88, Qn87, Qn86,
+ Qn85, Qn84, Qn83, Qn82, Qn81});
+?FILTER_P_Qn96(-95,
+ Qn95, NewQn95,
+ {Qn96, NewQn95, Qn94, Qn93, Qn92,
+ Qn91, Qn90, Qn89, Qn88, Qn87, Qn86,
+ Qn85, Qn84, Qn83, Qn82, Qn81});
+?FILTER_P_Qn96(-94,
+ Qn94, NewQn94,
+ {Qn96, Qn95, NewQn94, Qn93, Qn92,
+ Qn91, Qn90, Qn89, Qn88, Qn87, Qn86,
+ Qn85, Qn84, Qn83, Qn82, Qn81});
+?FILTER_P_Qn96(-93,
+ Qn93, NewQn93,
+ {Qn96, Qn95, Qn94, NewQn93, Qn92,
+ Qn91, Qn90, Qn89, Qn88, Qn87, Qn86,
+ Qn85, Qn84, Qn83, Qn82, Qn81});
+?FILTER_P_Qn96(-92,
+ Qn92, NewQn92,
+ {Qn96, Qn95, Qn94, Qn93, NewQn92,
+ Qn91, Qn90, Qn89, Qn88, Qn87, Qn86,
+ Qn85, Qn84, Qn83, Qn82, Qn81});
+?FILTER_P_Qn96(-91,
+ Qn91, NewQn91,
+ {Qn96, Qn95, Qn94, Qn93, Qn92,
+ NewQn91, Qn90, Qn89, Qn88, Qn87, Qn86,
+ Qn85, Qn84, Qn83, Qn82, Qn81});
+?FILTER_P_Qn96(-90,
+ Qn90, NewQn90,
+ {Qn96, Qn95, Qn94, Qn93, Qn92,
+ Qn91, NewQn90, Qn89, Qn88, Qn87, Qn86,
+ Qn85, Qn84, Qn83, Qn82, Qn81});
+?FILTER_P_Qn96(-89,
+ Qn89, NewQn89,
+ {Qn96, Qn95, Qn94, Qn93, Qn92,
+ Qn91, Qn90, NewQn89, Qn88, Qn87, Qn86,
+ Qn85, Qn84, Qn83, Qn82, Qn81});
+?FILTER_P_Qn96(-88,
+ Qn88, NewQn88,
+ {Qn96, Qn95, Qn94, Qn93, Qn92,
+ Qn91, Qn90, Qn89, NewQn88, Qn87, Qn86,
+ Qn85, Qn84, Qn83, Qn82, Qn81});
+?FILTER_P_Qn96(-87,
+ Qn87, NewQn87,
+ {Qn96, Qn95, Qn94, Qn93, Qn92,
+ Qn91, Qn90, Qn89, Qn88, NewQn87, Qn86,
+ Qn85, Qn84, Qn83, Qn82, Qn81});
+?FILTER_P_Qn96(-86,
+ Qn86, NewQn86,
+ {Qn96, Qn95, Qn94, Qn93, Qn92,
+ Qn91, Qn90, Qn89, Qn88, Qn87, NewQn86,
+ Qn85, Qn84, Qn83, Qn82, Qn81});
+?FILTER_P_Qn96(-85,
+ Qn85, NewQn85,
+ {Qn96, Qn95, Qn94, Qn93, Qn92,
+ Qn91, Qn90, Qn89, Qn88, Qn87, Qn86,
+ NewQn85, Qn84, Qn83, Qn82, Qn81});
+?FILTER_P_Qn96(-84,
+ Qn84, NewQn84,
+ {Qn96, Qn95, Qn94, Qn93, Qn92,
+ Qn91, Qn90, Qn89, Qn88, Qn87, Qn86,
+ Qn85, NewQn84, Qn83, Qn82, Qn81});
+?FILTER_P_Qn96(-83,
+ Qn83, NewQn83,
+ {Qn96, Qn95, Qn94, Qn93, Qn92,
+ Qn91, Qn90, Qn89, Qn88, Qn87, Qn86,
+ Qn85, Qn84, NewQn83, Qn82, Qn81});
+?FILTER_P_Qn96(-82,
+ Qn82, NewQn82,
+ {Qn96, Qn95, Qn94, Qn93, Qn92,
+ Qn91, Qn90, Qn89, Qn88, Qn87, Qn86,
+ Qn85, Qn84, Qn83, NewQn82, Qn81});
+?FILTER_P_Qn96(-81,
+ Qn81, NewQn81,
+ {Qn96, Qn95, Qn94, Qn93, Qn92,
+ Qn91, Qn90, Qn89, Qn88, Qn87, Qn86,
+ Qn85, Qn84, Qn83, Qn82, NewQn81});
+?FILTER_P_Qn80(-80,
+ Qn80, NewQn80,
+ {NewQn80, Qn79, Qn78, Qn77, Qn76,
+ Qn75, Qn74, Qn73, Qn72, Qn71, Qn70,
+ Qn69, Qn68, Qn67, Qn66, Qn65});
+?FILTER_P_Qn80(-79,
+ Qn79, NewQn79,
+ {Qn80, NewQn79, Qn78, Qn77, Qn76,
+ Qn75, Qn74, Qn73, Qn72, Qn71, Qn70,
+ Qn69, Qn68, Qn67, Qn66, Qn65});
+?FILTER_P_Qn80(-78,
+ Qn78, NewQn78,
+ {Qn80, Qn79, NewQn78, Qn77, Qn76,
+ Qn75, Qn74, Qn73, Qn72, Qn71, Qn70,
+ Qn69, Qn68, Qn67, Qn66, Qn65});
+?FILTER_P_Qn80(-77,
+ Qn77, NewQn77,
+ {Qn80, Qn79, Qn78, NewQn77, Qn76,
+ Qn75, Qn74, Qn73, Qn72, Qn71, Qn70,
+ Qn69, Qn68, Qn67, Qn66, Qn65});
+?FILTER_P_Qn80(-76,
+ Qn76, NewQn76,
+ {Qn80, Qn79, Qn78, Qn77, NewQn76,
+ Qn75, Qn74, Qn73, Qn72, Qn71, Qn70,
+ Qn69, Qn68, Qn67, Qn66, Qn65});
+?FILTER_P_Qn80(-75,
+ Qn75, NewQn75,
+ {Qn80, Qn79, Qn78, Qn77, Qn76,
+ NewQn75, Qn74, Qn73, Qn72, Qn71, Qn70,
+ Qn69, Qn68, Qn67, Qn66, Qn65});
+?FILTER_P_Qn80(-74,
+ Qn74, NewQn74,
+ {Qn80, Qn79, Qn78, Qn77, Qn76,
+ Qn75, NewQn74, Qn73, Qn72, Qn71, Qn70,
+ Qn69, Qn68, Qn67, Qn66, Qn65});
+?FILTER_P_Qn80(-73,
+ Qn73, NewQn73,
+ {Qn80, Qn79, Qn78, Qn77, Qn76,
+ Qn75, Qn74, NewQn73, Qn72, Qn71, Qn70,
+ Qn69, Qn68, Qn67, Qn66, Qn65});
+?FILTER_P_Qn80(-72,
+ Qn72, NewQn72,
+ {Qn80, Qn79, Qn78, Qn77, Qn76,
+ Qn75, Qn74, Qn73, NewQn72, Qn71, Qn70,
+ Qn69, Qn68, Qn67, Qn66, Qn65});
+?FILTER_P_Qn80(-71,
+ Qn71, NewQn71,
+ {Qn80, Qn79, Qn78, Qn77, Qn76,
+ Qn75, Qn74, Qn73, Qn72, NewQn71, Qn70,
+ Qn69, Qn68, Qn67, Qn66, Qn65});
+?FILTER_P_Qn80(-70,
+ Qn70, NewQn70,
+ {Qn80, Qn79, Qn78, Qn77, Qn76,
+ Qn75, Qn74, Qn73, Qn72, Qn71, NewQn70,
+ Qn69, Qn68, Qn67, Qn66, Qn65});
+?FILTER_P_Qn80(-69,
+ Qn69, NewQn69,
+ {Qn80, Qn79, Qn78, Qn77, Qn76,
+ Qn75, Qn74, Qn73, Qn72, Qn71, Qn70,
+ NewQn69, Qn68, Qn67, Qn66, Qn65});
+?FILTER_P_Qn80(-68,
+ Qn68, NewQn68,
+ {Qn80, Qn79, Qn78, Qn77, Qn76,
+ Qn75, Qn74, Qn73, Qn72, Qn71, Qn70,
+ Qn69, NewQn68, Qn67, Qn66, Qn65});
+?FILTER_P_Qn80(-67,
+ Qn67, NewQn67,
+ {Qn80, Qn79, Qn78, Qn77, Qn76,
+ Qn75, Qn74, Qn73, Qn72, Qn71, Qn70,
+ Qn69, Qn68, NewQn67, Qn66, Qn65});
+?FILTER_P_Qn80(-66,
+ Qn66, NewQn66,
+ {Qn80, Qn79, Qn78, Qn77, Qn76,
+ Qn75, Qn74, Qn73, Qn72, Qn71, Qn70,
+ Qn69, Qn68, Qn67, NewQn66, Qn65});
+?FILTER_P_Qn80(-65,
+ Qn65, NewQn65,
+ {Qn80, Qn79, Qn78, Qn77, Qn76,
+ Qn75, Qn74, Qn73, Qn72, Qn71, Qn70,
+ Qn69, Qn68, Qn67, Qn66, NewQn65});
+?FILTER_P_Qn64(-64,
+ Qn64, NewQn64,
+ {NewQn64, Qn63, Qn62, Qn61, Qn60,
+ Qn59, Qn58, Qn57, Qn56, Qn55, Qn54,
+ Qn53, Qn52, Qn51, Qn50, Qn49});
+?FILTER_P_Qn64(-63,
+ Qn63, NewQn63,
+ {Qn64, NewQn63, Qn62, Qn61, Qn60,
+ Qn59, Qn58, Qn57, Qn56, Qn55, Qn54,
+ Qn53, Qn52, Qn51, Qn50, Qn49});
+?FILTER_P_Qn64(-62,
+ Qn62, NewQn62,
+ {Qn64, Qn63, NewQn62, Qn61, Qn60,
+ Qn59, Qn58, Qn57, Qn56, Qn55, Qn54,
+ Qn53, Qn52, Qn51, Qn50, Qn49});
+?FILTER_P_Qn64(-61,
+ Qn61, NewQn61,
+ {Qn64, Qn63, Qn62, NewQn61, Qn60,
+ Qn59, Qn58, Qn57, Qn56, Qn55, Qn54,
+ Qn53, Qn52, Qn51, Qn50, Qn49});
+?FILTER_P_Qn64(-60,
+ Qn60, NewQn60,
+ {Qn64, Qn63, Qn62, Qn61, NewQn60,
+ Qn59, Qn58, Qn57, Qn56, Qn55, Qn54,
+ Qn53, Qn52, Qn51, Qn50, Qn49});
+?FILTER_P_Qn64(-59,
+ Qn59, NewQn59,
+ {Qn64, Qn63, Qn62, Qn61, Qn60,
+ NewQn59, Qn58, Qn57, Qn56, Qn55, Qn54,
+ Qn53, Qn52, Qn51, Qn50, Qn49});
+?FILTER_P_Qn64(-58,
+ Qn58, NewQn58,
+ {Qn64, Qn63, Qn62, Qn61, Qn60,
+ Qn59, NewQn58, Qn57, Qn56, Qn55, Qn54,
+ Qn53, Qn52, Qn51, Qn50, Qn49});
+?FILTER_P_Qn64(-57,
+ Qn57, NewQn57,
+ {Qn64, Qn63, Qn62, Qn61, Qn60,
+ Qn59, Qn58, NewQn57, Qn56, Qn55, Qn54,
+ Qn53, Qn52, Qn51, Qn50, Qn49});
+?FILTER_P_Qn64(-56,
+ Qn56, NewQn56,
+ {Qn64, Qn63, Qn62, Qn61, Qn60,
+ Qn59, Qn58, Qn57, NewQn56, Qn55, Qn54,
+ Qn53, Qn52, Qn51, Qn50, Qn49});
+?FILTER_P_Qn64(-55,
+ Qn55, NewQn55,
+ {Qn64, Qn63, Qn62, Qn61, Qn60,
+ Qn59, Qn58, Qn57, Qn56, NewQn55, Qn54,
+ Qn53, Qn52, Qn51, Qn50, Qn49});
+?FILTER_P_Qn64(-54,
+ Qn54, NewQn54,
+ {Qn64, Qn63, Qn62, Qn61, Qn60,
+ Qn59, Qn58, Qn57, Qn56, Qn55, NewQn54,
+ Qn53, Qn52, Qn51, Qn50, Qn49});
+?FILTER_P_Qn64(-53,
+ Qn53, NewQn53,
+ {Qn64, Qn63, Qn62, Qn61, Qn60,
+ Qn59, Qn58, Qn57, Qn56, Qn55, Qn54,
+ NewQn53, Qn52, Qn51, Qn50, Qn49});
+?FILTER_P_Qn64(-52,
+ Qn52, NewQn52,
+ {Qn64, Qn63, Qn62, Qn61, Qn60,
+ Qn59, Qn58, Qn57, Qn56, Qn55, Qn54,
+ Qn53, NewQn52, Qn51, Qn50, Qn49});
+?FILTER_P_Qn64(-51,
+ Qn51, NewQn51,
+ {Qn64, Qn63, Qn62, Qn61, Qn60,
+ Qn59, Qn58, Qn57, Qn56, Qn55, Qn54,
+ Qn53, Qn52, NewQn51, Qn50, Qn49});
+?FILTER_P_Qn64(-50,
+ Qn50, NewQn50,
+ {Qn64, Qn63, Qn62, Qn61, Qn60,
+ Qn59, Qn58, Qn57, Qn56, Qn55, Qn54,
+ Qn53, Qn52, Qn51, NewQn50, Qn49});
+?FILTER_P_Qn64(-49,
+ Qn49, NewQn49,
+ {Qn64, Qn63, Qn62, Qn61, Qn60,
+ Qn59, Qn58, Qn57, Qn56, Qn55, Qn54,
+ Qn53, Qn52, Qn51, Qn50, NewQn49});
+?FILTER_P_Qn48(-48,
+ Qn48, NewQn48,
+ {NewQn48, Qn47, Qn46, Qn45, Qn44,
+ Qn43, Qn42, Qn41, Qn40, Qn39, Qn38,
+ Qn37, Qn36, Qn35, Qn34, Qn33});
+?FILTER_P_Qn48(-47,
+ Qn47, NewQn47,
+ {Qn48, NewQn47, Qn46, Qn45, Qn44,
+ Qn43, Qn42, Qn41, Qn40, Qn39, Qn38,
+ Qn37, Qn36, Qn35, Qn34, Qn33});
+?FILTER_P_Qn48(-46,
+ Qn46, NewQn46,
+ {Qn48, Qn47, NewQn46, Qn45, Qn44,
+ Qn43, Qn42, Qn41, Qn40, Qn39, Qn38,
+ Qn37, Qn36, Qn35, Qn34, Qn33});
+?FILTER_P_Qn48(-45,
+ Qn45, NewQn45,
+ {Qn48, Qn47, Qn46, NewQn45, Qn44,
+ Qn43, Qn42, Qn41, Qn40, Qn39, Qn38,
+ Qn37, Qn36, Qn35, Qn34, Qn33});
+?FILTER_P_Qn48(-44,
+ Qn44, NewQn44,
+ {Qn48, Qn47, Qn46, Qn45, NewQn44,
+ Qn43, Qn42, Qn41, Qn40, Qn39, Qn38,
+ Qn37, Qn36, Qn35, Qn34, Qn33});
+?FILTER_P_Qn48(-43,
+ Qn43, NewQn43,
+ {Qn48, Qn47, Qn46, Qn45, Qn44,
+ NewQn43, Qn42, Qn41, Qn40, Qn39, Qn38,
+ Qn37, Qn36, Qn35, Qn34, Qn33});
+?FILTER_P_Qn48(-42,
+ Qn42, NewQn42,
+ {Qn48, Qn47, Qn46, Qn45, Qn44,
+ Qn43, NewQn42, Qn41, Qn40, Qn39, Qn38,
+ Qn37, Qn36, Qn35, Qn34, Qn33});
+?FILTER_P_Qn48(-41,
+ Qn41, NewQn41,
+ {Qn48, Qn47, Qn46, Qn45, Qn44,
+ Qn43, Qn42, NewQn41, Qn40, Qn39, Qn38,
+ Qn37, Qn36, Qn35, Qn34, Qn33});
+?FILTER_P_Qn48(-40,
+ Qn40, NewQn40,
+ {Qn48, Qn47, Qn46, Qn45, Qn44,
+ Qn43, Qn42, Qn41, NewQn40, Qn39, Qn38,
+ Qn37, Qn36, Qn35, Qn34, Qn33});
+?FILTER_P_Qn48(-39,
+ Qn39, NewQn39,
+ {Qn48, Qn47, Qn46, Qn45, Qn44,
+ Qn43, Qn42, Qn41, Qn40, NewQn39, Qn38,
+ Qn37, Qn36, Qn35, Qn34, Qn33});
+?FILTER_P_Qn48(-38,
+ Qn38, NewQn38,
+ {Qn48, Qn47, Qn46, Qn45, Qn44,
+ Qn43, Qn42, Qn41, Qn40, Qn39, NewQn38,
+ Qn37, Qn36, Qn35, Qn34, Qn33});
+?FILTER_P_Qn48(-37,
+ Qn37, NewQn37,
+ {Qn48, Qn47, Qn46, Qn45, Qn44,
+ Qn43, Qn42, Qn41, Qn40, Qn39, Qn38,
+ NewQn37, Qn36, Qn35, Qn34, Qn33});
+?FILTER_P_Qn48(-36,
+ Qn36, NewQn36,
+ {Qn48, Qn47, Qn46, Qn45, Qn44,
+ Qn43, Qn42, Qn41, Qn40, Qn39, Qn38,
+ Qn37, NewQn36, Qn35, Qn34, Qn33});
+?FILTER_P_Qn48(-35,
+ Qn35, NewQn35,
+ {Qn48, Qn47, Qn46, Qn45, Qn44,
+ Qn43, Qn42, Qn41, Qn40, Qn39, Qn38,
+ Qn37, Qn36, NewQn35, Qn34, Qn33});
+?FILTER_P_Qn48(-34,
+ Qn34, NewQn34,
+ {Qn48, Qn47, Qn46, Qn45, Qn44,
+ Qn43, Qn42, Qn41, Qn40, Qn39, Qn38,
+ Qn37, Qn36, Qn35, NewQn34, Qn33});
+?FILTER_P_Qn48(-33,
+ Qn33, NewQn33,
+ {Qn48, Qn47, Qn46, Qn45, Qn44,
+ Qn43, Qn42, Qn41, Qn40, Qn39, Qn38,
+ Qn37, Qn36, Qn35, Qn34, NewQn33});
+?FILTER_P_Qn32(-32,
+ Qn32, NewQn32,
+ {NewQn32, Qn31, Qn30, Qn29, Qn28,
+ Qn27, Qn26, Qn25, Qn24, Qn23, Qn22,
+ Qn21, Qn20, Qn19, Qn18, Qn17});
+?FILTER_P_Qn32(-31,
+ Qn31, NewQn31,
+ {Qn32, NewQn31, Qn30, Qn29, Qn28,
+ Qn27, Qn26, Qn25, Qn24, Qn23, Qn22,
+ Qn21, Qn20, Qn19, Qn18, Qn17});
+?FILTER_P_Qn32(-30,
+ Qn30, NewQn30,
+ {Qn32, Qn31, NewQn30, Qn29, Qn28,
+ Qn27, Qn26, Qn25, Qn24, Qn23, Qn22,
+ Qn21, Qn20, Qn19, Qn18, Qn17});
+?FILTER_P_Qn32(-29,
+ Qn29, NewQn29,
+ {Qn32, Qn31, Qn30, NewQn29, Qn28,
+ Qn27, Qn26, Qn25, Qn24, Qn23, Qn22,
+ Qn21, Qn20, Qn19, Qn18, Qn17});
+?FILTER_P_Qn32(-28,
+ Qn28, NewQn28,
+ {Qn32, Qn31, Qn30, Qn29, NewQn28,
+ Qn27, Qn26, Qn25, Qn24, Qn23, Qn22,
+ Qn21, Qn20, Qn19, Qn18, Qn17});
+?FILTER_P_Qn32(-27,
+ Qn27, NewQn27,
+ {Qn32, Qn31, Qn30, Qn29, Qn28,
+ NewQn27, Qn26, Qn25, Qn24, Qn23, Qn22,
+ Qn21, Qn20, Qn19, Qn18, Qn17});
+?FILTER_P_Qn32(-26,
+ Qn26, NewQn26,
+ {Qn32, Qn31, Qn30, Qn29, Qn28,
+ Qn27, NewQn26, Qn25, Qn24, Qn23, Qn22,
+ Qn21, Qn20, Qn19, Qn18, Qn17});
+?FILTER_P_Qn32(-25,
+ Qn25, NewQn25,
+ {Qn32, Qn31, Qn30, Qn29, Qn28,
+ Qn27, Qn26, NewQn25, Qn24, Qn23, Qn22,
+ Qn21, Qn20, Qn19, Qn18, Qn17});
+?FILTER_P_Qn32(-24,
+ Qn24, NewQn24,
+ {Qn32, Qn31, Qn30, Qn29, Qn28,
+ Qn27, Qn26, Qn25, NewQn24, Qn23, Qn22,
+ Qn21, Qn20, Qn19, Qn18, Qn17});
+?FILTER_P_Qn32(-23,
+ Qn23, NewQn23,
+ {Qn32, Qn31, Qn30, Qn29, Qn28,
+ Qn27, Qn26, Qn25, Qn24, NewQn23, Qn22,
+ Qn21, Qn20, Qn19, Qn18, Qn17});
+?FILTER_P_Qn32(-22,
+ Qn22, NewQn22,
+ {Qn32, Qn31, Qn30, Qn29, Qn28,
+ Qn27, Qn26, Qn25, Qn24, Qn23, NewQn22,
+ Qn21, Qn20, Qn19, Qn18, Qn17});
+?FILTER_P_Qn32(-21,
+ Qn21, NewQn21,
+ {Qn32, Qn31, Qn30, Qn29, Qn28,
+ Qn27, Qn26, Qn25, Qn24, Qn23, Qn22,
+ NewQn21, Qn20, Qn19, Qn18, Qn17});
+?FILTER_P_Qn32(-20,
+ Qn20, NewQn20,
+ {Qn32, Qn31, Qn30, Qn29, Qn28,
+ Qn27, Qn26, Qn25, Qn24, Qn23, Qn22,
+ Qn21, NewQn20, Qn19, Qn18, Qn17});
+?FILTER_P_Qn32(-19,
+ Qn19, NewQn19,
+ {Qn32, Qn31, Qn30, Qn29, Qn28,
+ Qn27, Qn26, Qn25, Qn24, Qn23, Qn22,
+ Qn21, Qn20, NewQn19, Qn18, Qn17});
+?FILTER_P_Qn32(-18,
+ Qn18, NewQn18,
+ {Qn32, Qn31, Qn30, Qn29, Qn28,
+ Qn27, Qn26, Qn25, Qn24, Qn23, Qn22,
+ Qn21, Qn20, Qn19, NewQn18, Qn17});
+?FILTER_P_Qn32(-17,
+ Qn17, NewQn17,
+ {Qn32, Qn31, Qn30, Qn29, Qn28,
+ Qn27, Qn26, Qn25, Qn24, Qn23, Qn22,
+ Qn21, Qn20, Qn19, Qn18, NewQn17});
+?FILTER_P_Qn16(-16,
+ Qn16, NewQn16,
+ {NewQn16, Qn15, Qn14, Qn13, Qn12,
+ Qn11, Qn10, Qn9, Qn8, Qn7, Qn6,
+ Qn5, Qn4, Qn3, Qn2, Qn1});
+?FILTER_P_Qn16(-15,
+ Qn15, NewQn15,
+ {Qn16, NewQn15, Qn14, Qn13, Qn12,
+ Qn11, Qn10, Qn9, Qn8, Qn7, Qn6,
+ Qn5, Qn4, Qn3, Qn2, Qn1});
+?FILTER_P_Qn16(-14,
+ Qn14, NewQn14,
+ {Qn16, Qn15, NewQn14, Qn13, Qn12,
+ Qn11, Qn10, Qn9, Qn8, Qn7, Qn6,
+ Qn5, Qn4, Qn3, Qn2, Qn1});
+?FILTER_P_Qn16(-13,
+ Qn13, NewQn13,
+ {Qn16, Qn15, Qn14, NewQn13, Qn12,
+ Qn11, Qn10, Qn9, Qn8, Qn7, Qn6,
+ Qn5, Qn4, Qn3, Qn2, Qn1});
+?FILTER_P_Qn16(-12,
+ Qn12, NewQn12,
+ {Qn16, Qn15, Qn14, Qn13, NewQn12,
+ Qn11, Qn10, Qn9, Qn8, Qn7, Qn6,
+ Qn5, Qn4, Qn3, Qn2, Qn1});
+?FILTER_P_Qn16(-11,
+ Qn11, NewQn11,
+ {Qn16, Qn15, Qn14, Qn13, Qn12,
+ NewQn11, Qn10, Qn9, Qn8, Qn7, Qn6,
+ Qn5, Qn4, Qn3, Qn2, Qn1});
+?FILTER_P_Qn16(-10,
+ Qn10, NewQn10,
+ {Qn16, Qn15, Qn14, Qn13, Qn12,
+ Qn11, NewQn10, Qn9, Qn8, Qn7, Qn6,
+ Qn5, Qn4, Qn3, Qn2, Qn1});
+?FILTER_P_Qn16(-9,
+ Qn9, NewQn9,
+ {Qn16, Qn15, Qn14, Qn13, Qn12,
+ Qn11, Qn10, NewQn9, Qn8, Qn7, Qn6,
+ Qn5, Qn4, Qn3, Qn2, Qn1});
+?FILTER_P_Qn16(-8,
+ Qn8, NewQn8,
+ {Qn16, Qn15, Qn14, Qn13, Qn12,
+ Qn11, Qn10, Qn9, NewQn8, Qn7, Qn6,
+ Qn5, Qn4, Qn3, Qn2, Qn1});
+?FILTER_P_Qn16(-7,
+ Qn7, NewQn7,
+ {Qn16, Qn15, Qn14, Qn13, Qn12,
+ Qn11, Qn10, Qn9, Qn8, NewQn7, Qn6,
+ Qn5, Qn4, Qn3, Qn2, Qn1});
+?FILTER_P_Qn16(-6,
+ Qn6, NewQn6,
+ {Qn16, Qn15, Qn14, Qn13, Qn12,
+ Qn11, Qn10, Qn9, Qn8, Qn7, NewQn6,
+ Qn5, Qn4, Qn3, Qn2, Qn1});
+?FILTER_P_Qn16(-5,
+ Qn5, NewQn5,
+ {Qn16, Qn15, Qn14, Qn13, Qn12,
+ Qn11, Qn10, Qn9, Qn8, Qn7, Qn6,
+ NewQn5, Qn4, Qn3, Qn2, Qn1});
+?FILTER_P_Qn16(-4,
+ Qn4, NewQn4,
+ {Qn16, Qn15, Qn14, Qn13, Qn12,
+ Qn11, Qn10, Qn9, Qn8, Qn7, Qn6,
+ Qn5, NewQn4, Qn3, Qn2, Qn1});
+?FILTER_P_Qn16(-3,
+ Qn3, NewQn3,
+ {Qn16, Qn15, Qn14, Qn13, Qn12,
+ Qn11, Qn10, Qn9, Qn8, Qn7, Qn6,
+ Qn5, Qn4, NewQn3, Qn2, Qn1});
+?FILTER_P_Qn16(-2,
+ Qn2, NewQn2,
+ {Qn16, Qn15, Qn14, Qn13, Qn12,
+ Qn11, Qn10, Qn9, Qn8, Qn7, Qn6,
+ Qn5, Qn4, Qn3, NewQn2, Qn1});
+?FILTER_P_Qn16(-1,
+ Qn1, NewQn1,
+ {Qn16, Qn15, Qn14, Qn13, Qn12,
+ Qn11, Qn10, Qn9, Qn8, Qn7, Qn6,
+ Qn5, Qn4, Qn3, Qn2, NewQn1});
+filter_priority(0, F,
+ {Pc,
+ Size,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}) ->
+ NewQ0 = queue:filter(F, Q0),
+ NewSize = Size - (queue:len(Q0) - queue:len(NewQ0)),
+ {if NewSize == 0 -> empty; true -> Pc end,
+ NewSize,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ NewQ0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128};
+?FILTER_P_Qp16(1,
+ Qp1, NewQp1,
+ {NewQp1, Qp2, Qp3, Qp4, Qp5,
+ Qp6, Qp7, Qp8, Qp9, Qp10, Qp11,
+ Qp12, Qp13, Qp14, Qp15, Qp16});
+?FILTER_P_Qp16(2,
+ Qp2, NewQp2,
+ {Qp1, NewQp2, Qp3, Qp4, Qp5,
+ Qp6, Qp7, Qp8, Qp9, Qp10, Qp11,
+ Qp12, Qp13, Qp14, Qp15, Qp16});
+?FILTER_P_Qp16(3,
+ Qp3, NewQp3,
+ {Qp1, Qp2, NewQp3, Qp4, Qp5,
+ Qp6, Qp7, Qp8, Qp9, Qp10, Qp11,
+ Qp12, Qp13, Qp14, Qp15, Qp16});
+?FILTER_P_Qp16(4,
+ Qp4, NewQp4,
+ {Qp1, Qp2, Qp3, NewQp4, Qp5,
+ Qp6, Qp7, Qp8, Qp9, Qp10, Qp11,
+ Qp12, Qp13, Qp14, Qp15, Qp16});
+?FILTER_P_Qp16(5,
+ Qp5, NewQp5,
+ {Qp1, Qp2, Qp3, Qp4, NewQp5,
+ Qp6, Qp7, Qp8, Qp9, Qp10, Qp11,
+ Qp12, Qp13, Qp14, Qp15, Qp16});
+?FILTER_P_Qp16(6,
+ Qp6, NewQp6,
+ {Qp1, Qp2, Qp3, Qp4, Qp5,
+ NewQp6, Qp7, Qp8, Qp9, Qp10, Qp11,
+ Qp12, Qp13, Qp14, Qp15, Qp16});
+?FILTER_P_Qp16(7,
+ Qp7, NewQp7,
+ {Qp1, Qp2, Qp3, Qp4, Qp5,
+ Qp6, NewQp7, Qp8, Qp9, Qp10, Qp11,
+ Qp12, Qp13, Qp14, Qp15, Qp16});
+?FILTER_P_Qp16(8,
+ Qp8, NewQp8,
+ {Qp1, Qp2, Qp3, Qp4, Qp5,
+ Qp6, Qp7, NewQp8, Qp9, Qp10, Qp11,
+ Qp12, Qp13, Qp14, Qp15, Qp16});
+?FILTER_P_Qp16(9,
+ Qp9, NewQp9,
+ {Qp1, Qp2, Qp3, Qp4, Qp5,
+ Qp6, Qp7, Qp8, NewQp9, Qp10, Qp11,
+ Qp12, Qp13, Qp14, Qp15, Qp16});
+?FILTER_P_Qp16(10,
+ Qp10, NewQp10,
+ {Qp1, Qp2, Qp3, Qp4, Qp5,
+ Qp6, Qp7, Qp8, Qp9, NewQp10, Qp11,
+ Qp12, Qp13, Qp14, Qp15, Qp16});
+?FILTER_P_Qp16(11,
+ Qp11, NewQp11,
+ {Qp1, Qp2, Qp3, Qp4, Qp5,
+ Qp6, Qp7, Qp8, Qp9, Qp10, NewQp11,
+ Qp12, Qp13, Qp14, Qp15, Qp16});
+?FILTER_P_Qp16(12,
+ Qp12, NewQp12,
+ {Qp1, Qp2, Qp3, Qp4, Qp5,
+ Qp6, Qp7, Qp8, Qp9, Qp10, Qp11,
+ NewQp12, Qp13, Qp14, Qp15, Qp16});
+?FILTER_P_Qp16(13,
+ Qp13, NewQp13,
+ {Qp1, Qp2, Qp3, Qp4, Qp5,
+ Qp6, Qp7, Qp8, Qp9, Qp10, Qp11,
+ Qp12, NewQp13, Qp14, Qp15, Qp16});
+?FILTER_P_Qp16(14,
+ Qp14, NewQp14,
+ {Qp1, Qp2, Qp3, Qp4, Qp5,
+ Qp6, Qp7, Qp8, Qp9, Qp10, Qp11,
+ Qp12, Qp13, NewQp14, Qp15, Qp16});
+?FILTER_P_Qp16(15,
+ Qp15, NewQp15,
+ {Qp1, Qp2, Qp3, Qp4, Qp5,
+ Qp6, Qp7, Qp8, Qp9, Qp10, Qp11,
+ Qp12, Qp13, Qp14, NewQp15, Qp16});
+?FILTER_P_Qp16(16,
+ Qp16, NewQp16,
+ {Qp1, Qp2, Qp3, Qp4, Qp5,
+ Qp6, Qp7, Qp8, Qp9, Qp10, Qp11,
+ Qp12, Qp13, Qp14, Qp15, NewQp16});
+?FILTER_P_Qp32(17,
+ Qp17, NewQp17,
+ {NewQp17, Qp18, Qp19, Qp20, Qp21,
+ Qp22, Qp23, Qp24, Qp25, Qp26, Qp27,
+ Qp28, Qp29, Qp30, Qp31, Qp32});
+?FILTER_P_Qp32(18,
+ Qp18, NewQp18,
+ {Qp17, NewQp18, Qp19, Qp20, Qp21,
+ Qp22, Qp23, Qp24, Qp25, Qp26, Qp27,
+ Qp28, Qp29, Qp30, Qp31, Qp32});
+?FILTER_P_Qp32(19,
+ Qp19, NewQp19,
+ {Qp17, Qp18, NewQp19, Qp20, Qp21,
+ Qp22, Qp23, Qp24, Qp25, Qp26, Qp27,
+ Qp28, Qp29, Qp30, Qp31, Qp32});
+?FILTER_P_Qp32(20,
+ Qp20, NewQp20,
+ {Qp17, Qp18, Qp19, NewQp20, Qp21,
+ Qp22, Qp23, Qp24, Qp25, Qp26, Qp27,
+ Qp28, Qp29, Qp30, Qp31, Qp32});
+?FILTER_P_Qp32(21,
+ Qp21, NewQp21,
+ {Qp17, Qp18, Qp19, Qp20, NewQp21,
+ Qp22, Qp23, Qp24, Qp25, Qp26, Qp27,
+ Qp28, Qp29, Qp30, Qp31, Qp32});
+?FILTER_P_Qp32(22,
+ Qp22, NewQp22,
+ {Qp17, Qp18, Qp19, Qp20, Qp21,
+ NewQp22, Qp23, Qp24, Qp25, Qp26, Qp27,
+ Qp28, Qp29, Qp30, Qp31, Qp32});
+?FILTER_P_Qp32(23,
+ Qp23, NewQp23,
+ {Qp17, Qp18, Qp19, Qp20, Qp21,
+ Qp22, NewQp23, Qp24, Qp25, Qp26, Qp27,
+ Qp28, Qp29, Qp30, Qp31, Qp32});
+?FILTER_P_Qp32(24,
+ Qp24, NewQp24,
+ {Qp17, Qp18, Qp19, Qp20, Qp21,
+ Qp22, Qp23, NewQp24, Qp25, Qp26, Qp27,
+ Qp28, Qp29, Qp30, Qp31, Qp32});
+?FILTER_P_Qp32(25,
+ Qp25, NewQp25,
+ {Qp17, Qp18, Qp19, Qp20, Qp21,
+ Qp22, Qp23, Qp24, NewQp25, Qp26, Qp27,
+ Qp28, Qp29, Qp30, Qp31, Qp32});
+?FILTER_P_Qp32(26,
+ Qp26, NewQp26,
+ {Qp17, Qp18, Qp19, Qp20, Qp21,
+ Qp22, Qp23, Qp24, Qp25, NewQp26, Qp27,
+ Qp28, Qp29, Qp30, Qp31, Qp32});
+?FILTER_P_Qp32(27,
+ Qp27, NewQp27,
+ {Qp17, Qp18, Qp19, Qp20, Qp21,
+ Qp22, Qp23, Qp24, Qp25, Qp26, NewQp27,
+ Qp28, Qp29, Qp30, Qp31, Qp32});
+?FILTER_P_Qp32(28,
+ Qp28, NewQp28,
+ {Qp17, Qp18, Qp19, Qp20, Qp21,
+ Qp22, Qp23, Qp24, Qp25, Qp26, Qp27,
+ NewQp28, Qp29, Qp30, Qp31, Qp32});
+?FILTER_P_Qp32(29,
+ Qp29, NewQp29,
+ {Qp17, Qp18, Qp19, Qp20, Qp21,
+ Qp22, Qp23, Qp24, Qp25, Qp26, Qp27,
+ Qp28, NewQp29, Qp30, Qp31, Qp32});
+?FILTER_P_Qp32(30,
+ Qp30, NewQp30,
+ {Qp17, Qp18, Qp19, Qp20, Qp21,
+ Qp22, Qp23, Qp24, Qp25, Qp26, Qp27,
+ Qp28, Qp29, NewQp30, Qp31, Qp32});
+?FILTER_P_Qp32(31,
+ Qp31, NewQp31,
+ {Qp17, Qp18, Qp19, Qp20, Qp21,
+ Qp22, Qp23, Qp24, Qp25, Qp26, Qp27,
+ Qp28, Qp29, Qp30, NewQp31, Qp32});
+?FILTER_P_Qp32(32,
+ Qp32, NewQp32,
+ {Qp17, Qp18, Qp19, Qp20, Qp21,
+ Qp22, Qp23, Qp24, Qp25, Qp26, Qp27,
+ Qp28, Qp29, Qp30, Qp31, NewQp32});
+?FILTER_P_Qp48(33,
+ Qp33, NewQp33,
+ {NewQp33, Qp34, Qp35, Qp36, Qp37,
+ Qp38, Qp39, Qp40, Qp41, Qp42, Qp43,
+ Qp44, Qp45, Qp46, Qp47, Qp48});
+?FILTER_P_Qp48(34,
+ Qp34, NewQp34,
+ {Qp33, NewQp34, Qp35, Qp36, Qp37,
+ Qp38, Qp39, Qp40, Qp41, Qp42, Qp43,
+ Qp44, Qp45, Qp46, Qp47, Qp48});
+?FILTER_P_Qp48(35,
+ Qp35, NewQp35,
+ {Qp33, Qp34, NewQp35, Qp36, Qp37,
+ Qp38, Qp39, Qp40, Qp41, Qp42, Qp43,
+ Qp44, Qp45, Qp46, Qp47, Qp48});
+?FILTER_P_Qp48(36,
+ Qp36, NewQp36,
+ {Qp33, Qp34, Qp35, NewQp36, Qp37,
+ Qp38, Qp39, Qp40, Qp41, Qp42, Qp43,
+ Qp44, Qp45, Qp46, Qp47, Qp48});
+?FILTER_P_Qp48(37,
+ Qp37, NewQp37,
+ {Qp33, Qp34, Qp35, Qp36, NewQp37,
+ Qp38, Qp39, Qp40, Qp41, Qp42, Qp43,
+ Qp44, Qp45, Qp46, Qp47, Qp48});
+?FILTER_P_Qp48(38,
+ Qp38, NewQp38,
+ {Qp33, Qp34, Qp35, Qp36, Qp37,
+ NewQp38, Qp39, Qp40, Qp41, Qp42, Qp43,
+ Qp44, Qp45, Qp46, Qp47, Qp48});
+?FILTER_P_Qp48(39,
+ Qp39, NewQp39,
+ {Qp33, Qp34, Qp35, Qp36, Qp37,
+ Qp38, NewQp39, Qp40, Qp41, Qp42, Qp43,
+ Qp44, Qp45, Qp46, Qp47, Qp48});
+?FILTER_P_Qp48(40,
+ Qp40, NewQp40,
+ {Qp33, Qp34, Qp35, Qp36, Qp37,
+ Qp38, Qp39, NewQp40, Qp41, Qp42, Qp43,
+ Qp44, Qp45, Qp46, Qp47, Qp48});
+?FILTER_P_Qp48(41,
+ Qp41, NewQp41,
+ {Qp33, Qp34, Qp35, Qp36, Qp37,
+ Qp38, Qp39, Qp40, NewQp41, Qp42, Qp43,
+ Qp44, Qp45, Qp46, Qp47, Qp48});
+?FILTER_P_Qp48(42,
+ Qp42, NewQp42,
+ {Qp33, Qp34, Qp35, Qp36, Qp37,
+ Qp38, Qp39, Qp40, Qp41, NewQp42, Qp43,
+ Qp44, Qp45, Qp46, Qp47, Qp48});
+?FILTER_P_Qp48(43,
+ Qp43, NewQp43,
+ {Qp33, Qp34, Qp35, Qp36, Qp37,
+ Qp38, Qp39, Qp40, Qp41, Qp42, NewQp43,
+ Qp44, Qp45, Qp46, Qp47, Qp48});
+?FILTER_P_Qp48(44,
+ Qp44, NewQp44,
+ {Qp33, Qp34, Qp35, Qp36, Qp37,
+ Qp38, Qp39, Qp40, Qp41, Qp42, Qp43,
+ NewQp44, Qp45, Qp46, Qp47, Qp48});
+?FILTER_P_Qp48(45,
+ Qp45, NewQp45,
+ {Qp33, Qp34, Qp35, Qp36, Qp37,
+ Qp38, Qp39, Qp40, Qp41, Qp42, Qp43,
+ Qp44, NewQp45, Qp46, Qp47, Qp48});
+?FILTER_P_Qp48(46,
+ Qp46, NewQp46,
+ {Qp33, Qp34, Qp35, Qp36, Qp37,
+ Qp38, Qp39, Qp40, Qp41, Qp42, Qp43,
+ Qp44, Qp45, NewQp46, Qp47, Qp48});
+?FILTER_P_Qp48(47,
+ Qp47, NewQp47,
+ {Qp33, Qp34, Qp35, Qp36, Qp37,
+ Qp38, Qp39, Qp40, Qp41, Qp42, Qp43,
+ Qp44, Qp45, Qp46, NewQp47, Qp48});
+?FILTER_P_Qp48(48,
+ Qp48, NewQp48,
+ {Qp33, Qp34, Qp35, Qp36, Qp37,
+ Qp38, Qp39, Qp40, Qp41, Qp42, Qp43,
+ Qp44, Qp45, Qp46, Qp47, NewQp48});
+?FILTER_P_Qp64(49,
+ Qp49, NewQp49,
+ {NewQp49, Qp50, Qp51, Qp52, Qp53,
+ Qp54, Qp55, Qp56, Qp57, Qp58, Qp59,
+ Qp60, Qp61, Qp62, Qp63, Qp64});
+?FILTER_P_Qp64(50,
+ Qp50, NewQp50,
+ {Qp49, NewQp50, Qp51, Qp52, Qp53,
+ Qp54, Qp55, Qp56, Qp57, Qp58, Qp59,
+ Qp60, Qp61, Qp62, Qp63, Qp64});
+?FILTER_P_Qp64(51,
+ Qp51, NewQp51,
+ {Qp49, Qp50, NewQp51, Qp52, Qp53,
+ Qp54, Qp55, Qp56, Qp57, Qp58, Qp59,
+ Qp60, Qp61, Qp62, Qp63, Qp64});
+?FILTER_P_Qp64(52,
+ Qp52, NewQp52,
+ {Qp49, Qp50, Qp51, NewQp52, Qp53,
+ Qp54, Qp55, Qp56, Qp57, Qp58, Qp59,
+ Qp60, Qp61, Qp62, Qp63, Qp64});
+?FILTER_P_Qp64(53,
+ Qp53, NewQp53,
+ {Qp49, Qp50, Qp51, Qp52, NewQp53,
+ Qp54, Qp55, Qp56, Qp57, Qp58, Qp59,
+ Qp60, Qp61, Qp62, Qp63, Qp64});
+?FILTER_P_Qp64(54,
+ Qp54, NewQp54,
+ {Qp49, Qp50, Qp51, Qp52, Qp53,
+ NewQp54, Qp55, Qp56, Qp57, Qp58, Qp59,
+ Qp60, Qp61, Qp62, Qp63, Qp64});
+?FILTER_P_Qp64(55,
+ Qp55, NewQp55,
+ {Qp49, Qp50, Qp51, Qp52, Qp53,
+ Qp54, NewQp55, Qp56, Qp57, Qp58, Qp59,
+ Qp60, Qp61, Qp62, Qp63, Qp64});
+?FILTER_P_Qp64(56,
+ Qp56, NewQp56,
+ {Qp49, Qp50, Qp51, Qp52, Qp53,
+ Qp54, Qp55, NewQp56, Qp57, Qp58, Qp59,
+ Qp60, Qp61, Qp62, Qp63, Qp64});
+?FILTER_P_Qp64(57,
+ Qp57, NewQp57,
+ {Qp49, Qp50, Qp51, Qp52, Qp53,
+ Qp54, Qp55, Qp56, NewQp57, Qp58, Qp59,
+ Qp60, Qp61, Qp62, Qp63, Qp64});
+?FILTER_P_Qp64(58,
+ Qp58, NewQp58,
+ {Qp49, Qp50, Qp51, Qp52, Qp53,
+ Qp54, Qp55, Qp56, Qp57, NewQp58, Qp59,
+ Qp60, Qp61, Qp62, Qp63, Qp64});
+?FILTER_P_Qp64(59,
+ Qp59, NewQp59,
+ {Qp49, Qp50, Qp51, Qp52, Qp53,
+ Qp54, Qp55, Qp56, Qp57, Qp58, NewQp59,
+ Qp60, Qp61, Qp62, Qp63, Qp64});
+?FILTER_P_Qp64(60,
+ Qp60, NewQp60,
+ {Qp49, Qp50, Qp51, Qp52, Qp53,
+ Qp54, Qp55, Qp56, Qp57, Qp58, Qp59,
+ NewQp60, Qp61, Qp62, Qp63, Qp64});
+?FILTER_P_Qp64(61,
+ Qp61, NewQp61,
+ {Qp49, Qp50, Qp51, Qp52, Qp53,
+ Qp54, Qp55, Qp56, Qp57, Qp58, Qp59,
+ Qp60, NewQp61, Qp62, Qp63, Qp64});
+?FILTER_P_Qp64(62,
+ Qp62, NewQp62,
+ {Qp49, Qp50, Qp51, Qp52, Qp53,
+ Qp54, Qp55, Qp56, Qp57, Qp58, Qp59,
+ Qp60, Qp61, NewQp62, Qp63, Qp64});
+?FILTER_P_Qp64(63,
+ Qp63, NewQp63,
+ {Qp49, Qp50, Qp51, Qp52, Qp53,
+ Qp54, Qp55, Qp56, Qp57, Qp58, Qp59,
+ Qp60, Qp61, Qp62, NewQp63, Qp64});
+?FILTER_P_Qp64(64,
+ Qp64, NewQp64,
+ {Qp49, Qp50, Qp51, Qp52, Qp53,
+ Qp54, Qp55, Qp56, Qp57, Qp58, Qp59,
+ Qp60, Qp61, Qp62, Qp63, NewQp64});
+?FILTER_P_Qp80(65,
+ Qp65, NewQp65,
+ {NewQp65, Qp66, Qp67, Qp68, Qp69,
+ Qp70, Qp71, Qp72, Qp73, Qp74, Qp75,
+ Qp76, Qp77, Qp78, Qp79, Qp80});
+?FILTER_P_Qp80(66,
+ Qp66, NewQp66,
+ {Qp65, NewQp66, Qp67, Qp68, Qp69,
+ Qp70, Qp71, Qp72, Qp73, Qp74, Qp75,
+ Qp76, Qp77, Qp78, Qp79, Qp80});
+?FILTER_P_Qp80(67,
+ Qp67, NewQp67,
+ {Qp65, Qp66, NewQp67, Qp68, Qp69,
+ Qp70, Qp71, Qp72, Qp73, Qp74, Qp75,
+ Qp76, Qp77, Qp78, Qp79, Qp80});
+?FILTER_P_Qp80(68,
+ Qp68, NewQp68,
+ {Qp65, Qp66, Qp67, NewQp68, Qp69,
+ Qp70, Qp71, Qp72, Qp73, Qp74, Qp75,
+ Qp76, Qp77, Qp78, Qp79, Qp80});
+?FILTER_P_Qp80(69,
+ Qp69, NewQp69,
+ {Qp65, Qp66, Qp67, Qp68, NewQp69,
+ Qp70, Qp71, Qp72, Qp73, Qp74, Qp75,
+ Qp76, Qp77, Qp78, Qp79, Qp80});
+?FILTER_P_Qp80(70,
+ Qp70, NewQp70,
+ {Qp65, Qp66, Qp67, Qp68, Qp69,
+ NewQp70, Qp71, Qp72, Qp73, Qp74, Qp75,
+ Qp76, Qp77, Qp78, Qp79, Qp80});
+?FILTER_P_Qp80(71,
+ Qp71, NewQp71,
+ {Qp65, Qp66, Qp67, Qp68, Qp69,
+ Qp70, NewQp71, Qp72, Qp73, Qp74, Qp75,
+ Qp76, Qp77, Qp78, Qp79, Qp80});
+?FILTER_P_Qp80(72,
+ Qp72, NewQp72,
+ {Qp65, Qp66, Qp67, Qp68, Qp69,
+ Qp70, Qp71, NewQp72, Qp73, Qp74, Qp75,
+ Qp76, Qp77, Qp78, Qp79, Qp80});
+?FILTER_P_Qp80(73,
+ Qp73, NewQp73,
+ {Qp65, Qp66, Qp67, Qp68, Qp69,
+ Qp70, Qp71, Qp72, NewQp73, Qp74, Qp75,
+ Qp76, Qp77, Qp78, Qp79, Qp80});
+?FILTER_P_Qp80(74,
+ Qp74, NewQp74,
+ {Qp65, Qp66, Qp67, Qp68, Qp69,
+ Qp70, Qp71, Qp72, Qp73, NewQp74, Qp75,
+ Qp76, Qp77, Qp78, Qp79, Qp80});
+?FILTER_P_Qp80(75,
+ Qp75, NewQp75,
+ {Qp65, Qp66, Qp67, Qp68, Qp69,
+ Qp70, Qp71, Qp72, Qp73, Qp74, NewQp75,
+ Qp76, Qp77, Qp78, Qp79, Qp80});
+?FILTER_P_Qp80(76,
+ Qp76, NewQp76,
+ {Qp65, Qp66, Qp67, Qp68, Qp69,
+ Qp70, Qp71, Qp72, Qp73, Qp74, Qp75,
+ NewQp76, Qp77, Qp78, Qp79, Qp80});
+?FILTER_P_Qp80(77,
+ Qp77, NewQp77,
+ {Qp65, Qp66, Qp67, Qp68, Qp69,
+ Qp70, Qp71, Qp72, Qp73, Qp74, Qp75,
+ Qp76, NewQp77, Qp78, Qp79, Qp80});
+?FILTER_P_Qp80(78,
+ Qp78, NewQp78,
+ {Qp65, Qp66, Qp67, Qp68, Qp69,
+ Qp70, Qp71, Qp72, Qp73, Qp74, Qp75,
+ Qp76, Qp77, NewQp78, Qp79, Qp80});
+?FILTER_P_Qp80(79,
+ Qp79, NewQp79,
+ {Qp65, Qp66, Qp67, Qp68, Qp69,
+ Qp70, Qp71, Qp72, Qp73, Qp74, Qp75,
+ Qp76, Qp77, Qp78, NewQp79, Qp80});
+?FILTER_P_Qp80(80,
+ Qp80, NewQp80,
+ {Qp65, Qp66, Qp67, Qp68, Qp69,
+ Qp70, Qp71, Qp72, Qp73, Qp74, Qp75,
+ Qp76, Qp77, Qp78, Qp79, NewQp80});
+?FILTER_P_Qp96(81,
+ Qp81, NewQp81,
+ {NewQp81, Qp82, Qp83, Qp84, Qp85,
+ Qp86, Qp87, Qp88, Qp89, Qp90, Qp91,
+ Qp92, Qp93, Qp94, Qp95, Qp96});
+?FILTER_P_Qp96(82,
+ Qp82, NewQp82,
+ {Qp81, NewQp82, Qp83, Qp84, Qp85,
+ Qp86, Qp87, Qp88, Qp89, Qp90, Qp91,
+ Qp92, Qp93, Qp94, Qp95, Qp96});
+?FILTER_P_Qp96(83,
+ Qp83, NewQp83,
+ {Qp81, Qp82, NewQp83, Qp84, Qp85,
+ Qp86, Qp87, Qp88, Qp89, Qp90, Qp91,
+ Qp92, Qp93, Qp94, Qp95, Qp96});
+?FILTER_P_Qp96(84,
+ Qp84, NewQp84,
+ {Qp81, Qp82, Qp83, NewQp84, Qp85,
+ Qp86, Qp87, Qp88, Qp89, Qp90, Qp91,
+ Qp92, Qp93, Qp94, Qp95, Qp96});
+?FILTER_P_Qp96(85,
+ Qp85, NewQp85,
+ {Qp81, Qp82, Qp83, Qp84, NewQp85,
+ Qp86, Qp87, Qp88, Qp89, Qp90, Qp91,
+ Qp92, Qp93, Qp94, Qp95, Qp96});
+?FILTER_P_Qp96(86,
+ Qp86, NewQp86,
+ {Qp81, Qp82, Qp83, Qp84, Qp85,
+ NewQp86, Qp87, Qp88, Qp89, Qp90, Qp91,
+ Qp92, Qp93, Qp94, Qp95, Qp96});
+?FILTER_P_Qp96(87,
+ Qp87, NewQp87,
+ {Qp81, Qp82, Qp83, Qp84, Qp85,
+ Qp86, NewQp87, Qp88, Qp89, Qp90, Qp91,
+ Qp92, Qp93, Qp94, Qp95, Qp96});
+?FILTER_P_Qp96(88,
+ Qp88, NewQp88,
+ {Qp81, Qp82, Qp83, Qp84, Qp85,
+ Qp86, Qp87, NewQp88, Qp89, Qp90, Qp91,
+ Qp92, Qp93, Qp94, Qp95, Qp96});
+?FILTER_P_Qp96(89,
+ Qp89, NewQp89,
+ {Qp81, Qp82, Qp83, Qp84, Qp85,
+ Qp86, Qp87, Qp88, NewQp89, Qp90, Qp91,
+ Qp92, Qp93, Qp94, Qp95, Qp96});
+?FILTER_P_Qp96(90,
+ Qp90, NewQp90,
+ {Qp81, Qp82, Qp83, Qp84, Qp85,
+ Qp86, Qp87, Qp88, Qp89, NewQp90, Qp91,
+ Qp92, Qp93, Qp94, Qp95, Qp96});
+?FILTER_P_Qp96(91,
+ Qp91, NewQp91,
+ {Qp81, Qp82, Qp83, Qp84, Qp85,
+ Qp86, Qp87, Qp88, Qp89, Qp90, NewQp91,
+ Qp92, Qp93, Qp94, Qp95, Qp96});
+?FILTER_P_Qp96(92,
+ Qp92, NewQp92,
+ {Qp81, Qp82, Qp83, Qp84, Qp85,
+ Qp86, Qp87, Qp88, Qp89, Qp90, Qp91,
+ NewQp92, Qp93, Qp94, Qp95, Qp96});
+?FILTER_P_Qp96(93,
+ Qp93, NewQp93,
+ {Qp81, Qp82, Qp83, Qp84, Qp85,
+ Qp86, Qp87, Qp88, Qp89, Qp90, Qp91,
+ Qp92, NewQp93, Qp94, Qp95, Qp96});
+?FILTER_P_Qp96(94,
+ Qp94, NewQp94,
+ {Qp81, Qp82, Qp83, Qp84, Qp85,
+ Qp86, Qp87, Qp88, Qp89, Qp90, Qp91,
+ Qp92, Qp93, NewQp94, Qp95, Qp96});
+?FILTER_P_Qp96(95,
+ Qp95, NewQp95,
+ {Qp81, Qp82, Qp83, Qp84, Qp85,
+ Qp86, Qp87, Qp88, Qp89, Qp90, Qp91,
+ Qp92, Qp93, Qp94, NewQp95, Qp96});
+?FILTER_P_Qp96(96,
+ Qp96, NewQp96,
+ {Qp81, Qp82, Qp83, Qp84, Qp85,
+ Qp86, Qp87, Qp88, Qp89, Qp90, Qp91,
+ Qp92, Qp93, Qp94, Qp95, NewQp96});
+?FILTER_P_Qp112(97,
+ Qp97, NewQp97,
+ {NewQp97, Qp98, Qp99, Qp100, Qp101,
+ Qp102, Qp103, Qp104, Qp105, Qp106, Qp107,
+ Qp108, Qp109, Qp110, Qp111, Qp112});
+?FILTER_P_Qp112(98,
+ Qp98, NewQp98,
+ {Qp97, NewQp98, Qp99, Qp100, Qp101,
+ Qp102, Qp103, Qp104, Qp105, Qp106, Qp107,
+ Qp108, Qp109, Qp110, Qp111, Qp112});
+?FILTER_P_Qp112(99,
+ Qp99, NewQp99,
+ {Qp97, Qp98, NewQp99, Qp100, Qp101,
+ Qp102, Qp103, Qp104, Qp105, Qp106, Qp107,
+ Qp108, Qp109, Qp110, Qp111, Qp112});
+?FILTER_P_Qp112(100,
+ Qp100, NewQp100,
+ {Qp97, Qp98, Qp99, NewQp100, Qp101,
+ Qp102, Qp103, Qp104, Qp105, Qp106, Qp107,
+ Qp108, Qp109, Qp110, Qp111, Qp112});
+?FILTER_P_Qp112(101,
+ Qp101, NewQp101,
+ {Qp97, Qp98, Qp99, Qp100, NewQp101,
+ Qp102, Qp103, Qp104, Qp105, Qp106, Qp107,
+ Qp108, Qp109, Qp110, Qp111, Qp112});
+?FILTER_P_Qp112(102,
+ Qp102, NewQp102,
+ {Qp97, Qp98, Qp99, Qp100, Qp101,
+ NewQp102, Qp103, Qp104, Qp105, Qp106, Qp107,
+ Qp108, Qp109, Qp110, Qp111, Qp112});
+?FILTER_P_Qp112(103,
+ Qp103, NewQp103,
+ {Qp97, Qp98, Qp99, Qp100, Qp101,
+ Qp102, NewQp103, Qp104, Qp105, Qp106, Qp107,
+ Qp108, Qp109, Qp110, Qp111, Qp112});
+?FILTER_P_Qp112(104,
+ Qp104, NewQp104,
+ {Qp97, Qp98, Qp99, Qp100, Qp101,
+ Qp102, Qp103, NewQp104, Qp105, Qp106, Qp107,
+ Qp108, Qp109, Qp110, Qp111, Qp112});
+?FILTER_P_Qp112(105,
+ Qp105, NewQp105,
+ {Qp97, Qp98, Qp99, Qp100, Qp101,
+ Qp102, Qp103, Qp104, NewQp105, Qp106, Qp107,
+ Qp108, Qp109, Qp110, Qp111, Qp112});
+?FILTER_P_Qp112(106,
+ Qp106, NewQp106,
+ {Qp97, Qp98, Qp99, Qp100, Qp101,
+ Qp102, Qp103, Qp104, Qp105, NewQp106, Qp107,
+ Qp108, Qp109, Qp110, Qp111, Qp112});
+?FILTER_P_Qp112(107,
+ Qp107, NewQp107,
+ {Qp97, Qp98, Qp99, Qp100, Qp101,
+ Qp102, Qp103, Qp104, Qp105, Qp106, NewQp107,
+ Qp108, Qp109, Qp110, Qp111, Qp112});
+?FILTER_P_Qp112(108,
+ Qp108, NewQp108,
+ {Qp97, Qp98, Qp99, Qp100, Qp101,
+ Qp102, Qp103, Qp104, Qp105, Qp106, Qp107,
+ NewQp108, Qp109, Qp110, Qp111, Qp112});
+?FILTER_P_Qp112(109,
+ Qp109, NewQp109,
+ {Qp97, Qp98, Qp99, Qp100, Qp101,
+ Qp102, Qp103, Qp104, Qp105, Qp106, Qp107,
+ Qp108, NewQp109, Qp110, Qp111, Qp112});
+?FILTER_P_Qp112(110,
+ Qp110, NewQp110,
+ {Qp97, Qp98, Qp99, Qp100, Qp101,
+ Qp102, Qp103, Qp104, Qp105, Qp106, Qp107,
+ Qp108, Qp109, NewQp110, Qp111, Qp112});
+?FILTER_P_Qp112(111,
+ Qp111, NewQp111,
+ {Qp97, Qp98, Qp99, Qp100, Qp101,
+ Qp102, Qp103, Qp104, Qp105, Qp106, Qp107,
+ Qp108, Qp109, Qp110, NewQp111, Qp112});
+?FILTER_P_Qp112(112,
+ Qp112, NewQp112,
+ {Qp97, Qp98, Qp99, Qp100, Qp101,
+ Qp102, Qp103, Qp104, Qp105, Qp106, Qp107,
+ Qp108, Qp109, Qp110, Qp111, NewQp112});
+?FILTER_P_Qp128(113,
+ Qp113, NewQp113,
+ {NewQp113, Qp114, Qp115, Qp116, Qp117,
+ Qp118, Qp119, Qp120, Qp121, Qp122, Qp123,
+ Qp124, Qp125, Qp126, Qp127, Qp128});
+?FILTER_P_Qp128(114,
+ Qp114, NewQp114,
+ {Qp113, NewQp114, Qp115, Qp116, Qp117,
+ Qp118, Qp119, Qp120, Qp121, Qp122, Qp123,
+ Qp124, Qp125, Qp126, Qp127, Qp128});
+?FILTER_P_Qp128(115,
+ Qp115, NewQp115,
+ {Qp113, Qp114, NewQp115, Qp116, Qp117,
+ Qp118, Qp119, Qp120, Qp121, Qp122, Qp123,
+ Qp124, Qp125, Qp126, Qp127, Qp128});
+?FILTER_P_Qp128(116,
+ Qp116, NewQp116,
+ {Qp113, Qp114, Qp115, NewQp116, Qp117,
+ Qp118, Qp119, Qp120, Qp121, Qp122, Qp123,
+ Qp124, Qp125, Qp126, Qp127, Qp128});
+?FILTER_P_Qp128(117,
+ Qp117, NewQp117,
+ {Qp113, Qp114, Qp115, Qp116, NewQp117,
+ Qp118, Qp119, Qp120, Qp121, Qp122, Qp123,
+ Qp124, Qp125, Qp126, Qp127, Qp128});
+?FILTER_P_Qp128(118,
+ Qp118, NewQp118,
+ {Qp113, Qp114, Qp115, Qp116, Qp117,
+ NewQp118, Qp119, Qp120, Qp121, Qp122, Qp123,
+ Qp124, Qp125, Qp126, Qp127, Qp128});
+?FILTER_P_Qp128(119,
+ Qp119, NewQp119,
+ {Qp113, Qp114, Qp115, Qp116, Qp117,
+ Qp118, NewQp119, Qp120, Qp121, Qp122, Qp123,
+ Qp124, Qp125, Qp126, Qp127, Qp128});
+?FILTER_P_Qp128(120,
+ Qp120, NewQp120,
+ {Qp113, Qp114, Qp115, Qp116, Qp117,
+ Qp118, Qp119, NewQp120, Qp121, Qp122, Qp123,
+ Qp124, Qp125, Qp126, Qp127, Qp128});
+?FILTER_P_Qp128(121,
+ Qp121, NewQp121,
+ {Qp113, Qp114, Qp115, Qp116, Qp117,
+ Qp118, Qp119, Qp120, NewQp121, Qp122, Qp123,
+ Qp124, Qp125, Qp126, Qp127, Qp128});
+?FILTER_P_Qp128(122,
+ Qp122, NewQp122,
+ {Qp113, Qp114, Qp115, Qp116, Qp117,
+ Qp118, Qp119, Qp120, Qp121, NewQp122, Qp123,
+ Qp124, Qp125, Qp126, Qp127, Qp128});
+?FILTER_P_Qp128(123,
+ Qp123, NewQp123,
+ {Qp113, Qp114, Qp115, Qp116, Qp117,
+ Qp118, Qp119, Qp120, Qp121, Qp122, NewQp123,
+ Qp124, Qp125, Qp126, Qp127, Qp128});
+?FILTER_P_Qp128(124,
+ Qp124, NewQp124,
+ {Qp113, Qp114, Qp115, Qp116, Qp117,
+ Qp118, Qp119, Qp120, Qp121, Qp122, Qp123,
+ NewQp124, Qp125, Qp126, Qp127, Qp128});
+?FILTER_P_Qp128(125,
+ Qp125, NewQp125,
+ {Qp113, Qp114, Qp115, Qp116, Qp117,
+ Qp118, Qp119, Qp120, Qp121, Qp122, Qp123,
+ Qp124, NewQp125, Qp126, Qp127, Qp128});
+?FILTER_P_Qp128(126,
+ Qp126, NewQp126,
+ {Qp113, Qp114, Qp115, Qp116, Qp117,
+ Qp118, Qp119, Qp120, Qp121, Qp122, Qp123,
+ Qp124, Qp125, NewQp126, Qp127, Qp128});
+?FILTER_P_Qp128(127,
+ Qp127, NewQp127,
+ {Qp113, Qp114, Qp115, Qp116, Qp117,
+ Qp118, Qp119, Qp120, Qp121, Qp122, Qp123,
+ Qp124, Qp125, Qp126, NewQp127, Qp128});
+?FILTER_P_Qp128(128,
+ Qp128, NewQp128,
+ {Qp113, Qp114, Qp115, Qp116, Qp117,
+ Qp118, Qp119, Qp120, Qp121, Qp122, Qp123,
+ Qp124, Qp125, Qp126, Qp127, NewQp128}).
+
+%% @hidden
+-define(IN_HIGHER_Qn128(P, V),
+in_higher(P,
+ {_,
+ Size,
+ {Qn128, Qn127, Qn126, Qn125, Qn124, Qn123, Qn122, Qn121,
+ Qn120, Qn119, Qn118, Qn117, Qn116, Qn115, Qn114, Qn113},
+ Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}, X) ->
+ {P,
+ Size + 1,
+ V,
+ Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}).
+-define(IN_HIGHER_Qn112(P, V),
+in_higher(P,
+ {_,
+ Size,
+ Qn128,
+ {Qn112, Qn111, Qn110, Qn109, Qn108, Qn107, Qn106, Qn105,
+ Qn104, Qn103, Qn102, Qn101, Qn100, Qn99, Qn98, Qn97},
+ Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}, X) ->
+ {P,
+ Size + 1,
+ Qn128,
+ V,
+ Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}).
+-define(IN_HIGHER_Qn96(P, V),
+in_higher(P,
+ {_,
+ Size,
+ Qn128, Qn112,
+ {Qn96, Qn95, Qn94, Qn93, Qn92, Qn91, Qn90, Qn89,
+ Qn88, Qn87, Qn86, Qn85, Qn84, Qn83, Qn82, Qn81},
+ Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}, X) ->
+ {P,
+ Size + 1,
+ Qn128, Qn112,
+ V,
+ Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}).
+-define(IN_HIGHER_Qn80(P, V),
+in_higher(P,
+ {_,
+ Size,
+ Qn128, Qn112, Qn96,
+ {Qn80, Qn79, Qn78, Qn77, Qn76, Qn75, Qn74, Qn73,
+ Qn72, Qn71, Qn70, Qn69, Qn68, Qn67, Qn66, Qn65},
+ Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}, X) ->
+ {P,
+ Size + 1,
+ Qn128, Qn112, Qn96,
+ V,
+ Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}).
+-define(IN_HIGHER_Qn64(P, V),
+in_higher(P,
+ {_,
+ Size,
+ Qn128, Qn112, Qn96, Qn80,
+ {Qn64, Qn63, Qn62, Qn61, Qn60, Qn59, Qn58, Qn57,
+ Qn56, Qn55, Qn54, Qn53, Qn52, Qn51, Qn50, Qn49},
+ Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}, X) ->
+ {P,
+ Size + 1,
+ Qn128, Qn112, Qn96, Qn80,
+ V,
+ Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}).
+-define(IN_HIGHER_Qn48(P, V),
+in_higher(P,
+ {_,
+ Size,
+ Qn128, Qn112, Qn96, Qn80, Qn64,
+ {Qn48, Qn47, Qn46, Qn45, Qn44, Qn43, Qn42, Qn41,
+ Qn40, Qn39, Qn38, Qn37, Qn36, Qn35, Qn34, Qn33},
+ Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}, X) ->
+ {P,
+ Size + 1,
+ Qn128, Qn112, Qn96, Qn80, Qn64,
+ V,
+ Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}).
+-define(IN_HIGHER_Qn32(P, V),
+in_higher(P,
+ {_,
+ Size,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48,
+ {Qn32, Qn31, Qn30, Qn29, Qn28, Qn27, Qn26, Qn25,
+ Qn24, Qn23, Qn22, Qn21, Qn20, Qn19, Qn18, Qn17},
+ Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}, X) ->
+ {P,
+ Size + 1,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48,
+ V,
+ Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}).
+-define(IN_HIGHER_Qn16(P, V),
+in_higher(P,
+ {_,
+ Size,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32,
+ {Qn16, Qn15, Qn14, Qn13, Qn12, Qn11, Qn10, Qn9,
+ Qn8, Qn7, Qn6, Qn5, Qn4, Qn3, Qn2, Qn1},
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}, X) ->
+ {P,
+ Size + 1,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32,
+ V,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}).
+-define(IN_HIGHER_Qp16(P, V),
+in_higher(P,
+ {_,
+ Size,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ {Qp1, Qp2, Qp3, Qp4, Qp5, Qp6, Qp7, Qp8,
+ Qp9, Qp10, Qp11, Qp12, Qp13, Qp14, Qp15, Qp16},
+ Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}, X) ->
+ {P,
+ Size + 1,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ V,
+ Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}).
+-define(IN_HIGHER_Qp32(P, V),
+in_higher(P,
+ {_,
+ Size,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16,
+ {Qp17, Qp18, Qp19, Qp20, Qp21, Qp22, Qp23, Qp24,
+ Qp25, Qp26, Qp27, Qp28, Qp29, Qp30, Qp31, Qp32},
+ Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}, X) ->
+ {P,
+ Size + 1,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16,
+ V,
+ Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}).
+-define(IN_HIGHER_Qp48(P, V),
+in_higher(P,
+ {_,
+ Size,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32,
+ {Qp33, Qp34, Qp35, Qp36, Qp37, Qp38, Qp39, Qp40,
+ Qp41, Qp42, Qp43, Qp44, Qp45, Qp46, Qp47, Qp48},
+ Qp64, Qp80, Qp96, Qp112, Qp128}, X) ->
+ {P,
+ Size + 1,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32,
+ V,
+ Qp64, Qp80, Qp96, Qp112, Qp128}).
+-define(IN_HIGHER_Qp64(P, V),
+in_higher(P,
+ {_,
+ Size,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48,
+ {Qp49, Qp50, Qp51, Qp52, Qp53, Qp54, Qp55, Qp56,
+ Qp57, Qp58, Qp59, Qp60, Qp61, Qp62, Qp63, Qp64},
+ Qp80, Qp96, Qp112, Qp128}, X) ->
+ {P,
+ Size + 1,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48,
+ V,
+ Qp80, Qp96, Qp112, Qp128}).
+-define(IN_HIGHER_Qp80(P, V),
+in_higher(P,
+ {_,
+ Size,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64,
+ {Qp65, Qp66, Qp67, Qp68, Qp69, Qp70, Qp71, Qp72,
+ Qp73, Qp74, Qp75, Qp76, Qp77, Qp78, Qp79, Qp80},
+ Qp96, Qp112, Qp128}, X) ->
+ {P,
+ Size + 1,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64,
+ V,
+ Qp96, Qp112, Qp128}).
+-define(IN_HIGHER_Qp96(P, V),
+in_higher(P,
+ {_,
+ Size,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80,
+ {Qp81, Qp82, Qp83, Qp84, Qp85, Qp86, Qp87, Qp88,
+ Qp89, Qp90, Qp91, Qp92, Qp93, Qp94, Qp95, Qp96},
+ Qp112, Qp128}, X) ->
+ {P,
+ Size + 1,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80,
+ V,
+ Qp112, Qp128}).
+-define(IN_HIGHER_Qp112(P, V),
+in_higher(P,
+ {_,
+ Size,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96,
+ {Qp97, Qp98, Qp99, Qp100, Qp101, Qp102, Qp103, Qp104,
+ Qp105, Qp106, Qp107, Qp108, Qp109, Qp110, Qp111, Qp112},
+ Qp128}, X) ->
+ {P,
+ Size + 1,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96,
+ V,
+ Qp128}).
+-define(IN_HIGHER_Qp128(P, V),
+in_higher(P,
+ {_,
+ Size,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112,
+ {Qp113, Qp114, Qp115, Qp116, Qp117, Qp118, Qp119, Qp120,
+ Qp121, Qp122, Qp123, Qp124, Qp125, Qp126, Qp127, Qp128}}, X) ->
+ {P,
+ Size + 1,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112,
+ V}).
+
+?IN_HIGHER_Qn128(-128,
+ {queue:in(X, Qn128), Qn127, Qn126, Qn125, Qn124,
+ Qn123, Qn122, Qn121, Qn120, Qn119, Qn118,
+ Qn117, Qn116, Qn115, Qn114, Qn113});
+?IN_HIGHER_Qn128(-127,
+ {Qn128, queue:in(X, Qn127), Qn126, Qn125, Qn124,
+ Qn123, Qn122, Qn121, Qn120, Qn119, Qn118,
+ Qn117, Qn116, Qn115, Qn114, Qn113});
+?IN_HIGHER_Qn128(-126,
+ {Qn128, Qn127, queue:in(X, Qn126), Qn125, Qn124,
+ Qn123, Qn122, Qn121, Qn120, Qn119, Qn118,
+ Qn117, Qn116, Qn115, Qn114, Qn113});
+?IN_HIGHER_Qn128(-125,
+ {Qn128, Qn127, Qn126, queue:in(X, Qn125), Qn124,
+ Qn123, Qn122, Qn121, Qn120, Qn119, Qn118,
+ Qn117, Qn116, Qn115, Qn114, Qn113});
+?IN_HIGHER_Qn128(-124,
+ {Qn128, Qn127, Qn126, Qn125, queue:in(X, Qn124),
+ Qn123, Qn122, Qn121, Qn120, Qn119, Qn118,
+ Qn117, Qn116, Qn115, Qn114, Qn113});
+?IN_HIGHER_Qn128(-123,
+ {Qn128, Qn127, Qn126, Qn125, Qn124,
+ queue:in(X, Qn123), Qn122, Qn121, Qn120, Qn119, Qn118,
+ Qn117, Qn116, Qn115, Qn114, Qn113});
+?IN_HIGHER_Qn128(-122,
+ {Qn128, Qn127, Qn126, Qn125, Qn124,
+ Qn123, queue:in(X, Qn122), Qn121, Qn120, Qn119, Qn118,
+ Qn117, Qn116, Qn115, Qn114, Qn113});
+?IN_HIGHER_Qn128(-121,
+ {Qn128, Qn127, Qn126, Qn125, Qn124,
+ Qn123, Qn122, queue:in(X, Qn121), Qn120, Qn119, Qn118,
+ Qn117, Qn116, Qn115, Qn114, Qn113});
+?IN_HIGHER_Qn128(-120,
+ {Qn128, Qn127, Qn126, Qn125, Qn124,
+ Qn123, Qn122, Qn121, queue:in(X, Qn120), Qn119, Qn118,
+ Qn117, Qn116, Qn115, Qn114, Qn113});
+?IN_HIGHER_Qn128(-119,
+ {Qn128, Qn127, Qn126, Qn125, Qn124,
+ Qn123, Qn122, Qn121, Qn120, queue:in(X, Qn119), Qn118,
+ Qn117, Qn116, Qn115, Qn114, Qn113});
+?IN_HIGHER_Qn128(-118,
+ {Qn128, Qn127, Qn126, Qn125, Qn124,
+ Qn123, Qn122, Qn121, Qn120, Qn119, queue:in(X, Qn118),
+ Qn117, Qn116, Qn115, Qn114, Qn113});
+?IN_HIGHER_Qn128(-117,
+ {Qn128, Qn127, Qn126, Qn125, Qn124,
+ Qn123, Qn122, Qn121, Qn120, Qn119, Qn118,
+ queue:in(X, Qn117), Qn116, Qn115, Qn114, Qn113});
+?IN_HIGHER_Qn128(-116,
+ {Qn128, Qn127, Qn126, Qn125, Qn124,
+ Qn123, Qn122, Qn121, Qn120, Qn119, Qn118,
+ Qn117, queue:in(X, Qn116), Qn115, Qn114, Qn113});
+?IN_HIGHER_Qn128(-115,
+ {Qn128, Qn127, Qn126, Qn125, Qn124,
+ Qn123, Qn122, Qn121, Qn120, Qn119, Qn118,
+ Qn117, Qn116, queue:in(X, Qn115), Qn114, Qn113});
+?IN_HIGHER_Qn128(-114,
+ {Qn128, Qn127, Qn126, Qn125, Qn124,
+ Qn123, Qn122, Qn121, Qn120, Qn119, Qn118,
+ Qn117, Qn116, Qn115, queue:in(X, Qn114), Qn113});
+?IN_HIGHER_Qn128(-113,
+ {Qn128, Qn127, Qn126, Qn125, Qn124,
+ Qn123, Qn122, Qn121, Qn120, Qn119, Qn118,
+ Qn117, Qn116, Qn115, Qn114, queue:in(X, Qn113)});
+?IN_HIGHER_Qn112(-112,
+ {queue:in(X, Qn112), Qn111, Qn110, Qn109, Qn108,
+ Qn107, Qn106, Qn105, Qn104, Qn103, Qn102,
+ Qn101, Qn100, Qn99, Qn98, Qn97});
+?IN_HIGHER_Qn112(-111,
+ {Qn112, queue:in(X, Qn111), Qn110, Qn109, Qn108,
+ Qn107, Qn106, Qn105, Qn104, Qn103, Qn102,
+ Qn101, Qn100, Qn99, Qn98, Qn97});
+?IN_HIGHER_Qn112(-110,
+ {Qn112, Qn111, queue:in(X, Qn110), Qn109, Qn108,
+ Qn107, Qn106, Qn105, Qn104, Qn103, Qn102,
+ Qn101, Qn100, Qn99, Qn98, Qn97});
+?IN_HIGHER_Qn112(-109,
+ {Qn112, Qn111, Qn110, queue:in(X, Qn109), Qn108,
+ Qn107, Qn106, Qn105, Qn104, Qn103, Qn102,
+ Qn101, Qn100, Qn99, Qn98, Qn97});
+?IN_HIGHER_Qn112(-108,
+ {Qn112, Qn111, Qn110, Qn109, queue:in(X, Qn108),
+ Qn107, Qn106, Qn105, Qn104, Qn103, Qn102,
+ Qn101, Qn100, Qn99, Qn98, Qn97});
+?IN_HIGHER_Qn112(-107,
+ {Qn112, Qn111, Qn110, Qn109, Qn108,
+ queue:in(X, Qn107), Qn106, Qn105, Qn104, Qn103, Qn102,
+ Qn101, Qn100, Qn99, Qn98, Qn97});
+?IN_HIGHER_Qn112(-106,
+ {Qn112, Qn111, Qn110, Qn109, Qn108,
+ Qn107, queue:in(X, Qn106), Qn105, Qn104, Qn103, Qn102,
+ Qn101, Qn100, Qn99, Qn98, Qn97});
+?IN_HIGHER_Qn112(-105,
+ {Qn112, Qn111, Qn110, Qn109, Qn108,
+ Qn107, Qn106, queue:in(X, Qn105), Qn104, Qn103, Qn102,
+ Qn101, Qn100, Qn99, Qn98, Qn97});
+?IN_HIGHER_Qn112(-104,
+ {Qn112, Qn111, Qn110, Qn109, Qn108,
+ Qn107, Qn106, Qn105, queue:in(X, Qn104), Qn103, Qn102,
+ Qn101, Qn100, Qn99, Qn98, Qn97});
+?IN_HIGHER_Qn112(-103,
+ {Qn112, Qn111, Qn110, Qn109, Qn108,
+ Qn107, Qn106, Qn105, Qn104, queue:in(X, Qn103), Qn102,
+ Qn101, Qn100, Qn99, Qn98, Qn97});
+?IN_HIGHER_Qn112(-102,
+ {Qn112, Qn111, Qn110, Qn109, Qn108,
+ Qn107, Qn106, Qn105, Qn104, Qn103, queue:in(X, Qn102),
+ Qn101, Qn100, Qn99, Qn98, Qn97});
+?IN_HIGHER_Qn112(-101,
+ {Qn112, Qn111, Qn110, Qn109, Qn108,
+ Qn107, Qn106, Qn105, Qn104, Qn103, Qn102,
+ queue:in(X, Qn101), Qn100, Qn99, Qn98, Qn97});
+?IN_HIGHER_Qn112(-100,
+ {Qn112, Qn111, Qn110, Qn109, Qn108,
+ Qn107, Qn106, Qn105, Qn104, Qn103, Qn102,
+ Qn101, queue:in(X, Qn100), Qn99, Qn98, Qn97});
+?IN_HIGHER_Qn112(-99,
+ {Qn112, Qn111, Qn110, Qn109, Qn108,
+ Qn107, Qn106, Qn105, Qn104, Qn103, Qn102,
+ Qn101, Qn100, queue:in(X, Qn99), Qn98, Qn97});
+?IN_HIGHER_Qn112(-98,
+ {Qn112, Qn111, Qn110, Qn109, Qn108,
+ Qn107, Qn106, Qn105, Qn104, Qn103, Qn102,
+ Qn101, Qn100, Qn99, queue:in(X, Qn98), Qn97});
+?IN_HIGHER_Qn112(-97,
+ {Qn112, Qn111, Qn110, Qn109, Qn108,
+ Qn107, Qn106, Qn105, Qn104, Qn103, Qn102,
+ Qn101, Qn100, Qn99, Qn98, queue:in(X, Qn97)});
+?IN_HIGHER_Qn96(-96,
+ {queue:in(X, Qn96), Qn95, Qn94, Qn93, Qn92,
+ Qn91, Qn90, Qn89, Qn88, Qn87, Qn86,
+ Qn85, Qn84, Qn83, Qn82, Qn81});
+?IN_HIGHER_Qn96(-95,
+ {Qn96, queue:in(X, Qn95), Qn94, Qn93, Qn92,
+ Qn91, Qn90, Qn89, Qn88, Qn87, Qn86,
+ Qn85, Qn84, Qn83, Qn82, Qn81});
+?IN_HIGHER_Qn96(-94,
+ {Qn96, Qn95, queue:in(X, Qn94), Qn93, Qn92,
+ Qn91, Qn90, Qn89, Qn88, Qn87, Qn86,
+ Qn85, Qn84, Qn83, Qn82, Qn81});
+?IN_HIGHER_Qn96(-93,
+ {Qn96, Qn95, Qn94, queue:in(X, Qn93), Qn92,
+ Qn91, Qn90, Qn89, Qn88, Qn87, Qn86,
+ Qn85, Qn84, Qn83, Qn82, Qn81});
+?IN_HIGHER_Qn96(-92,
+ {Qn96, Qn95, Qn94, Qn93, queue:in(X, Qn92),
+ Qn91, Qn90, Qn89, Qn88, Qn87, Qn86,
+ Qn85, Qn84, Qn83, Qn82, Qn81});
+?IN_HIGHER_Qn96(-91,
+ {Qn96, Qn95, Qn94, Qn93, Qn92,
+ queue:in(X, Qn91), Qn90, Qn89, Qn88, Qn87, Qn86,
+ Qn85, Qn84, Qn83, Qn82, Qn81});
+?IN_HIGHER_Qn96(-90,
+ {Qn96, Qn95, Qn94, Qn93, Qn92,
+ Qn91, queue:in(X, Qn90), Qn89, Qn88, Qn87, Qn86,
+ Qn85, Qn84, Qn83, Qn82, Qn81});
+?IN_HIGHER_Qn96(-89,
+ {Qn96, Qn95, Qn94, Qn93, Qn92,
+ Qn91, Qn90, queue:in(X, Qn89), Qn88, Qn87, Qn86,
+ Qn85, Qn84, Qn83, Qn82, Qn81});
+?IN_HIGHER_Qn96(-88,
+ {Qn96, Qn95, Qn94, Qn93, Qn92,
+ Qn91, Qn90, Qn89, queue:in(X, Qn88), Qn87, Qn86,
+ Qn85, Qn84, Qn83, Qn82, Qn81});
+?IN_HIGHER_Qn96(-87,
+ {Qn96, Qn95, Qn94, Qn93, Qn92,
+ Qn91, Qn90, Qn89, Qn88, queue:in(X, Qn87), Qn86,
+ Qn85, Qn84, Qn83, Qn82, Qn81});
+?IN_HIGHER_Qn96(-86,
+ {Qn96, Qn95, Qn94, Qn93, Qn92,
+ Qn91, Qn90, Qn89, Qn88, Qn87, queue:in(X, Qn86),
+ Qn85, Qn84, Qn83, Qn82, Qn81});
+?IN_HIGHER_Qn96(-85,
+ {Qn96, Qn95, Qn94, Qn93, Qn92,
+ Qn91, Qn90, Qn89, Qn88, Qn87, Qn86,
+ queue:in(X, Qn85), Qn84, Qn83, Qn82, Qn81});
+?IN_HIGHER_Qn96(-84,
+ {Qn96, Qn95, Qn94, Qn93, Qn92,
+ Qn91, Qn90, Qn89, Qn88, Qn87, Qn86,
+ Qn85, queue:in(X, Qn84), Qn83, Qn82, Qn81});
+?IN_HIGHER_Qn96(-83,
+ {Qn96, Qn95, Qn94, Qn93, Qn92,
+ Qn91, Qn90, Qn89, Qn88, Qn87, Qn86,
+ Qn85, Qn84, queue:in(X, Qn83), Qn82, Qn81});
+?IN_HIGHER_Qn96(-82,
+ {Qn96, Qn95, Qn94, Qn93, Qn92,
+ Qn91, Qn90, Qn89, Qn88, Qn87, Qn86,
+ Qn85, Qn84, Qn83, queue:in(X, Qn82), Qn81});
+?IN_HIGHER_Qn96(-81,
+ {Qn96, Qn95, Qn94, Qn93, Qn92,
+ Qn91, Qn90, Qn89, Qn88, Qn87, Qn86,
+ Qn85, Qn84, Qn83, Qn82, queue:in(X, Qn81)});
+?IN_HIGHER_Qn80(-80,
+ {queue:in(X, Qn80), Qn79, Qn78, Qn77, Qn76,
+ Qn75, Qn74, Qn73, Qn72, Qn71, Qn70,
+ Qn69, Qn68, Qn67, Qn66, Qn65});
+?IN_HIGHER_Qn80(-79,
+ {Qn80, queue:in(X, Qn79), Qn78, Qn77, Qn76,
+ Qn75, Qn74, Qn73, Qn72, Qn71, Qn70,
+ Qn69, Qn68, Qn67, Qn66, Qn65});
+?IN_HIGHER_Qn80(-78,
+ {Qn80, Qn79, queue:in(X, Qn78), Qn77, Qn76,
+ Qn75, Qn74, Qn73, Qn72, Qn71, Qn70,
+ Qn69, Qn68, Qn67, Qn66, Qn65});
+?IN_HIGHER_Qn80(-77,
+ {Qn80, Qn79, Qn78, queue:in(X, Qn77), Qn76,
+ Qn75, Qn74, Qn73, Qn72, Qn71, Qn70,
+ Qn69, Qn68, Qn67, Qn66, Qn65});
+?IN_HIGHER_Qn80(-76,
+ {Qn80, Qn79, Qn78, Qn77, queue:in(X, Qn76),
+ Qn75, Qn74, Qn73, Qn72, Qn71, Qn70,
+ Qn69, Qn68, Qn67, Qn66, Qn65});
+?IN_HIGHER_Qn80(-75,
+ {Qn80, Qn79, Qn78, Qn77, Qn76,
+ queue:in(X, Qn75), Qn74, Qn73, Qn72, Qn71, Qn70,
+ Qn69, Qn68, Qn67, Qn66, Qn65});
+?IN_HIGHER_Qn80(-74,
+ {Qn80, Qn79, Qn78, Qn77, Qn76,
+ Qn75, queue:in(X, Qn74), Qn73, Qn72, Qn71, Qn70,
+ Qn69, Qn68, Qn67, Qn66, Qn65});
+?IN_HIGHER_Qn80(-73,
+ {Qn80, Qn79, Qn78, Qn77, Qn76,
+ Qn75, Qn74, queue:in(X, Qn73), Qn72, Qn71, Qn70,
+ Qn69, Qn68, Qn67, Qn66, Qn65});
+?IN_HIGHER_Qn80(-72,
+ {Qn80, Qn79, Qn78, Qn77, Qn76,
+ Qn75, Qn74, Qn73, queue:in(X, Qn72), Qn71, Qn70,
+ Qn69, Qn68, Qn67, Qn66, Qn65});
+?IN_HIGHER_Qn80(-71,
+ {Qn80, Qn79, Qn78, Qn77, Qn76,
+ Qn75, Qn74, Qn73, Qn72, queue:in(X, Qn71), Qn70,
+ Qn69, Qn68, Qn67, Qn66, Qn65});
+?IN_HIGHER_Qn80(-70,
+ {Qn80, Qn79, Qn78, Qn77, Qn76,
+ Qn75, Qn74, Qn73, Qn72, Qn71, queue:in(X, Qn70),
+ Qn69, Qn68, Qn67, Qn66, Qn65});
+?IN_HIGHER_Qn80(-69,
+ {Qn80, Qn79, Qn78, Qn77, Qn76,
+ Qn75, Qn74, Qn73, Qn72, Qn71, Qn70,
+ queue:in(X, Qn69), Qn68, Qn67, Qn66, Qn65});
+?IN_HIGHER_Qn80(-68,
+ {Qn80, Qn79, Qn78, Qn77, Qn76,
+ Qn75, Qn74, Qn73, Qn72, Qn71, Qn70,
+ Qn69, queue:in(X, Qn68), Qn67, Qn66, Qn65});
+?IN_HIGHER_Qn80(-67,
+ {Qn80, Qn79, Qn78, Qn77, Qn76,
+ Qn75, Qn74, Qn73, Qn72, Qn71, Qn70,
+ Qn69, Qn68, queue:in(X, Qn67), Qn66, Qn65});
+?IN_HIGHER_Qn80(-66,
+ {Qn80, Qn79, Qn78, Qn77, Qn76,
+ Qn75, Qn74, Qn73, Qn72, Qn71, Qn70,
+ Qn69, Qn68, Qn67, queue:in(X, Qn66), Qn65});
+?IN_HIGHER_Qn80(-65,
+ {Qn80, Qn79, Qn78, Qn77, Qn76,
+ Qn75, Qn74, Qn73, Qn72, Qn71, Qn70,
+ Qn69, Qn68, Qn67, Qn66, queue:in(X, Qn65)});
+?IN_HIGHER_Qn64(-64,
+ {queue:in(X, Qn64), Qn63, Qn62, Qn61, Qn60,
+ Qn59, Qn58, Qn57, Qn56, Qn55, Qn54,
+ Qn53, Qn52, Qn51, Qn50, Qn49});
+?IN_HIGHER_Qn64(-63,
+ {Qn64, queue:in(X, Qn63), Qn62, Qn61, Qn60,
+ Qn59, Qn58, Qn57, Qn56, Qn55, Qn54,
+ Qn53, Qn52, Qn51, Qn50, Qn49});
+?IN_HIGHER_Qn64(-62,
+ {Qn64, Qn63, queue:in(X, Qn62), Qn61, Qn60,
+ Qn59, Qn58, Qn57, Qn56, Qn55, Qn54,
+ Qn53, Qn52, Qn51, Qn50, Qn49});
+?IN_HIGHER_Qn64(-61,
+ {Qn64, Qn63, Qn62, queue:in(X, Qn61), Qn60,
+ Qn59, Qn58, Qn57, Qn56, Qn55, Qn54,
+ Qn53, Qn52, Qn51, Qn50, Qn49});
+?IN_HIGHER_Qn64(-60,
+ {Qn64, Qn63, Qn62, Qn61, queue:in(X, Qn60),
+ Qn59, Qn58, Qn57, Qn56, Qn55, Qn54,
+ Qn53, Qn52, Qn51, Qn50, Qn49});
+?IN_HIGHER_Qn64(-59,
+ {Qn64, Qn63, Qn62, Qn61, Qn60,
+ queue:in(X, Qn59), Qn58, Qn57, Qn56, Qn55, Qn54,
+ Qn53, Qn52, Qn51, Qn50, Qn49});
+?IN_HIGHER_Qn64(-58,
+ {Qn64, Qn63, Qn62, Qn61, Qn60,
+ Qn59, queue:in(X, Qn58), Qn57, Qn56, Qn55, Qn54,
+ Qn53, Qn52, Qn51, Qn50, Qn49});
+?IN_HIGHER_Qn64(-57,
+ {Qn64, Qn63, Qn62, Qn61, Qn60,
+ Qn59, Qn58, queue:in(X, Qn57), Qn56, Qn55, Qn54,
+ Qn53, Qn52, Qn51, Qn50, Qn49});
+?IN_HIGHER_Qn64(-56,
+ {Qn64, Qn63, Qn62, Qn61, Qn60,
+ Qn59, Qn58, Qn57, queue:in(X, Qn56), Qn55, Qn54,
+ Qn53, Qn52, Qn51, Qn50, Qn49});
+?IN_HIGHER_Qn64(-55,
+ {Qn64, Qn63, Qn62, Qn61, Qn60,
+ Qn59, Qn58, Qn57, Qn56, queue:in(X, Qn55), Qn54,
+ Qn53, Qn52, Qn51, Qn50, Qn49});
+?IN_HIGHER_Qn64(-54,
+ {Qn64, Qn63, Qn62, Qn61, Qn60,
+ Qn59, Qn58, Qn57, Qn56, Qn55, queue:in(X, Qn54),
+ Qn53, Qn52, Qn51, Qn50, Qn49});
+?IN_HIGHER_Qn64(-53,
+ {Qn64, Qn63, Qn62, Qn61, Qn60,
+ Qn59, Qn58, Qn57, Qn56, Qn55, Qn54,
+ queue:in(X, Qn53), Qn52, Qn51, Qn50, Qn49});
+?IN_HIGHER_Qn64(-52,
+ {Qn64, Qn63, Qn62, Qn61, Qn60,
+ Qn59, Qn58, Qn57, Qn56, Qn55, Qn54,
+ Qn53, queue:in(X, Qn52), Qn51, Qn50, Qn49});
+?IN_HIGHER_Qn64(-51,
+ {Qn64, Qn63, Qn62, Qn61, Qn60,
+ Qn59, Qn58, Qn57, Qn56, Qn55, Qn54,
+ Qn53, Qn52, queue:in(X, Qn51), Qn50, Qn49});
+?IN_HIGHER_Qn64(-50,
+ {Qn64, Qn63, Qn62, Qn61, Qn60,
+ Qn59, Qn58, Qn57, Qn56, Qn55, Qn54,
+ Qn53, Qn52, Qn51, queue:in(X, Qn50), Qn49});
+?IN_HIGHER_Qn64(-49,
+ {Qn64, Qn63, Qn62, Qn61, Qn60,
+ Qn59, Qn58, Qn57, Qn56, Qn55, Qn54,
+ Qn53, Qn52, Qn51, Qn50, queue:in(X, Qn49)});
+?IN_HIGHER_Qn48(-48,
+ {queue:in(X, Qn48), Qn47, Qn46, Qn45, Qn44,
+ Qn43, Qn42, Qn41, Qn40, Qn39, Qn38,
+ Qn37, Qn36, Qn35, Qn34, Qn33});
+?IN_HIGHER_Qn48(-47,
+ {Qn48, queue:in(X, Qn47), Qn46, Qn45, Qn44,
+ Qn43, Qn42, Qn41, Qn40, Qn39, Qn38,
+ Qn37, Qn36, Qn35, Qn34, Qn33});
+?IN_HIGHER_Qn48(-46,
+ {Qn48, Qn47, queue:in(X, Qn46), Qn45, Qn44,
+ Qn43, Qn42, Qn41, Qn40, Qn39, Qn38,
+ Qn37, Qn36, Qn35, Qn34, Qn33});
+?IN_HIGHER_Qn48(-45,
+ {Qn48, Qn47, Qn46, queue:in(X, Qn45), Qn44,
+ Qn43, Qn42, Qn41, Qn40, Qn39, Qn38,
+ Qn37, Qn36, Qn35, Qn34, Qn33});
+?IN_HIGHER_Qn48(-44,
+ {Qn48, Qn47, Qn46, Qn45, queue:in(X, Qn44),
+ Qn43, Qn42, Qn41, Qn40, Qn39, Qn38,
+ Qn37, Qn36, Qn35, Qn34, Qn33});
+?IN_HIGHER_Qn48(-43,
+ {Qn48, Qn47, Qn46, Qn45, Qn44,
+ queue:in(X, Qn43), Qn42, Qn41, Qn40, Qn39, Qn38,
+ Qn37, Qn36, Qn35, Qn34, Qn33});
+?IN_HIGHER_Qn48(-42,
+ {Qn48, Qn47, Qn46, Qn45, Qn44,
+ Qn43, queue:in(X, Qn42), Qn41, Qn40, Qn39, Qn38,
+ Qn37, Qn36, Qn35, Qn34, Qn33});
+?IN_HIGHER_Qn48(-41,
+ {Qn48, Qn47, Qn46, Qn45, Qn44,
+ Qn43, Qn42, queue:in(X, Qn41), Qn40, Qn39, Qn38,
+ Qn37, Qn36, Qn35, Qn34, Qn33});
+?IN_HIGHER_Qn48(-40,
+ {Qn48, Qn47, Qn46, Qn45, Qn44,
+ Qn43, Qn42, Qn41, queue:in(X, Qn40), Qn39, Qn38,
+ Qn37, Qn36, Qn35, Qn34, Qn33});
+?IN_HIGHER_Qn48(-39,
+ {Qn48, Qn47, Qn46, Qn45, Qn44,
+ Qn43, Qn42, Qn41, Qn40, queue:in(X, Qn39), Qn38,
+ Qn37, Qn36, Qn35, Qn34, Qn33});
+?IN_HIGHER_Qn48(-38,
+ {Qn48, Qn47, Qn46, Qn45, Qn44,
+ Qn43, Qn42, Qn41, Qn40, Qn39, queue:in(X, Qn38),
+ Qn37, Qn36, Qn35, Qn34, Qn33});
+?IN_HIGHER_Qn48(-37,
+ {Qn48, Qn47, Qn46, Qn45, Qn44,
+ Qn43, Qn42, Qn41, Qn40, Qn39, Qn38,
+ queue:in(X, Qn37), Qn36, Qn35, Qn34, Qn33});
+?IN_HIGHER_Qn48(-36,
+ {Qn48, Qn47, Qn46, Qn45, Qn44,
+ Qn43, Qn42, Qn41, Qn40, Qn39, Qn38,
+ Qn37, queue:in(X, Qn36), Qn35, Qn34, Qn33});
+?IN_HIGHER_Qn48(-35,
+ {Qn48, Qn47, Qn46, Qn45, Qn44,
+ Qn43, Qn42, Qn41, Qn40, Qn39, Qn38,
+ Qn37, Qn36, queue:in(X, Qn35), Qn34, Qn33});
+?IN_HIGHER_Qn48(-34,
+ {Qn48, Qn47, Qn46, Qn45, Qn44,
+ Qn43, Qn42, Qn41, Qn40, Qn39, Qn38,
+ Qn37, Qn36, Qn35, queue:in(X, Qn34), Qn33});
+?IN_HIGHER_Qn48(-33,
+ {Qn48, Qn47, Qn46, Qn45, Qn44,
+ Qn43, Qn42, Qn41, Qn40, Qn39, Qn38,
+ Qn37, Qn36, Qn35, Qn34, queue:in(X, Qn33)});
+?IN_HIGHER_Qn32(-32,
+ {queue:in(X, Qn32), Qn31, Qn30, Qn29, Qn28,
+ Qn27, Qn26, Qn25, Qn24, Qn23, Qn22,
+ Qn21, Qn20, Qn19, Qn18, Qn17});
+?IN_HIGHER_Qn32(-31,
+ {Qn32, queue:in(X, Qn31), Qn30, Qn29, Qn28,
+ Qn27, Qn26, Qn25, Qn24, Qn23, Qn22,
+ Qn21, Qn20, Qn19, Qn18, Qn17});
+?IN_HIGHER_Qn32(-30,
+ {Qn32, Qn31, queue:in(X, Qn30), Qn29, Qn28,
+ Qn27, Qn26, Qn25, Qn24, Qn23, Qn22,
+ Qn21, Qn20, Qn19, Qn18, Qn17});
+?IN_HIGHER_Qn32(-29,
+ {Qn32, Qn31, Qn30, queue:in(X, Qn29), Qn28,
+ Qn27, Qn26, Qn25, Qn24, Qn23, Qn22,
+ Qn21, Qn20, Qn19, Qn18, Qn17});
+?IN_HIGHER_Qn32(-28,
+ {Qn32, Qn31, Qn30, Qn29, queue:in(X, Qn28),
+ Qn27, Qn26, Qn25, Qn24, Qn23, Qn22,
+ Qn21, Qn20, Qn19, Qn18, Qn17});
+?IN_HIGHER_Qn32(-27,
+ {Qn32, Qn31, Qn30, Qn29, Qn28,
+ queue:in(X, Qn27), Qn26, Qn25, Qn24, Qn23, Qn22,
+ Qn21, Qn20, Qn19, Qn18, Qn17});
+?IN_HIGHER_Qn32(-26,
+ {Qn32, Qn31, Qn30, Qn29, Qn28,
+ Qn27, queue:in(X, Qn26), Qn25, Qn24, Qn23, Qn22,
+ Qn21, Qn20, Qn19, Qn18, Qn17});
+?IN_HIGHER_Qn32(-25,
+ {Qn32, Qn31, Qn30, Qn29, Qn28,
+ Qn27, Qn26, queue:in(X, Qn25), Qn24, Qn23, Qn22,
+ Qn21, Qn20, Qn19, Qn18, Qn17});
+?IN_HIGHER_Qn32(-24,
+ {Qn32, Qn31, Qn30, Qn29, Qn28,
+ Qn27, Qn26, Qn25, queue:in(X, Qn24), Qn23, Qn22,
+ Qn21, Qn20, Qn19, Qn18, Qn17});
+?IN_HIGHER_Qn32(-23,
+ {Qn32, Qn31, Qn30, Qn29, Qn28,
+ Qn27, Qn26, Qn25, Qn24, queue:in(X, Qn23), Qn22,
+ Qn21, Qn20, Qn19, Qn18, Qn17});
+?IN_HIGHER_Qn32(-22,
+ {Qn32, Qn31, Qn30, Qn29, Qn28,
+ Qn27, Qn26, Qn25, Qn24, Qn23, queue:in(X, Qn22),
+ Qn21, Qn20, Qn19, Qn18, Qn17});
+?IN_HIGHER_Qn32(-21,
+ {Qn32, Qn31, Qn30, Qn29, Qn28,
+ Qn27, Qn26, Qn25, Qn24, Qn23, Qn22,
+ queue:in(X, Qn21), Qn20, Qn19, Qn18, Qn17});
+?IN_HIGHER_Qn32(-20,
+ {Qn32, Qn31, Qn30, Qn29, Qn28,
+ Qn27, Qn26, Qn25, Qn24, Qn23, Qn22,
+ Qn21, queue:in(X, Qn20), Qn19, Qn18, Qn17});
+?IN_HIGHER_Qn32(-19,
+ {Qn32, Qn31, Qn30, Qn29, Qn28,
+ Qn27, Qn26, Qn25, Qn24, Qn23, Qn22,
+ Qn21, Qn20, queue:in(X, Qn19), Qn18, Qn17});
+?IN_HIGHER_Qn32(-18,
+ {Qn32, Qn31, Qn30, Qn29, Qn28,
+ Qn27, Qn26, Qn25, Qn24, Qn23, Qn22,
+ Qn21, Qn20, Qn19, queue:in(X, Qn18), Qn17});
+?IN_HIGHER_Qn32(-17,
+ {Qn32, Qn31, Qn30, Qn29, Qn28,
+ Qn27, Qn26, Qn25, Qn24, Qn23, Qn22,
+ Qn21, Qn20, Qn19, Qn18, queue:in(X, Qn17)});
+?IN_HIGHER_Qn16(-16,
+ {queue:in(X, Qn16), Qn15, Qn14, Qn13, Qn12,
+ Qn11, Qn10, Qn9, Qn8, Qn7, Qn6,
+ Qn5, Qn4, Qn3, Qn2, Qn1});
+?IN_HIGHER_Qn16(-15,
+ {Qn16, queue:in(X, Qn15), Qn14, Qn13, Qn12,
+ Qn11, Qn10, Qn9, Qn8, Qn7, Qn6,
+ Qn5, Qn4, Qn3, Qn2, Qn1});
+?IN_HIGHER_Qn16(-14,
+ {Qn16, Qn15, queue:in(X, Qn14), Qn13, Qn12,
+ Qn11, Qn10, Qn9, Qn8, Qn7, Qn6,
+ Qn5, Qn4, Qn3, Qn2, Qn1});
+?IN_HIGHER_Qn16(-13,
+ {Qn16, Qn15, Qn14, queue:in(X, Qn13), Qn12,
+ Qn11, Qn10, Qn9, Qn8, Qn7, Qn6,
+ Qn5, Qn4, Qn3, Qn2, Qn1});
+?IN_HIGHER_Qn16(-12,
+ {Qn16, Qn15, Qn14, Qn13, queue:in(X, Qn12),
+ Qn11, Qn10, Qn9, Qn8, Qn7, Qn6,
+ Qn5, Qn4, Qn3, Qn2, Qn1});
+?IN_HIGHER_Qn16(-11,
+ {Qn16, Qn15, Qn14, Qn13, Qn12,
+ queue:in(X, Qn11), Qn10, Qn9, Qn8, Qn7, Qn6,
+ Qn5, Qn4, Qn3, Qn2, Qn1});
+?IN_HIGHER_Qn16(-10,
+ {Qn16, Qn15, Qn14, Qn13, Qn12,
+ Qn11, queue:in(X, Qn10), Qn9, Qn8, Qn7, Qn6,
+ Qn5, Qn4, Qn3, Qn2, Qn1});
+?IN_HIGHER_Qn16(-9,
+ {Qn16, Qn15, Qn14, Qn13, Qn12,
+ Qn11, Qn10, queue:in(X, Qn9), Qn8, Qn7, Qn6,
+ Qn5, Qn4, Qn3, Qn2, Qn1});
+?IN_HIGHER_Qn16(-8,
+ {Qn16, Qn15, Qn14, Qn13, Qn12,
+ Qn11, Qn10, Qn9, queue:in(X, Qn8), Qn7, Qn6,
+ Qn5, Qn4, Qn3, Qn2, Qn1});
+?IN_HIGHER_Qn16(-7,
+ {Qn16, Qn15, Qn14, Qn13, Qn12,
+ Qn11, Qn10, Qn9, Qn8, queue:in(X, Qn7), Qn6,
+ Qn5, Qn4, Qn3, Qn2, Qn1});
+?IN_HIGHER_Qn16(-6,
+ {Qn16, Qn15, Qn14, Qn13, Qn12,
+ Qn11, Qn10, Qn9, Qn8, Qn7, queue:in(X, Qn6),
+ Qn5, Qn4, Qn3, Qn2, Qn1});
+?IN_HIGHER_Qn16(-5,
+ {Qn16, Qn15, Qn14, Qn13, Qn12,
+ Qn11, Qn10, Qn9, Qn8, Qn7, Qn6,
+ queue:in(X, Qn5), Qn4, Qn3, Qn2, Qn1});
+?IN_HIGHER_Qn16(-4,
+ {Qn16, Qn15, Qn14, Qn13, Qn12,
+ Qn11, Qn10, Qn9, Qn8, Qn7, Qn6,
+ Qn5, queue:in(X, Qn4), Qn3, Qn2, Qn1});
+?IN_HIGHER_Qn16(-3,
+ {Qn16, Qn15, Qn14, Qn13, Qn12,
+ Qn11, Qn10, Qn9, Qn8, Qn7, Qn6,
+ Qn5, Qn4, queue:in(X, Qn3), Qn2, Qn1});
+?IN_HIGHER_Qn16(-2,
+ {Qn16, Qn15, Qn14, Qn13, Qn12,
+ Qn11, Qn10, Qn9, Qn8, Qn7, Qn6,
+ Qn5, Qn4, Qn3, queue:in(X, Qn2), Qn1});
+?IN_HIGHER_Qn16(-1,
+ {Qn16, Qn15, Qn14, Qn13, Qn12,
+ Qn11, Qn10, Qn9, Qn8, Qn7, Qn6,
+ Qn5, Qn4, Qn3, Qn2, queue:in(X, Qn1)});
+in_higher(0,
+ {_,
+ Size,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}, X) ->
+ {0,
+ Size + 1,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ queue:in(X, Q0),
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128};
+?IN_HIGHER_Qp16(1,
+ {queue:in(X, Qp1), Qp2, Qp3, Qp4, Qp5,
+ Qp6, Qp7, Qp8, Qp9, Qp10, Qp11,
+ Qp12, Qp13, Qp14, Qp15, Qp16});
+?IN_HIGHER_Qp16(2,
+ {Qp1, queue:in(X, Qp2), Qp3, Qp4, Qp5,
+ Qp6, Qp7, Qp8, Qp9, Qp10, Qp11,
+ Qp12, Qp13, Qp14, Qp15, Qp16});
+?IN_HIGHER_Qp16(3,
+ {Qp1, Qp2, queue:in(X, Qp3), Qp4, Qp5,
+ Qp6, Qp7, Qp8, Qp9, Qp10, Qp11,
+ Qp12, Qp13, Qp14, Qp15, Qp16});
+?IN_HIGHER_Qp16(4,
+ {Qp1, Qp2, Qp3, queue:in(X, Qp4), Qp5,
+ Qp6, Qp7, Qp8, Qp9, Qp10, Qp11,
+ Qp12, Qp13, Qp14, Qp15, Qp16});
+?IN_HIGHER_Qp16(5,
+ {Qp1, Qp2, Qp3, Qp4, queue:in(X, Qp5),
+ Qp6, Qp7, Qp8, Qp9, Qp10, Qp11,
+ Qp12, Qp13, Qp14, Qp15, Qp16});
+?IN_HIGHER_Qp16(6,
+ {Qp1, Qp2, Qp3, Qp4, Qp5,
+ queue:in(X, Qp6), Qp7, Qp8, Qp9, Qp10, Qp11,
+ Qp12, Qp13, Qp14, Qp15, Qp16});
+?IN_HIGHER_Qp16(7,
+ {Qp1, Qp2, Qp3, Qp4, Qp5,
+ Qp6, queue:in(X, Qp7), Qp8, Qp9, Qp10, Qp11,
+ Qp12, Qp13, Qp14, Qp15, Qp16});
+?IN_HIGHER_Qp16(8,
+ {Qp1, Qp2, Qp3, Qp4, Qp5,
+ Qp6, Qp7, queue:in(X, Qp8), Qp9, Qp10, Qp11,
+ Qp12, Qp13, Qp14, Qp15, Qp16});
+?IN_HIGHER_Qp16(9,
+ {Qp1, Qp2, Qp3, Qp4, Qp5,
+ Qp6, Qp7, Qp8, queue:in(X, Qp9), Qp10, Qp11,
+ Qp12, Qp13, Qp14, Qp15, Qp16});
+?IN_HIGHER_Qp16(10,
+ {Qp1, Qp2, Qp3, Qp4, Qp5,
+ Qp6, Qp7, Qp8, Qp9, queue:in(X, Qp10), Qp11,
+ Qp12, Qp13, Qp14, Qp15, Qp16});
+?IN_HIGHER_Qp16(11,
+ {Qp1, Qp2, Qp3, Qp4, Qp5,
+ Qp6, Qp7, Qp8, Qp9, Qp10, queue:in(X, Qp11),
+ Qp12, Qp13, Qp14, Qp15, Qp16});
+?IN_HIGHER_Qp16(12,
+ {Qp1, Qp2, Qp3, Qp4, Qp5,
+ Qp6, Qp7, Qp8, Qp9, Qp10, Qp11,
+ queue:in(X, Qp12), Qp13, Qp14, Qp15, Qp16});
+?IN_HIGHER_Qp16(13,
+ {Qp1, Qp2, Qp3, Qp4, Qp5,
+ Qp6, Qp7, Qp8, Qp9, Qp10, Qp11,
+ Qp12, queue:in(X, Qp13), Qp14, Qp15, Qp16});
+?IN_HIGHER_Qp16(14,
+ {Qp1, Qp2, Qp3, Qp4, Qp5,
+ Qp6, Qp7, Qp8, Qp9, Qp10, Qp11,
+ Qp12, Qp13, queue:in(X, Qp14), Qp15, Qp16});
+?IN_HIGHER_Qp16(15,
+ {Qp1, Qp2, Qp3, Qp4, Qp5,
+ Qp6, Qp7, Qp8, Qp9, Qp10, Qp11,
+ Qp12, Qp13, Qp14, queue:in(X, Qp15), Qp16});
+?IN_HIGHER_Qp16(16,
+ {Qp1, Qp2, Qp3, Qp4, Qp5,
+ Qp6, Qp7, Qp8, Qp9, Qp10, Qp11,
+ Qp12, Qp13, Qp14, Qp15, queue:in(X, Qp16)});
+?IN_HIGHER_Qp32(17,
+ {queue:in(X, Qp17), Qp18, Qp19, Qp20, Qp21,
+ Qp22, Qp23, Qp24, Qp25, Qp26, Qp27,
+ Qp28, Qp29, Qp30, Qp31, Qp32});
+?IN_HIGHER_Qp32(18,
+ {Qp17, queue:in(X, Qp18), Qp19, Qp20, Qp21,
+ Qp22, Qp23, Qp24, Qp25, Qp26, Qp27,
+ Qp28, Qp29, Qp30, Qp31, Qp32});
+?IN_HIGHER_Qp32(19,
+ {Qp17, Qp18, queue:in(X, Qp19), Qp20, Qp21,
+ Qp22, Qp23, Qp24, Qp25, Qp26, Qp27,
+ Qp28, Qp29, Qp30, Qp31, Qp32});
+?IN_HIGHER_Qp32(20,
+ {Qp17, Qp18, Qp19, queue:in(X, Qp20), Qp21,
+ Qp22, Qp23, Qp24, Qp25, Qp26, Qp27,
+ Qp28, Qp29, Qp30, Qp31, Qp32});
+?IN_HIGHER_Qp32(21,
+ {Qp17, Qp18, Qp19, Qp20, queue:in(X, Qp21),
+ Qp22, Qp23, Qp24, Qp25, Qp26, Qp27,
+ Qp28, Qp29, Qp30, Qp31, Qp32});
+?IN_HIGHER_Qp32(22,
+ {Qp17, Qp18, Qp19, Qp20, Qp21,
+ queue:in(X, Qp22), Qp23, Qp24, Qp25, Qp26, Qp27,
+ Qp28, Qp29, Qp30, Qp31, Qp32});
+?IN_HIGHER_Qp32(23,
+ {Qp17, Qp18, Qp19, Qp20, Qp21,
+ Qp22, queue:in(X, Qp23), Qp24, Qp25, Qp26, Qp27,
+ Qp28, Qp29, Qp30, Qp31, Qp32});
+?IN_HIGHER_Qp32(24,
+ {Qp17, Qp18, Qp19, Qp20, Qp21,
+ Qp22, Qp23, queue:in(X, Qp24), Qp25, Qp26, Qp27,
+ Qp28, Qp29, Qp30, Qp31, Qp32});
+?IN_HIGHER_Qp32(25,
+ {Qp17, Qp18, Qp19, Qp20, Qp21,
+ Qp22, Qp23, Qp24, queue:in(X, Qp25), Qp26, Qp27,
+ Qp28, Qp29, Qp30, Qp31, Qp32});
+?IN_HIGHER_Qp32(26,
+ {Qp17, Qp18, Qp19, Qp20, Qp21,
+ Qp22, Qp23, Qp24, Qp25, queue:in(X, Qp26), Qp27,
+ Qp28, Qp29, Qp30, Qp31, Qp32});
+?IN_HIGHER_Qp32(27,
+ {Qp17, Qp18, Qp19, Qp20, Qp21,
+ Qp22, Qp23, Qp24, Qp25, Qp26, queue:in(X, Qp27),
+ Qp28, Qp29, Qp30, Qp31, Qp32});
+?IN_HIGHER_Qp32(28,
+ {Qp17, Qp18, Qp19, Qp20, Qp21,
+ Qp22, Qp23, Qp24, Qp25, Qp26, Qp27,
+ queue:in(X, Qp28), Qp29, Qp30, Qp31, Qp32});
+?IN_HIGHER_Qp32(29,
+ {Qp17, Qp18, Qp19, Qp20, Qp21,
+ Qp22, Qp23, Qp24, Qp25, Qp26, Qp27,
+ Qp28, queue:in(X, Qp29), Qp30, Qp31, Qp32});
+?IN_HIGHER_Qp32(30,
+ {Qp17, Qp18, Qp19, Qp20, Qp21,
+ Qp22, Qp23, Qp24, Qp25, Qp26, Qp27,
+ Qp28, Qp29, queue:in(X, Qp30), Qp31, Qp32});
+?IN_HIGHER_Qp32(31,
+ {Qp17, Qp18, Qp19, Qp20, Qp21,
+ Qp22, Qp23, Qp24, Qp25, Qp26, Qp27,
+ Qp28, Qp29, Qp30, queue:in(X, Qp31), Qp32});
+?IN_HIGHER_Qp32(32,
+ {Qp17, Qp18, Qp19, Qp20, Qp21,
+ Qp22, Qp23, Qp24, Qp25, Qp26, Qp27,
+ Qp28, Qp29, Qp30, Qp31, queue:in(X, Qp32)});
+?IN_HIGHER_Qp48(33,
+ {queue:in(X, Qp33), Qp34, Qp35, Qp36, Qp37,
+ Qp38, Qp39, Qp40, Qp41, Qp42, Qp43,
+ Qp44, Qp45, Qp46, Qp47, Qp48});
+?IN_HIGHER_Qp48(34,
+ {Qp33, queue:in(X, Qp34), Qp35, Qp36, Qp37,
+ Qp38, Qp39, Qp40, Qp41, Qp42, Qp43,
+ Qp44, Qp45, Qp46, Qp47, Qp48});
+?IN_HIGHER_Qp48(35,
+ {Qp33, Qp34, queue:in(X, Qp35), Qp36, Qp37,
+ Qp38, Qp39, Qp40, Qp41, Qp42, Qp43,
+ Qp44, Qp45, Qp46, Qp47, Qp48});
+?IN_HIGHER_Qp48(36,
+ {Qp33, Qp34, Qp35, queue:in(X, Qp36), Qp37,
+ Qp38, Qp39, Qp40, Qp41, Qp42, Qp43,
+ Qp44, Qp45, Qp46, Qp47, Qp48});
+?IN_HIGHER_Qp48(37,
+ {Qp33, Qp34, Qp35, Qp36, queue:in(X, Qp37),
+ Qp38, Qp39, Qp40, Qp41, Qp42, Qp43,
+ Qp44, Qp45, Qp46, Qp47, Qp48});
+?IN_HIGHER_Qp48(38,
+ {Qp33, Qp34, Qp35, Qp36, Qp37,
+ queue:in(X, Qp38), Qp39, Qp40, Qp41, Qp42, Qp43,
+ Qp44, Qp45, Qp46, Qp47, Qp48});
+?IN_HIGHER_Qp48(39,
+ {Qp33, Qp34, Qp35, Qp36, Qp37,
+ Qp38, queue:in(X, Qp39), Qp40, Qp41, Qp42, Qp43,
+ Qp44, Qp45, Qp46, Qp47, Qp48});
+?IN_HIGHER_Qp48(40,
+ {Qp33, Qp34, Qp35, Qp36, Qp37,
+ Qp38, Qp39, queue:in(X, Qp40), Qp41, Qp42, Qp43,
+ Qp44, Qp45, Qp46, Qp47, Qp48});
+?IN_HIGHER_Qp48(41,
+ {Qp33, Qp34, Qp35, Qp36, Qp37,
+ Qp38, Qp39, Qp40, queue:in(X, Qp41), Qp42, Qp43,
+ Qp44, Qp45, Qp46, Qp47, Qp48});
+?IN_HIGHER_Qp48(42,
+ {Qp33, Qp34, Qp35, Qp36, Qp37,
+ Qp38, Qp39, Qp40, Qp41, queue:in(X, Qp42), Qp43,
+ Qp44, Qp45, Qp46, Qp47, Qp48});
+?IN_HIGHER_Qp48(43,
+ {Qp33, Qp34, Qp35, Qp36, Qp37,
+ Qp38, Qp39, Qp40, Qp41, Qp42, queue:in(X, Qp43),
+ Qp44, Qp45, Qp46, Qp47, Qp48});
+?IN_HIGHER_Qp48(44,
+ {Qp33, Qp34, Qp35, Qp36, Qp37,
+ Qp38, Qp39, Qp40, Qp41, Qp42, Qp43,
+ queue:in(X, Qp44), Qp45, Qp46, Qp47, Qp48});
+?IN_HIGHER_Qp48(45,
+ {Qp33, Qp34, Qp35, Qp36, Qp37,
+ Qp38, Qp39, Qp40, Qp41, Qp42, Qp43,
+ Qp44, queue:in(X, Qp45), Qp46, Qp47, Qp48});
+?IN_HIGHER_Qp48(46,
+ {Qp33, Qp34, Qp35, Qp36, Qp37,
+ Qp38, Qp39, Qp40, Qp41, Qp42, Qp43,
+ Qp44, Qp45, queue:in(X, Qp46), Qp47, Qp48});
+?IN_HIGHER_Qp48(47,
+ {Qp33, Qp34, Qp35, Qp36, Qp37,
+ Qp38, Qp39, Qp40, Qp41, Qp42, Qp43,
+ Qp44, Qp45, Qp46, queue:in(X, Qp47), Qp48});
+?IN_HIGHER_Qp48(48,
+ {Qp33, Qp34, Qp35, Qp36, Qp37,
+ Qp38, Qp39, Qp40, Qp41, Qp42, Qp43,
+ Qp44, Qp45, Qp46, Qp47, queue:in(X, Qp48)});
+?IN_HIGHER_Qp64(49,
+ {queue:in(X, Qp49), Qp50, Qp51, Qp52, Qp53,
+ Qp54, Qp55, Qp56, Qp57, Qp58, Qp59,
+ Qp60, Qp61, Qp62, Qp63, Qp64});
+?IN_HIGHER_Qp64(50,
+ {Qp49, queue:in(X, Qp50), Qp51, Qp52, Qp53,
+ Qp54, Qp55, Qp56, Qp57, Qp58, Qp59,
+ Qp60, Qp61, Qp62, Qp63, Qp64});
+?IN_HIGHER_Qp64(51,
+ {Qp49, Qp50, queue:in(X, Qp51), Qp52, Qp53,
+ Qp54, Qp55, Qp56, Qp57, Qp58, Qp59,
+ Qp60, Qp61, Qp62, Qp63, Qp64});
+?IN_HIGHER_Qp64(52,
+ {Qp49, Qp50, Qp51, queue:in(X, Qp52), Qp53,
+ Qp54, Qp55, Qp56, Qp57, Qp58, Qp59,
+ Qp60, Qp61, Qp62, Qp63, Qp64});
+?IN_HIGHER_Qp64(53,
+ {Qp49, Qp50, Qp51, Qp52, queue:in(X, Qp53),
+ Qp54, Qp55, Qp56, Qp57, Qp58, Qp59,
+ Qp60, Qp61, Qp62, Qp63, Qp64});
+?IN_HIGHER_Qp64(54,
+ {Qp49, Qp50, Qp51, Qp52, Qp53,
+ queue:in(X, Qp54), Qp55, Qp56, Qp57, Qp58, Qp59,
+ Qp60, Qp61, Qp62, Qp63, Qp64});
+?IN_HIGHER_Qp64(55,
+ {Qp49, Qp50, Qp51, Qp52, Qp53,
+ Qp54, queue:in(X, Qp55), Qp56, Qp57, Qp58, Qp59,
+ Qp60, Qp61, Qp62, Qp63, Qp64});
+?IN_HIGHER_Qp64(56,
+ {Qp49, Qp50, Qp51, Qp52, Qp53,
+ Qp54, Qp55, queue:in(X, Qp56), Qp57, Qp58, Qp59,
+ Qp60, Qp61, Qp62, Qp63, Qp64});
+?IN_HIGHER_Qp64(57,
+ {Qp49, Qp50, Qp51, Qp52, Qp53,
+ Qp54, Qp55, Qp56, queue:in(X, Qp57), Qp58, Qp59,
+ Qp60, Qp61, Qp62, Qp63, Qp64});
+?IN_HIGHER_Qp64(58,
+ {Qp49, Qp50, Qp51, Qp52, Qp53,
+ Qp54, Qp55, Qp56, Qp57, queue:in(X, Qp58), Qp59,
+ Qp60, Qp61, Qp62, Qp63, Qp64});
+?IN_HIGHER_Qp64(59,
+ {Qp49, Qp50, Qp51, Qp52, Qp53,
+ Qp54, Qp55, Qp56, Qp57, Qp58, queue:in(X, Qp59),
+ Qp60, Qp61, Qp62, Qp63, Qp64});
+?IN_HIGHER_Qp64(60,
+ {Qp49, Qp50, Qp51, Qp52, Qp53,
+ Qp54, Qp55, Qp56, Qp57, Qp58, Qp59,
+ queue:in(X, Qp60), Qp61, Qp62, Qp63, Qp64});
+?IN_HIGHER_Qp64(61,
+ {Qp49, Qp50, Qp51, Qp52, Qp53,
+ Qp54, Qp55, Qp56, Qp57, Qp58, Qp59,
+ Qp60, queue:in(X, Qp61), Qp62, Qp63, Qp64});
+?IN_HIGHER_Qp64(62,
+ {Qp49, Qp50, Qp51, Qp52, Qp53,
+ Qp54, Qp55, Qp56, Qp57, Qp58, Qp59,
+ Qp60, Qp61, queue:in(X, Qp62), Qp63, Qp64});
+?IN_HIGHER_Qp64(63,
+ {Qp49, Qp50, Qp51, Qp52, Qp53,
+ Qp54, Qp55, Qp56, Qp57, Qp58, Qp59,
+ Qp60, Qp61, Qp62, queue:in(X, Qp63), Qp64});
+?IN_HIGHER_Qp64(64,
+ {Qp49, Qp50, Qp51, Qp52, Qp53,
+ Qp54, Qp55, Qp56, Qp57, Qp58, Qp59,
+ Qp60, Qp61, Qp62, Qp63, queue:in(X, Qp64)});
+?IN_HIGHER_Qp80(65,
+ {queue:in(X, Qp65), Qp66, Qp67, Qp68, Qp69,
+ Qp70, Qp71, Qp72, Qp73, Qp74, Qp75,
+ Qp76, Qp77, Qp78, Qp79, Qp80});
+?IN_HIGHER_Qp80(66,
+ {Qp65, queue:in(X, Qp66), Qp67, Qp68, Qp69,
+ Qp70, Qp71, Qp72, Qp73, Qp74, Qp75,
+ Qp76, Qp77, Qp78, Qp79, Qp80});
+?IN_HIGHER_Qp80(67,
+ {Qp65, Qp66, queue:in(X, Qp67), Qp68, Qp69,
+ Qp70, Qp71, Qp72, Qp73, Qp74, Qp75,
+ Qp76, Qp77, Qp78, Qp79, Qp80});
+?IN_HIGHER_Qp80(68,
+ {Qp65, Qp66, Qp67, queue:in(X, Qp68), Qp69,
+ Qp70, Qp71, Qp72, Qp73, Qp74, Qp75,
+ Qp76, Qp77, Qp78, Qp79, Qp80});
+?IN_HIGHER_Qp80(69,
+ {Qp65, Qp66, Qp67, Qp68, queue:in(X, Qp69),
+ Qp70, Qp71, Qp72, Qp73, Qp74, Qp75,
+ Qp76, Qp77, Qp78, Qp79, Qp80});
+?IN_HIGHER_Qp80(70,
+ {Qp65, Qp66, Qp67, Qp68, Qp69,
+ queue:in(X, Qp70), Qp71, Qp72, Qp73, Qp74, Qp75,
+ Qp76, Qp77, Qp78, Qp79, Qp80});
+?IN_HIGHER_Qp80(71,
+ {Qp65, Qp66, Qp67, Qp68, Qp69,
+ Qp70, queue:in(X, Qp71), Qp72, Qp73, Qp74, Qp75,
+ Qp76, Qp77, Qp78, Qp79, Qp80});
+?IN_HIGHER_Qp80(72,
+ {Qp65, Qp66, Qp67, Qp68, Qp69,
+ Qp70, Qp71, queue:in(X, Qp72), Qp73, Qp74, Qp75,
+ Qp76, Qp77, Qp78, Qp79, Qp80});
+?IN_HIGHER_Qp80(73,
+ {Qp65, Qp66, Qp67, Qp68, Qp69,
+ Qp70, Qp71, Qp72, queue:in(X, Qp73), Qp74, Qp75,
+ Qp76, Qp77, Qp78, Qp79, Qp80});
+?IN_HIGHER_Qp80(74,
+ {Qp65, Qp66, Qp67, Qp68, Qp69,
+ Qp70, Qp71, Qp72, Qp73, queue:in(X, Qp74), Qp75,
+ Qp76, Qp77, Qp78, Qp79, Qp80});
+?IN_HIGHER_Qp80(75,
+ {Qp65, Qp66, Qp67, Qp68, Qp69,
+ Qp70, Qp71, Qp72, Qp73, Qp74, queue:in(X, Qp75),
+ Qp76, Qp77, Qp78, Qp79, Qp80});
+?IN_HIGHER_Qp80(76,
+ {Qp65, Qp66, Qp67, Qp68, Qp69,
+ Qp70, Qp71, Qp72, Qp73, Qp74, Qp75,
+ queue:in(X, Qp76), Qp77, Qp78, Qp79, Qp80});
+?IN_HIGHER_Qp80(77,
+ {Qp65, Qp66, Qp67, Qp68, Qp69,
+ Qp70, Qp71, Qp72, Qp73, Qp74, Qp75,
+ Qp76, queue:in(X, Qp77), Qp78, Qp79, Qp80});
+?IN_HIGHER_Qp80(78,
+ {Qp65, Qp66, Qp67, Qp68, Qp69,
+ Qp70, Qp71, Qp72, Qp73, Qp74, Qp75,
+ Qp76, Qp77, queue:in(X, Qp78), Qp79, Qp80});
+?IN_HIGHER_Qp80(79,
+ {Qp65, Qp66, Qp67, Qp68, Qp69,
+ Qp70, Qp71, Qp72, Qp73, Qp74, Qp75,
+ Qp76, Qp77, Qp78, queue:in(X, Qp79), Qp80});
+?IN_HIGHER_Qp80(80,
+ {Qp65, Qp66, Qp67, Qp68, Qp69,
+ Qp70, Qp71, Qp72, Qp73, Qp74, Qp75,
+ Qp76, Qp77, Qp78, Qp79, queue:in(X, Qp80)});
+?IN_HIGHER_Qp96(81,
+ {queue:in(X, Qp81), Qp82, Qp83, Qp84, Qp85,
+ Qp86, Qp87, Qp88, Qp89, Qp90, Qp91,
+ Qp92, Qp93, Qp94, Qp95, Qp96});
+?IN_HIGHER_Qp96(82,
+ {Qp81, queue:in(X, Qp82), Qp83, Qp84, Qp85,
+ Qp86, Qp87, Qp88, Qp89, Qp90, Qp91,
+ Qp92, Qp93, Qp94, Qp95, Qp96});
+?IN_HIGHER_Qp96(83,
+ {Qp81, Qp82, queue:in(X, Qp83), Qp84, Qp85,
+ Qp86, Qp87, Qp88, Qp89, Qp90, Qp91,
+ Qp92, Qp93, Qp94, Qp95, Qp96});
+?IN_HIGHER_Qp96(84,
+ {Qp81, Qp82, Qp83, queue:in(X, Qp84), Qp85,
+ Qp86, Qp87, Qp88, Qp89, Qp90, Qp91,
+ Qp92, Qp93, Qp94, Qp95, Qp96});
+?IN_HIGHER_Qp96(85,
+ {Qp81, Qp82, Qp83, Qp84, queue:in(X, Qp85),
+ Qp86, Qp87, Qp88, Qp89, Qp90, Qp91,
+ Qp92, Qp93, Qp94, Qp95, Qp96});
+?IN_HIGHER_Qp96(86,
+ {Qp81, Qp82, Qp83, Qp84, Qp85,
+ queue:in(X, Qp86), Qp87, Qp88, Qp89, Qp90, Qp91,
+ Qp92, Qp93, Qp94, Qp95, Qp96});
+?IN_HIGHER_Qp96(87,
+ {Qp81, Qp82, Qp83, Qp84, Qp85,
+ Qp86, queue:in(X, Qp87), Qp88, Qp89, Qp90, Qp91,
+ Qp92, Qp93, Qp94, Qp95, Qp96});
+?IN_HIGHER_Qp96(88,
+ {Qp81, Qp82, Qp83, Qp84, Qp85,
+ Qp86, Qp87, queue:in(X, Qp88), Qp89, Qp90, Qp91,
+ Qp92, Qp93, Qp94, Qp95, Qp96});
+?IN_HIGHER_Qp96(89,
+ {Qp81, Qp82, Qp83, Qp84, Qp85,
+ Qp86, Qp87, Qp88, queue:in(X, Qp89), Qp90, Qp91,
+ Qp92, Qp93, Qp94, Qp95, Qp96});
+?IN_HIGHER_Qp96(90,
+ {Qp81, Qp82, Qp83, Qp84, Qp85,
+ Qp86, Qp87, Qp88, Qp89, queue:in(X, Qp90), Qp91,
+ Qp92, Qp93, Qp94, Qp95, Qp96});
+?IN_HIGHER_Qp96(91,
+ {Qp81, Qp82, Qp83, Qp84, Qp85,
+ Qp86, Qp87, Qp88, Qp89, Qp90, queue:in(X, Qp91),
+ Qp92, Qp93, Qp94, Qp95, Qp96});
+?IN_HIGHER_Qp96(92,
+ {Qp81, Qp82, Qp83, Qp84, Qp85,
+ Qp86, Qp87, Qp88, Qp89, Qp90, Qp91,
+ queue:in(X, Qp92), Qp93, Qp94, Qp95, Qp96});
+?IN_HIGHER_Qp96(93,
+ {Qp81, Qp82, Qp83, Qp84, Qp85,
+ Qp86, Qp87, Qp88, Qp89, Qp90, Qp91,
+ Qp92, queue:in(X, Qp93), Qp94, Qp95, Qp96});
+?IN_HIGHER_Qp96(94,
+ {Qp81, Qp82, Qp83, Qp84, Qp85,
+ Qp86, Qp87, Qp88, Qp89, Qp90, Qp91,
+ Qp92, Qp93, queue:in(X, Qp94), Qp95, Qp96});
+?IN_HIGHER_Qp96(95,
+ {Qp81, Qp82, Qp83, Qp84, Qp85,
+ Qp86, Qp87, Qp88, Qp89, Qp90, Qp91,
+ Qp92, Qp93, Qp94, queue:in(X, Qp95), Qp96});
+?IN_HIGHER_Qp96(96,
+ {Qp81, Qp82, Qp83, Qp84, Qp85,
+ Qp86, Qp87, Qp88, Qp89, Qp90, Qp91,
+ Qp92, Qp93, Qp94, Qp95, queue:in(X, Qp96)});
+?IN_HIGHER_Qp112(97,
+ {queue:in(X, Qp97), Qp98, Qp99, Qp100, Qp101,
+ Qp102, Qp103, Qp104, Qp105, Qp106, Qp107,
+ Qp108, Qp109, Qp110, Qp111, Qp112});
+?IN_HIGHER_Qp112(98,
+ {Qp97, queue:in(X, Qp98), Qp99, Qp100, Qp101,
+ Qp102, Qp103, Qp104, Qp105, Qp106, Qp107,
+ Qp108, Qp109, Qp110, Qp111, Qp112});
+?IN_HIGHER_Qp112(99,
+ {Qp97, Qp98, queue:in(X, Qp99), Qp100, Qp101,
+ Qp102, Qp103, Qp104, Qp105, Qp106, Qp107,
+ Qp108, Qp109, Qp110, Qp111, Qp112});
+?IN_HIGHER_Qp112(100,
+ {Qp97, Qp98, Qp99, queue:in(X, Qp100), Qp101,
+ Qp102, Qp103, Qp104, Qp105, Qp106, Qp107,
+ Qp108, Qp109, Qp110, Qp111, Qp112});
+?IN_HIGHER_Qp112(101,
+ {Qp97, Qp98, Qp99, Qp100, queue:in(X, Qp101),
+ Qp102, Qp103, Qp104, Qp105, Qp106, Qp107,
+ Qp108, Qp109, Qp110, Qp111, Qp112});
+?IN_HIGHER_Qp112(102,
+ {Qp97, Qp98, Qp99, Qp100, Qp101,
+ queue:in(X, Qp102), Qp103, Qp104, Qp105, Qp106, Qp107,
+ Qp108, Qp109, Qp110, Qp111, Qp112});
+?IN_HIGHER_Qp112(103,
+ {Qp97, Qp98, Qp99, Qp100, Qp101,
+ Qp102, queue:in(X, Qp103), Qp104, Qp105, Qp106, Qp107,
+ Qp108, Qp109, Qp110, Qp111, Qp112});
+?IN_HIGHER_Qp112(104,
+ {Qp97, Qp98, Qp99, Qp100, Qp101,
+ Qp102, Qp103, queue:in(X, Qp104), Qp105, Qp106, Qp107,
+ Qp108, Qp109, Qp110, Qp111, Qp112});
+?IN_HIGHER_Qp112(105,
+ {Qp97, Qp98, Qp99, Qp100, Qp101,
+ Qp102, Qp103, Qp104, queue:in(X, Qp105), Qp106, Qp107,
+ Qp108, Qp109, Qp110, Qp111, Qp112});
+?IN_HIGHER_Qp112(106,
+ {Qp97, Qp98, Qp99, Qp100, Qp101,
+ Qp102, Qp103, Qp104, Qp105, queue:in(X, Qp106), Qp107,
+ Qp108, Qp109, Qp110, Qp111, Qp112});
+?IN_HIGHER_Qp112(107,
+ {Qp97, Qp98, Qp99, Qp100, Qp101,
+ Qp102, Qp103, Qp104, Qp105, Qp106, queue:in(X, Qp107),
+ Qp108, Qp109, Qp110, Qp111, Qp112});
+?IN_HIGHER_Qp112(108,
+ {Qp97, Qp98, Qp99, Qp100, Qp101,
+ Qp102, Qp103, Qp104, Qp105, Qp106, Qp107,
+ queue:in(X, Qp108), Qp109, Qp110, Qp111, Qp112});
+?IN_HIGHER_Qp112(109,
+ {Qp97, Qp98, Qp99, Qp100, Qp101,
+ Qp102, Qp103, Qp104, Qp105, Qp106, Qp107,
+ Qp108, queue:in(X, Qp109), Qp110, Qp111, Qp112});
+?IN_HIGHER_Qp112(110,
+ {Qp97, Qp98, Qp99, Qp100, Qp101,
+ Qp102, Qp103, Qp104, Qp105, Qp106, Qp107,
+ Qp108, Qp109, queue:in(X, Qp110), Qp111, Qp112});
+?IN_HIGHER_Qp112(111,
+ {Qp97, Qp98, Qp99, Qp100, Qp101,
+ Qp102, Qp103, Qp104, Qp105, Qp106, Qp107,
+ Qp108, Qp109, Qp110, queue:in(X, Qp111), Qp112});
+?IN_HIGHER_Qp112(112,
+ {Qp97, Qp98, Qp99, Qp100, Qp101,
+ Qp102, Qp103, Qp104, Qp105, Qp106, Qp107,
+ Qp108, Qp109, Qp110, Qp111, queue:in(X, Qp112)});
+?IN_HIGHER_Qp128(113,
+ {queue:in(X, Qp113), Qp114, Qp115, Qp116, Qp117,
+ Qp118, Qp119, Qp120, Qp121, Qp122, Qp123,
+ Qp124, Qp125, Qp126, Qp127, Qp128});
+?IN_HIGHER_Qp128(114,
+ {Qp113, queue:in(X, Qp114), Qp115, Qp116, Qp117,
+ Qp118, Qp119, Qp120, Qp121, Qp122, Qp123,
+ Qp124, Qp125, Qp126, Qp127, Qp128});
+?IN_HIGHER_Qp128(115,
+ {Qp113, Qp114, queue:in(X, Qp115), Qp116, Qp117,
+ Qp118, Qp119, Qp120, Qp121, Qp122, Qp123,
+ Qp124, Qp125, Qp126, Qp127, Qp128});
+?IN_HIGHER_Qp128(116,
+ {Qp113, Qp114, Qp115, queue:in(X, Qp116), Qp117,
+ Qp118, Qp119, Qp120, Qp121, Qp122, Qp123,
+ Qp124, Qp125, Qp126, Qp127, Qp128});
+?IN_HIGHER_Qp128(117,
+ {Qp113, Qp114, Qp115, Qp116, queue:in(X, Qp117),
+ Qp118, Qp119, Qp120, Qp121, Qp122, Qp123,
+ Qp124, Qp125, Qp126, Qp127, Qp128});
+?IN_HIGHER_Qp128(118,
+ {Qp113, Qp114, Qp115, Qp116, Qp117,
+ queue:in(X, Qp118), Qp119, Qp120, Qp121, Qp122, Qp123,
+ Qp124, Qp125, Qp126, Qp127, Qp128});
+?IN_HIGHER_Qp128(119,
+ {Qp113, Qp114, Qp115, Qp116, Qp117,
+ Qp118, queue:in(X, Qp119), Qp120, Qp121, Qp122, Qp123,
+ Qp124, Qp125, Qp126, Qp127, Qp128});
+?IN_HIGHER_Qp128(120,
+ {Qp113, Qp114, Qp115, Qp116, Qp117,
+ Qp118, Qp119, queue:in(X, Qp120), Qp121, Qp122, Qp123,
+ Qp124, Qp125, Qp126, Qp127, Qp128});
+?IN_HIGHER_Qp128(121,
+ {Qp113, Qp114, Qp115, Qp116, Qp117,
+ Qp118, Qp119, Qp120, queue:in(X, Qp121), Qp122, Qp123,
+ Qp124, Qp125, Qp126, Qp127, Qp128});
+?IN_HIGHER_Qp128(122,
+ {Qp113, Qp114, Qp115, Qp116, Qp117,
+ Qp118, Qp119, Qp120, Qp121, queue:in(X, Qp122), Qp123,
+ Qp124, Qp125, Qp126, Qp127, Qp128});
+?IN_HIGHER_Qp128(123,
+ {Qp113, Qp114, Qp115, Qp116, Qp117,
+ Qp118, Qp119, Qp120, Qp121, Qp122, queue:in(X, Qp123),
+ Qp124, Qp125, Qp126, Qp127, Qp128});
+?IN_HIGHER_Qp128(124,
+ {Qp113, Qp114, Qp115, Qp116, Qp117,
+ Qp118, Qp119, Qp120, Qp121, Qp122, Qp123,
+ queue:in(X, Qp124), Qp125, Qp126, Qp127, Qp128});
+?IN_HIGHER_Qp128(125,
+ {Qp113, Qp114, Qp115, Qp116, Qp117,
+ Qp118, Qp119, Qp120, Qp121, Qp122, Qp123,
+ Qp124, queue:in(X, Qp125), Qp126, Qp127, Qp128});
+?IN_HIGHER_Qp128(126,
+ {Qp113, Qp114, Qp115, Qp116, Qp117,
+ Qp118, Qp119, Qp120, Qp121, Qp122, Qp123,
+ Qp124, Qp125, queue:in(X, Qp126), Qp127, Qp128});
+?IN_HIGHER_Qp128(127,
+ {Qp113, Qp114, Qp115, Qp116, Qp117,
+ Qp118, Qp119, Qp120, Qp121, Qp122, Qp123,
+ Qp124, Qp125, Qp126, queue:in(X, Qp127), Qp128});
+?IN_HIGHER_Qp128(128,
+ {Qp113, Qp114, Qp115, Qp116, Qp117,
+ Qp118, Qp119, Qp120, Qp121, Qp122, Qp123,
+ Qp124, Qp125, Qp126, Qp127, queue:in(X, Qp128)}).
+
+%% @hidden
+-define(IN_LOWER_Qn128(P, V),
+in_lower(P,
+ {Pc,
+ Size,
+ {Qn128, Qn127, Qn126, Qn125, Qn124, Qn123, Qn122, Qn121,
+ Qn120, Qn119, Qn118, Qn117, Qn116, Qn115, Qn114, Qn113},
+ Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}, X) ->
+ {Pc,
+ Size + 1,
+ V,
+ Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}).
+-define(IN_LOWER_Qn112(P, V),
+in_lower(P,
+ {Pc,
+ Size,
+ Qn128,
+ {Qn112, Qn111, Qn110, Qn109, Qn108, Qn107, Qn106, Qn105,
+ Qn104, Qn103, Qn102, Qn101, Qn100, Qn99, Qn98, Qn97},
+ Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}, X) ->
+ {Pc,
+ Size + 1,
+ Qn128,
+ V,
+ Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}).
+-define(IN_LOWER_Qn96(P, V),
+in_lower(P,
+ {Pc,
+ Size,
+ Qn128, Qn112,
+ {Qn96, Qn95, Qn94, Qn93, Qn92, Qn91, Qn90, Qn89,
+ Qn88, Qn87, Qn86, Qn85, Qn84, Qn83, Qn82, Qn81},
+ Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}, X) ->
+ {Pc,
+ Size + 1,
+ Qn128, Qn112,
+ V,
+ Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}).
+-define(IN_LOWER_Qn80(P, V),
+in_lower(P,
+ {Pc,
+ Size,
+ Qn128, Qn112, Qn96,
+ {Qn80, Qn79, Qn78, Qn77, Qn76, Qn75, Qn74, Qn73,
+ Qn72, Qn71, Qn70, Qn69, Qn68, Qn67, Qn66, Qn65},
+ Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}, X) ->
+ {Pc,
+ Size + 1,
+ Qn128, Qn112, Qn96,
+ V,
+ Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}).
+-define(IN_LOWER_Qn64(P, V),
+in_lower(P,
+ {Pc,
+ Size,
+ Qn128, Qn112, Qn96, Qn80,
+ {Qn64, Qn63, Qn62, Qn61, Qn60, Qn59, Qn58, Qn57,
+ Qn56, Qn55, Qn54, Qn53, Qn52, Qn51, Qn50, Qn49},
+ Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}, X) ->
+ {Pc,
+ Size + 1,
+ Qn128, Qn112, Qn96, Qn80,
+ V,
+ Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}).
+-define(IN_LOWER_Qn48(P, V),
+in_lower(P,
+ {Pc,
+ Size,
+ Qn128, Qn112, Qn96, Qn80, Qn64,
+ {Qn48, Qn47, Qn46, Qn45, Qn44, Qn43, Qn42, Qn41,
+ Qn40, Qn39, Qn38, Qn37, Qn36, Qn35, Qn34, Qn33},
+ Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}, X) ->
+ {Pc,
+ Size + 1,
+ Qn128, Qn112, Qn96, Qn80, Qn64,
+ V,
+ Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}).
+-define(IN_LOWER_Qn32(P, V),
+in_lower(P,
+ {Pc,
+ Size,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48,
+ {Qn32, Qn31, Qn30, Qn29, Qn28, Qn27, Qn26, Qn25,
+ Qn24, Qn23, Qn22, Qn21, Qn20, Qn19, Qn18, Qn17},
+ Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}, X) ->
+ {Pc,
+ Size + 1,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48,
+ V,
+ Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}).
+-define(IN_LOWER_Qn16(P, V),
+in_lower(P,
+ {Pc,
+ Size,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32,
+ {Qn16, Qn15, Qn14, Qn13, Qn12, Qn11, Qn10, Qn9,
+ Qn8, Qn7, Qn6, Qn5, Qn4, Qn3, Qn2, Qn1},
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}, X) ->
+ {Pc,
+ Size + 1,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32,
+ V,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}).
+-define(IN_LOWER_Qp16(P, V),
+in_lower(P,
+ {Pc,
+ Size,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ {Qp1, Qp2, Qp3, Qp4, Qp5, Qp6, Qp7, Qp8,
+ Qp9, Qp10, Qp11, Qp12, Qp13, Qp14, Qp15, Qp16},
+ Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}, X) ->
+ {Pc,
+ Size + 1,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ V,
+ Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}).
+-define(IN_LOWER_Qp32(P, V),
+in_lower(P,
+ {Pc,
+ Size,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16,
+ {Qp17, Qp18, Qp19, Qp20, Qp21, Qp22, Qp23, Qp24,
+ Qp25, Qp26, Qp27, Qp28, Qp29, Qp30, Qp31, Qp32},
+ Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}, X) ->
+ {Pc,
+ Size + 1,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16,
+ V,
+ Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}).
+-define(IN_LOWER_Qp48(P, V),
+in_lower(P,
+ {Pc,
+ Size,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32,
+ {Qp33, Qp34, Qp35, Qp36, Qp37, Qp38, Qp39, Qp40,
+ Qp41, Qp42, Qp43, Qp44, Qp45, Qp46, Qp47, Qp48},
+ Qp64, Qp80, Qp96, Qp112, Qp128}, X) ->
+ {Pc,
+ Size + 1,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32,
+ V,
+ Qp64, Qp80, Qp96, Qp112, Qp128}).
+-define(IN_LOWER_Qp64(P, V),
+in_lower(P,
+ {Pc,
+ Size,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48,
+ {Qp49, Qp50, Qp51, Qp52, Qp53, Qp54, Qp55, Qp56,
+ Qp57, Qp58, Qp59, Qp60, Qp61, Qp62, Qp63, Qp64},
+ Qp80, Qp96, Qp112, Qp128}, X) ->
+ {Pc,
+ Size + 1,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48,
+ V,
+ Qp80, Qp96, Qp112, Qp128}).
+-define(IN_LOWER_Qp80(P, V),
+in_lower(P,
+ {Pc,
+ Size,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64,
+ {Qp65, Qp66, Qp67, Qp68, Qp69, Qp70, Qp71, Qp72,
+ Qp73, Qp74, Qp75, Qp76, Qp77, Qp78, Qp79, Qp80},
+ Qp96, Qp112, Qp128}, X) ->
+ {Pc,
+ Size + 1,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64,
+ V,
+ Qp96, Qp112, Qp128}).
+-define(IN_LOWER_Qp96(P, V),
+in_lower(P,
+ {Pc,
+ Size,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80,
+ {Qp81, Qp82, Qp83, Qp84, Qp85, Qp86, Qp87, Qp88,
+ Qp89, Qp90, Qp91, Qp92, Qp93, Qp94, Qp95, Qp96},
+ Qp112, Qp128}, X) ->
+ {Pc,
+ Size + 1,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80,
+ V,
+ Qp112, Qp128}).
+-define(IN_LOWER_Qp112(P, V),
+in_lower(P,
+ {Pc,
+ Size,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96,
+ {Qp97, Qp98, Qp99, Qp100, Qp101, Qp102, Qp103, Qp104,
+ Qp105, Qp106, Qp107, Qp108, Qp109, Qp110, Qp111, Qp112},
+ Qp128}, X) ->
+ {Pc,
+ Size + 1,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96,
+ V,
+ Qp128}).
+-define(IN_LOWER_Qp128(P, V),
+in_lower(P,
+ {Pc,
+ Size,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112,
+ {Qp113, Qp114, Qp115, Qp116, Qp117, Qp118, Qp119, Qp120,
+ Qp121, Qp122, Qp123, Qp124, Qp125, Qp126, Qp127, Qp128}}, X) ->
+ {Pc,
+ Size + 1,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112,
+ V}).
+
+?IN_LOWER_Qn128(-128,
+ {queue:in(X, Qn128), Qn127, Qn126, Qn125, Qn124,
+ Qn123, Qn122, Qn121, Qn120, Qn119, Qn118,
+ Qn117, Qn116, Qn115, Qn114, Qn113});
+?IN_LOWER_Qn128(-127,
+ {Qn128, queue:in(X, Qn127), Qn126, Qn125, Qn124,
+ Qn123, Qn122, Qn121, Qn120, Qn119, Qn118,
+ Qn117, Qn116, Qn115, Qn114, Qn113});
+?IN_LOWER_Qn128(-126,
+ {Qn128, Qn127, queue:in(X, Qn126), Qn125, Qn124,
+ Qn123, Qn122, Qn121, Qn120, Qn119, Qn118,
+ Qn117, Qn116, Qn115, Qn114, Qn113});
+?IN_LOWER_Qn128(-125,
+ {Qn128, Qn127, Qn126, queue:in(X, Qn125), Qn124,
+ Qn123, Qn122, Qn121, Qn120, Qn119, Qn118,
+ Qn117, Qn116, Qn115, Qn114, Qn113});
+?IN_LOWER_Qn128(-124,
+ {Qn128, Qn127, Qn126, Qn125, queue:in(X, Qn124),
+ Qn123, Qn122, Qn121, Qn120, Qn119, Qn118,
+ Qn117, Qn116, Qn115, Qn114, Qn113});
+?IN_LOWER_Qn128(-123,
+ {Qn128, Qn127, Qn126, Qn125, Qn124,
+ queue:in(X, Qn123), Qn122, Qn121, Qn120, Qn119, Qn118,
+ Qn117, Qn116, Qn115, Qn114, Qn113});
+?IN_LOWER_Qn128(-122,
+ {Qn128, Qn127, Qn126, Qn125, Qn124,
+ Qn123, queue:in(X, Qn122), Qn121, Qn120, Qn119, Qn118,
+ Qn117, Qn116, Qn115, Qn114, Qn113});
+?IN_LOWER_Qn128(-121,
+ {Qn128, Qn127, Qn126, Qn125, Qn124,
+ Qn123, Qn122, queue:in(X, Qn121), Qn120, Qn119, Qn118,
+ Qn117, Qn116, Qn115, Qn114, Qn113});
+?IN_LOWER_Qn128(-120,
+ {Qn128, Qn127, Qn126, Qn125, Qn124,
+ Qn123, Qn122, Qn121, queue:in(X, Qn120), Qn119, Qn118,
+ Qn117, Qn116, Qn115, Qn114, Qn113});
+?IN_LOWER_Qn128(-119,
+ {Qn128, Qn127, Qn126, Qn125, Qn124,
+ Qn123, Qn122, Qn121, Qn120, queue:in(X, Qn119), Qn118,
+ Qn117, Qn116, Qn115, Qn114, Qn113});
+?IN_LOWER_Qn128(-118,
+ {Qn128, Qn127, Qn126, Qn125, Qn124,
+ Qn123, Qn122, Qn121, Qn120, Qn119, queue:in(X, Qn118),
+ Qn117, Qn116, Qn115, Qn114, Qn113});
+?IN_LOWER_Qn128(-117,
+ {Qn128, Qn127, Qn126, Qn125, Qn124,
+ Qn123, Qn122, Qn121, Qn120, Qn119, Qn118,
+ queue:in(X, Qn117), Qn116, Qn115, Qn114, Qn113});
+?IN_LOWER_Qn128(-116,
+ {Qn128, Qn127, Qn126, Qn125, Qn124,
+ Qn123, Qn122, Qn121, Qn120, Qn119, Qn118,
+ Qn117, queue:in(X, Qn116), Qn115, Qn114, Qn113});
+?IN_LOWER_Qn128(-115,
+ {Qn128, Qn127, Qn126, Qn125, Qn124,
+ Qn123, Qn122, Qn121, Qn120, Qn119, Qn118,
+ Qn117, Qn116, queue:in(X, Qn115), Qn114, Qn113});
+?IN_LOWER_Qn128(-114,
+ {Qn128, Qn127, Qn126, Qn125, Qn124,
+ Qn123, Qn122, Qn121, Qn120, Qn119, Qn118,
+ Qn117, Qn116, Qn115, queue:in(X, Qn114), Qn113});
+?IN_LOWER_Qn128(-113,
+ {Qn128, Qn127, Qn126, Qn125, Qn124,
+ Qn123, Qn122, Qn121, Qn120, Qn119, Qn118,
+ Qn117, Qn116, Qn115, Qn114, queue:in(X, Qn113)});
+?IN_LOWER_Qn112(-112,
+ {queue:in(X, Qn112), Qn111, Qn110, Qn109, Qn108,
+ Qn107, Qn106, Qn105, Qn104, Qn103, Qn102,
+ Qn101, Qn100, Qn99, Qn98, Qn97});
+?IN_LOWER_Qn112(-111,
+ {Qn112, queue:in(X, Qn111), Qn110, Qn109, Qn108,
+ Qn107, Qn106, Qn105, Qn104, Qn103, Qn102,
+ Qn101, Qn100, Qn99, Qn98, Qn97});
+?IN_LOWER_Qn112(-110,
+ {Qn112, Qn111, queue:in(X, Qn110), Qn109, Qn108,
+ Qn107, Qn106, Qn105, Qn104, Qn103, Qn102,
+ Qn101, Qn100, Qn99, Qn98, Qn97});
+?IN_LOWER_Qn112(-109,
+ {Qn112, Qn111, Qn110, queue:in(X, Qn109), Qn108,
+ Qn107, Qn106, Qn105, Qn104, Qn103, Qn102,
+ Qn101, Qn100, Qn99, Qn98, Qn97});
+?IN_LOWER_Qn112(-108,
+ {Qn112, Qn111, Qn110, Qn109, queue:in(X, Qn108),
+ Qn107, Qn106, Qn105, Qn104, Qn103, Qn102,
+ Qn101, Qn100, Qn99, Qn98, Qn97});
+?IN_LOWER_Qn112(-107,
+ {Qn112, Qn111, Qn110, Qn109, Qn108,
+ queue:in(X, Qn107), Qn106, Qn105, Qn104, Qn103, Qn102,
+ Qn101, Qn100, Qn99, Qn98, Qn97});
+?IN_LOWER_Qn112(-106,
+ {Qn112, Qn111, Qn110, Qn109, Qn108,
+ Qn107, queue:in(X, Qn106), Qn105, Qn104, Qn103, Qn102,
+ Qn101, Qn100, Qn99, Qn98, Qn97});
+?IN_LOWER_Qn112(-105,
+ {Qn112, Qn111, Qn110, Qn109, Qn108,
+ Qn107, Qn106, queue:in(X, Qn105), Qn104, Qn103, Qn102,
+ Qn101, Qn100, Qn99, Qn98, Qn97});
+?IN_LOWER_Qn112(-104,
+ {Qn112, Qn111, Qn110, Qn109, Qn108,
+ Qn107, Qn106, Qn105, queue:in(X, Qn104), Qn103, Qn102,
+ Qn101, Qn100, Qn99, Qn98, Qn97});
+?IN_LOWER_Qn112(-103,
+ {Qn112, Qn111, Qn110, Qn109, Qn108,
+ Qn107, Qn106, Qn105, Qn104, queue:in(X, Qn103), Qn102,
+ Qn101, Qn100, Qn99, Qn98, Qn97});
+?IN_LOWER_Qn112(-102,
+ {Qn112, Qn111, Qn110, Qn109, Qn108,
+ Qn107, Qn106, Qn105, Qn104, Qn103, queue:in(X, Qn102),
+ Qn101, Qn100, Qn99, Qn98, Qn97});
+?IN_LOWER_Qn112(-101,
+ {Qn112, Qn111, Qn110, Qn109, Qn108,
+ Qn107, Qn106, Qn105, Qn104, Qn103, Qn102,
+ queue:in(X, Qn101), Qn100, Qn99, Qn98, Qn97});
+?IN_LOWER_Qn112(-100,
+ {Qn112, Qn111, Qn110, Qn109, Qn108,
+ Qn107, Qn106, Qn105, Qn104, Qn103, Qn102,
+ Qn101, queue:in(X, Qn100), Qn99, Qn98, Qn97});
+?IN_LOWER_Qn112(-99,
+ {Qn112, Qn111, Qn110, Qn109, Qn108,
+ Qn107, Qn106, Qn105, Qn104, Qn103, Qn102,
+ Qn101, Qn100, queue:in(X, Qn99), Qn98, Qn97});
+?IN_LOWER_Qn112(-98,
+ {Qn112, Qn111, Qn110, Qn109, Qn108,
+ Qn107, Qn106, Qn105, Qn104, Qn103, Qn102,
+ Qn101, Qn100, Qn99, queue:in(X, Qn98), Qn97});
+?IN_LOWER_Qn112(-97,
+ {Qn112, Qn111, Qn110, Qn109, Qn108,
+ Qn107, Qn106, Qn105, Qn104, Qn103, Qn102,
+ Qn101, Qn100, Qn99, Qn98, queue:in(X, Qn97)});
+?IN_LOWER_Qn96(-96,
+ {queue:in(X, Qn96), Qn95, Qn94, Qn93, Qn92,
+ Qn91, Qn90, Qn89, Qn88, Qn87, Qn86,
+ Qn85, Qn84, Qn83, Qn82, Qn81});
+?IN_LOWER_Qn96(-95,
+ {Qn96, queue:in(X, Qn95), Qn94, Qn93, Qn92,
+ Qn91, Qn90, Qn89, Qn88, Qn87, Qn86,
+ Qn85, Qn84, Qn83, Qn82, Qn81});
+?IN_LOWER_Qn96(-94,
+ {Qn96, Qn95, queue:in(X, Qn94), Qn93, Qn92,
+ Qn91, Qn90, Qn89, Qn88, Qn87, Qn86,
+ Qn85, Qn84, Qn83, Qn82, Qn81});
+?IN_LOWER_Qn96(-93,
+ {Qn96, Qn95, Qn94, queue:in(X, Qn93), Qn92,
+ Qn91, Qn90, Qn89, Qn88, Qn87, Qn86,
+ Qn85, Qn84, Qn83, Qn82, Qn81});
+?IN_LOWER_Qn96(-92,
+ {Qn96, Qn95, Qn94, Qn93, queue:in(X, Qn92),
+ Qn91, Qn90, Qn89, Qn88, Qn87, Qn86,
+ Qn85, Qn84, Qn83, Qn82, Qn81});
+?IN_LOWER_Qn96(-91,
+ {Qn96, Qn95, Qn94, Qn93, Qn92,
+ queue:in(X, Qn91), Qn90, Qn89, Qn88, Qn87, Qn86,
+ Qn85, Qn84, Qn83, Qn82, Qn81});
+?IN_LOWER_Qn96(-90,
+ {Qn96, Qn95, Qn94, Qn93, Qn92,
+ Qn91, queue:in(X, Qn90), Qn89, Qn88, Qn87, Qn86,
+ Qn85, Qn84, Qn83, Qn82, Qn81});
+?IN_LOWER_Qn96(-89,
+ {Qn96, Qn95, Qn94, Qn93, Qn92,
+ Qn91, Qn90, queue:in(X, Qn89), Qn88, Qn87, Qn86,
+ Qn85, Qn84, Qn83, Qn82, Qn81});
+?IN_LOWER_Qn96(-88,
+ {Qn96, Qn95, Qn94, Qn93, Qn92,
+ Qn91, Qn90, Qn89, queue:in(X, Qn88), Qn87, Qn86,
+ Qn85, Qn84, Qn83, Qn82, Qn81});
+?IN_LOWER_Qn96(-87,
+ {Qn96, Qn95, Qn94, Qn93, Qn92,
+ Qn91, Qn90, Qn89, Qn88, queue:in(X, Qn87), Qn86,
+ Qn85, Qn84, Qn83, Qn82, Qn81});
+?IN_LOWER_Qn96(-86,
+ {Qn96, Qn95, Qn94, Qn93, Qn92,
+ Qn91, Qn90, Qn89, Qn88, Qn87, queue:in(X, Qn86),
+ Qn85, Qn84, Qn83, Qn82, Qn81});
+?IN_LOWER_Qn96(-85,
+ {Qn96, Qn95, Qn94, Qn93, Qn92,
+ Qn91, Qn90, Qn89, Qn88, Qn87, Qn86,
+ queue:in(X, Qn85), Qn84, Qn83, Qn82, Qn81});
+?IN_LOWER_Qn96(-84,
+ {Qn96, Qn95, Qn94, Qn93, Qn92,
+ Qn91, Qn90, Qn89, Qn88, Qn87, Qn86,
+ Qn85, queue:in(X, Qn84), Qn83, Qn82, Qn81});
+?IN_LOWER_Qn96(-83,
+ {Qn96, Qn95, Qn94, Qn93, Qn92,
+ Qn91, Qn90, Qn89, Qn88, Qn87, Qn86,
+ Qn85, Qn84, queue:in(X, Qn83), Qn82, Qn81});
+?IN_LOWER_Qn96(-82,
+ {Qn96, Qn95, Qn94, Qn93, Qn92,
+ Qn91, Qn90, Qn89, Qn88, Qn87, Qn86,
+ Qn85, Qn84, Qn83, queue:in(X, Qn82), Qn81});
+?IN_LOWER_Qn96(-81,
+ {Qn96, Qn95, Qn94, Qn93, Qn92,
+ Qn91, Qn90, Qn89, Qn88, Qn87, Qn86,
+ Qn85, Qn84, Qn83, Qn82, queue:in(X, Qn81)});
+?IN_LOWER_Qn80(-80,
+ {queue:in(X, Qn80), Qn79, Qn78, Qn77, Qn76,
+ Qn75, Qn74, Qn73, Qn72, Qn71, Qn70,
+ Qn69, Qn68, Qn67, Qn66, Qn65});
+?IN_LOWER_Qn80(-79,
+ {Qn80, queue:in(X, Qn79), Qn78, Qn77, Qn76,
+ Qn75, Qn74, Qn73, Qn72, Qn71, Qn70,
+ Qn69, Qn68, Qn67, Qn66, Qn65});
+?IN_LOWER_Qn80(-78,
+ {Qn80, Qn79, queue:in(X, Qn78), Qn77, Qn76,
+ Qn75, Qn74, Qn73, Qn72, Qn71, Qn70,
+ Qn69, Qn68, Qn67, Qn66, Qn65});
+?IN_LOWER_Qn80(-77,
+ {Qn80, Qn79, Qn78, queue:in(X, Qn77), Qn76,
+ Qn75, Qn74, Qn73, Qn72, Qn71, Qn70,
+ Qn69, Qn68, Qn67, Qn66, Qn65});
+?IN_LOWER_Qn80(-76,
+ {Qn80, Qn79, Qn78, Qn77, queue:in(X, Qn76),
+ Qn75, Qn74, Qn73, Qn72, Qn71, Qn70,
+ Qn69, Qn68, Qn67, Qn66, Qn65});
+?IN_LOWER_Qn80(-75,
+ {Qn80, Qn79, Qn78, Qn77, Qn76,
+ queue:in(X, Qn75), Qn74, Qn73, Qn72, Qn71, Qn70,
+ Qn69, Qn68, Qn67, Qn66, Qn65});
+?IN_LOWER_Qn80(-74,
+ {Qn80, Qn79, Qn78, Qn77, Qn76,
+ Qn75, queue:in(X, Qn74), Qn73, Qn72, Qn71, Qn70,
+ Qn69, Qn68, Qn67, Qn66, Qn65});
+?IN_LOWER_Qn80(-73,
+ {Qn80, Qn79, Qn78, Qn77, Qn76,
+ Qn75, Qn74, queue:in(X, Qn73), Qn72, Qn71, Qn70,
+ Qn69, Qn68, Qn67, Qn66, Qn65});
+?IN_LOWER_Qn80(-72,
+ {Qn80, Qn79, Qn78, Qn77, Qn76,
+ Qn75, Qn74, Qn73, queue:in(X, Qn72), Qn71, Qn70,
+ Qn69, Qn68, Qn67, Qn66, Qn65});
+?IN_LOWER_Qn80(-71,
+ {Qn80, Qn79, Qn78, Qn77, Qn76,
+ Qn75, Qn74, Qn73, Qn72, queue:in(X, Qn71), Qn70,
+ Qn69, Qn68, Qn67, Qn66, Qn65});
+?IN_LOWER_Qn80(-70,
+ {Qn80, Qn79, Qn78, Qn77, Qn76,
+ Qn75, Qn74, Qn73, Qn72, Qn71, queue:in(X, Qn70),
+ Qn69, Qn68, Qn67, Qn66, Qn65});
+?IN_LOWER_Qn80(-69,
+ {Qn80, Qn79, Qn78, Qn77, Qn76,
+ Qn75, Qn74, Qn73, Qn72, Qn71, Qn70,
+ queue:in(X, Qn69), Qn68, Qn67, Qn66, Qn65});
+?IN_LOWER_Qn80(-68,
+ {Qn80, Qn79, Qn78, Qn77, Qn76,
+ Qn75, Qn74, Qn73, Qn72, Qn71, Qn70,
+ Qn69, queue:in(X, Qn68), Qn67, Qn66, Qn65});
+?IN_LOWER_Qn80(-67,
+ {Qn80, Qn79, Qn78, Qn77, Qn76,
+ Qn75, Qn74, Qn73, Qn72, Qn71, Qn70,
+ Qn69, Qn68, queue:in(X, Qn67), Qn66, Qn65});
+?IN_LOWER_Qn80(-66,
+ {Qn80, Qn79, Qn78, Qn77, Qn76,
+ Qn75, Qn74, Qn73, Qn72, Qn71, Qn70,
+ Qn69, Qn68, Qn67, queue:in(X, Qn66), Qn65});
+?IN_LOWER_Qn80(-65,
+ {Qn80, Qn79, Qn78, Qn77, Qn76,
+ Qn75, Qn74, Qn73, Qn72, Qn71, Qn70,
+ Qn69, Qn68, Qn67, Qn66, queue:in(X, Qn65)});
+?IN_LOWER_Qn64(-64,
+ {queue:in(X, Qn64), Qn63, Qn62, Qn61, Qn60,
+ Qn59, Qn58, Qn57, Qn56, Qn55, Qn54,
+ Qn53, Qn52, Qn51, Qn50, Qn49});
+?IN_LOWER_Qn64(-63,
+ {Qn64, queue:in(X, Qn63), Qn62, Qn61, Qn60,
+ Qn59, Qn58, Qn57, Qn56, Qn55, Qn54,
+ Qn53, Qn52, Qn51, Qn50, Qn49});
+?IN_LOWER_Qn64(-62,
+ {Qn64, Qn63, queue:in(X, Qn62), Qn61, Qn60,
+ Qn59, Qn58, Qn57, Qn56, Qn55, Qn54,
+ Qn53, Qn52, Qn51, Qn50, Qn49});
+?IN_LOWER_Qn64(-61,
+ {Qn64, Qn63, Qn62, queue:in(X, Qn61), Qn60,
+ Qn59, Qn58, Qn57, Qn56, Qn55, Qn54,
+ Qn53, Qn52, Qn51, Qn50, Qn49});
+?IN_LOWER_Qn64(-60,
+ {Qn64, Qn63, Qn62, Qn61, queue:in(X, Qn60),
+ Qn59, Qn58, Qn57, Qn56, Qn55, Qn54,
+ Qn53, Qn52, Qn51, Qn50, Qn49});
+?IN_LOWER_Qn64(-59,
+ {Qn64, Qn63, Qn62, Qn61, Qn60,
+ queue:in(X, Qn59), Qn58, Qn57, Qn56, Qn55, Qn54,
+ Qn53, Qn52, Qn51, Qn50, Qn49});
+?IN_LOWER_Qn64(-58,
+ {Qn64, Qn63, Qn62, Qn61, Qn60,
+ Qn59, queue:in(X, Qn58), Qn57, Qn56, Qn55, Qn54,
+ Qn53, Qn52, Qn51, Qn50, Qn49});
+?IN_LOWER_Qn64(-57,
+ {Qn64, Qn63, Qn62, Qn61, Qn60,
+ Qn59, Qn58, queue:in(X, Qn57), Qn56, Qn55, Qn54,
+ Qn53, Qn52, Qn51, Qn50, Qn49});
+?IN_LOWER_Qn64(-56,
+ {Qn64, Qn63, Qn62, Qn61, Qn60,
+ Qn59, Qn58, Qn57, queue:in(X, Qn56), Qn55, Qn54,
+ Qn53, Qn52, Qn51, Qn50, Qn49});
+?IN_LOWER_Qn64(-55,
+ {Qn64, Qn63, Qn62, Qn61, Qn60,
+ Qn59, Qn58, Qn57, Qn56, queue:in(X, Qn55), Qn54,
+ Qn53, Qn52, Qn51, Qn50, Qn49});
+?IN_LOWER_Qn64(-54,
+ {Qn64, Qn63, Qn62, Qn61, Qn60,
+ Qn59, Qn58, Qn57, Qn56, Qn55, queue:in(X, Qn54),
+ Qn53, Qn52, Qn51, Qn50, Qn49});
+?IN_LOWER_Qn64(-53,
+ {Qn64, Qn63, Qn62, Qn61, Qn60,
+ Qn59, Qn58, Qn57, Qn56, Qn55, Qn54,
+ queue:in(X, Qn53), Qn52, Qn51, Qn50, Qn49});
+?IN_LOWER_Qn64(-52,
+ {Qn64, Qn63, Qn62, Qn61, Qn60,
+ Qn59, Qn58, Qn57, Qn56, Qn55, Qn54,
+ Qn53, queue:in(X, Qn52), Qn51, Qn50, Qn49});
+?IN_LOWER_Qn64(-51,
+ {Qn64, Qn63, Qn62, Qn61, Qn60,
+ Qn59, Qn58, Qn57, Qn56, Qn55, Qn54,
+ Qn53, Qn52, queue:in(X, Qn51), Qn50, Qn49});
+?IN_LOWER_Qn64(-50,
+ {Qn64, Qn63, Qn62, Qn61, Qn60,
+ Qn59, Qn58, Qn57, Qn56, Qn55, Qn54,
+ Qn53, Qn52, Qn51, queue:in(X, Qn50), Qn49});
+?IN_LOWER_Qn64(-49,
+ {Qn64, Qn63, Qn62, Qn61, Qn60,
+ Qn59, Qn58, Qn57, Qn56, Qn55, Qn54,
+ Qn53, Qn52, Qn51, Qn50, queue:in(X, Qn49)});
+?IN_LOWER_Qn48(-48,
+ {queue:in(X, Qn48), Qn47, Qn46, Qn45, Qn44,
+ Qn43, Qn42, Qn41, Qn40, Qn39, Qn38,
+ Qn37, Qn36, Qn35, Qn34, Qn33});
+?IN_LOWER_Qn48(-47,
+ {Qn48, queue:in(X, Qn47), Qn46, Qn45, Qn44,
+ Qn43, Qn42, Qn41, Qn40, Qn39, Qn38,
+ Qn37, Qn36, Qn35, Qn34, Qn33});
+?IN_LOWER_Qn48(-46,
+ {Qn48, Qn47, queue:in(X, Qn46), Qn45, Qn44,
+ Qn43, Qn42, Qn41, Qn40, Qn39, Qn38,
+ Qn37, Qn36, Qn35, Qn34, Qn33});
+?IN_LOWER_Qn48(-45,
+ {Qn48, Qn47, Qn46, queue:in(X, Qn45), Qn44,
+ Qn43, Qn42, Qn41, Qn40, Qn39, Qn38,
+ Qn37, Qn36, Qn35, Qn34, Qn33});
+?IN_LOWER_Qn48(-44,
+ {Qn48, Qn47, Qn46, Qn45, queue:in(X, Qn44),
+ Qn43, Qn42, Qn41, Qn40, Qn39, Qn38,
+ Qn37, Qn36, Qn35, Qn34, Qn33});
+?IN_LOWER_Qn48(-43,
+ {Qn48, Qn47, Qn46, Qn45, Qn44,
+ queue:in(X, Qn43), Qn42, Qn41, Qn40, Qn39, Qn38,
+ Qn37, Qn36, Qn35, Qn34, Qn33});
+?IN_LOWER_Qn48(-42,
+ {Qn48, Qn47, Qn46, Qn45, Qn44,
+ Qn43, queue:in(X, Qn42), Qn41, Qn40, Qn39, Qn38,
+ Qn37, Qn36, Qn35, Qn34, Qn33});
+?IN_LOWER_Qn48(-41,
+ {Qn48, Qn47, Qn46, Qn45, Qn44,
+ Qn43, Qn42, queue:in(X, Qn41), Qn40, Qn39, Qn38,
+ Qn37, Qn36, Qn35, Qn34, Qn33});
+?IN_LOWER_Qn48(-40,
+ {Qn48, Qn47, Qn46, Qn45, Qn44,
+ Qn43, Qn42, Qn41, queue:in(X, Qn40), Qn39, Qn38,
+ Qn37, Qn36, Qn35, Qn34, Qn33});
+?IN_LOWER_Qn48(-39,
+ {Qn48, Qn47, Qn46, Qn45, Qn44,
+ Qn43, Qn42, Qn41, Qn40, queue:in(X, Qn39), Qn38,
+ Qn37, Qn36, Qn35, Qn34, Qn33});
+?IN_LOWER_Qn48(-38,
+ {Qn48, Qn47, Qn46, Qn45, Qn44,
+ Qn43, Qn42, Qn41, Qn40, Qn39, queue:in(X, Qn38),
+ Qn37, Qn36, Qn35, Qn34, Qn33});
+?IN_LOWER_Qn48(-37,
+ {Qn48, Qn47, Qn46, Qn45, Qn44,
+ Qn43, Qn42, Qn41, Qn40, Qn39, Qn38,
+ queue:in(X, Qn37), Qn36, Qn35, Qn34, Qn33});
+?IN_LOWER_Qn48(-36,
+ {Qn48, Qn47, Qn46, Qn45, Qn44,
+ Qn43, Qn42, Qn41, Qn40, Qn39, Qn38,
+ Qn37, queue:in(X, Qn36), Qn35, Qn34, Qn33});
+?IN_LOWER_Qn48(-35,
+ {Qn48, Qn47, Qn46, Qn45, Qn44,
+ Qn43, Qn42, Qn41, Qn40, Qn39, Qn38,
+ Qn37, Qn36, queue:in(X, Qn35), Qn34, Qn33});
+?IN_LOWER_Qn48(-34,
+ {Qn48, Qn47, Qn46, Qn45, Qn44,
+ Qn43, Qn42, Qn41, Qn40, Qn39, Qn38,
+ Qn37, Qn36, Qn35, queue:in(X, Qn34), Qn33});
+?IN_LOWER_Qn48(-33,
+ {Qn48, Qn47, Qn46, Qn45, Qn44,
+ Qn43, Qn42, Qn41, Qn40, Qn39, Qn38,
+ Qn37, Qn36, Qn35, Qn34, queue:in(X, Qn33)});
+?IN_LOWER_Qn32(-32,
+ {queue:in(X, Qn32), Qn31, Qn30, Qn29, Qn28,
+ Qn27, Qn26, Qn25, Qn24, Qn23, Qn22,
+ Qn21, Qn20, Qn19, Qn18, Qn17});
+?IN_LOWER_Qn32(-31,
+ {Qn32, queue:in(X, Qn31), Qn30, Qn29, Qn28,
+ Qn27, Qn26, Qn25, Qn24, Qn23, Qn22,
+ Qn21, Qn20, Qn19, Qn18, Qn17});
+?IN_LOWER_Qn32(-30,
+ {Qn32, Qn31, queue:in(X, Qn30), Qn29, Qn28,
+ Qn27, Qn26, Qn25, Qn24, Qn23, Qn22,
+ Qn21, Qn20, Qn19, Qn18, Qn17});
+?IN_LOWER_Qn32(-29,
+ {Qn32, Qn31, Qn30, queue:in(X, Qn29), Qn28,
+ Qn27, Qn26, Qn25, Qn24, Qn23, Qn22,
+ Qn21, Qn20, Qn19, Qn18, Qn17});
+?IN_LOWER_Qn32(-28,
+ {Qn32, Qn31, Qn30, Qn29, queue:in(X, Qn28),
+ Qn27, Qn26, Qn25, Qn24, Qn23, Qn22,
+ Qn21, Qn20, Qn19, Qn18, Qn17});
+?IN_LOWER_Qn32(-27,
+ {Qn32, Qn31, Qn30, Qn29, Qn28,
+ queue:in(X, Qn27), Qn26, Qn25, Qn24, Qn23, Qn22,
+ Qn21, Qn20, Qn19, Qn18, Qn17});
+?IN_LOWER_Qn32(-26,
+ {Qn32, Qn31, Qn30, Qn29, Qn28,
+ Qn27, queue:in(X, Qn26), Qn25, Qn24, Qn23, Qn22,
+ Qn21, Qn20, Qn19, Qn18, Qn17});
+?IN_LOWER_Qn32(-25,
+ {Qn32, Qn31, Qn30, Qn29, Qn28,
+ Qn27, Qn26, queue:in(X, Qn25), Qn24, Qn23, Qn22,
+ Qn21, Qn20, Qn19, Qn18, Qn17});
+?IN_LOWER_Qn32(-24,
+ {Qn32, Qn31, Qn30, Qn29, Qn28,
+ Qn27, Qn26, Qn25, queue:in(X, Qn24), Qn23, Qn22,
+ Qn21, Qn20, Qn19, Qn18, Qn17});
+?IN_LOWER_Qn32(-23,
+ {Qn32, Qn31, Qn30, Qn29, Qn28,
+ Qn27, Qn26, Qn25, Qn24, queue:in(X, Qn23), Qn22,
+ Qn21, Qn20, Qn19, Qn18, Qn17});
+?IN_LOWER_Qn32(-22,
+ {Qn32, Qn31, Qn30, Qn29, Qn28,
+ Qn27, Qn26, Qn25, Qn24, Qn23, queue:in(X, Qn22),
+ Qn21, Qn20, Qn19, Qn18, Qn17});
+?IN_LOWER_Qn32(-21,
+ {Qn32, Qn31, Qn30, Qn29, Qn28,
+ Qn27, Qn26, Qn25, Qn24, Qn23, Qn22,
+ queue:in(X, Qn21), Qn20, Qn19, Qn18, Qn17});
+?IN_LOWER_Qn32(-20,
+ {Qn32, Qn31, Qn30, Qn29, Qn28,
+ Qn27, Qn26, Qn25, Qn24, Qn23, Qn22,
+ Qn21, queue:in(X, Qn20), Qn19, Qn18, Qn17});
+?IN_LOWER_Qn32(-19,
+ {Qn32, Qn31, Qn30, Qn29, Qn28,
+ Qn27, Qn26, Qn25, Qn24, Qn23, Qn22,
+ Qn21, Qn20, queue:in(X, Qn19), Qn18, Qn17});
+?IN_LOWER_Qn32(-18,
+ {Qn32, Qn31, Qn30, Qn29, Qn28,
+ Qn27, Qn26, Qn25, Qn24, Qn23, Qn22,
+ Qn21, Qn20, Qn19, queue:in(X, Qn18), Qn17});
+?IN_LOWER_Qn32(-17,
+ {Qn32, Qn31, Qn30, Qn29, Qn28,
+ Qn27, Qn26, Qn25, Qn24, Qn23, Qn22,
+ Qn21, Qn20, Qn19, Qn18, queue:in(X, Qn17)});
+?IN_LOWER_Qn16(-16,
+ {queue:in(X, Qn16), Qn15, Qn14, Qn13, Qn12,
+ Qn11, Qn10, Qn9, Qn8, Qn7, Qn6,
+ Qn5, Qn4, Qn3, Qn2, Qn1});
+?IN_LOWER_Qn16(-15,
+ {Qn16, queue:in(X, Qn15), Qn14, Qn13, Qn12,
+ Qn11, Qn10, Qn9, Qn8, Qn7, Qn6,
+ Qn5, Qn4, Qn3, Qn2, Qn1});
+?IN_LOWER_Qn16(-14,
+ {Qn16, Qn15, queue:in(X, Qn14), Qn13, Qn12,
+ Qn11, Qn10, Qn9, Qn8, Qn7, Qn6,
+ Qn5, Qn4, Qn3, Qn2, Qn1});
+?IN_LOWER_Qn16(-13,
+ {Qn16, Qn15, Qn14, queue:in(X, Qn13), Qn12,
+ Qn11, Qn10, Qn9, Qn8, Qn7, Qn6,
+ Qn5, Qn4, Qn3, Qn2, Qn1});
+?IN_LOWER_Qn16(-12,
+ {Qn16, Qn15, Qn14, Qn13, queue:in(X, Qn12),
+ Qn11, Qn10, Qn9, Qn8, Qn7, Qn6,
+ Qn5, Qn4, Qn3, Qn2, Qn1});
+?IN_LOWER_Qn16(-11,
+ {Qn16, Qn15, Qn14, Qn13, Qn12,
+ queue:in(X, Qn11), Qn10, Qn9, Qn8, Qn7, Qn6,
+ Qn5, Qn4, Qn3, Qn2, Qn1});
+?IN_LOWER_Qn16(-10,
+ {Qn16, Qn15, Qn14, Qn13, Qn12,
+ Qn11, queue:in(X, Qn10), Qn9, Qn8, Qn7, Qn6,
+ Qn5, Qn4, Qn3, Qn2, Qn1});
+?IN_LOWER_Qn16(-9,
+ {Qn16, Qn15, Qn14, Qn13, Qn12,
+ Qn11, Qn10, queue:in(X, Qn9), Qn8, Qn7, Qn6,
+ Qn5, Qn4, Qn3, Qn2, Qn1});
+?IN_LOWER_Qn16(-8,
+ {Qn16, Qn15, Qn14, Qn13, Qn12,
+ Qn11, Qn10, Qn9, queue:in(X, Qn8), Qn7, Qn6,
+ Qn5, Qn4, Qn3, Qn2, Qn1});
+?IN_LOWER_Qn16(-7,
+ {Qn16, Qn15, Qn14, Qn13, Qn12,
+ Qn11, Qn10, Qn9, Qn8, queue:in(X, Qn7), Qn6,
+ Qn5, Qn4, Qn3, Qn2, Qn1});
+?IN_LOWER_Qn16(-6,
+ {Qn16, Qn15, Qn14, Qn13, Qn12,
+ Qn11, Qn10, Qn9, Qn8, Qn7, queue:in(X, Qn6),
+ Qn5, Qn4, Qn3, Qn2, Qn1});
+?IN_LOWER_Qn16(-5,
+ {Qn16, Qn15, Qn14, Qn13, Qn12,
+ Qn11, Qn10, Qn9, Qn8, Qn7, Qn6,
+ queue:in(X, Qn5), Qn4, Qn3, Qn2, Qn1});
+?IN_LOWER_Qn16(-4,
+ {Qn16, Qn15, Qn14, Qn13, Qn12,
+ Qn11, Qn10, Qn9, Qn8, Qn7, Qn6,
+ Qn5, queue:in(X, Qn4), Qn3, Qn2, Qn1});
+?IN_LOWER_Qn16(-3,
+ {Qn16, Qn15, Qn14, Qn13, Qn12,
+ Qn11, Qn10, Qn9, Qn8, Qn7, Qn6,
+ Qn5, Qn4, queue:in(X, Qn3), Qn2, Qn1});
+?IN_LOWER_Qn16(-2,
+ {Qn16, Qn15, Qn14, Qn13, Qn12,
+ Qn11, Qn10, Qn9, Qn8, Qn7, Qn6,
+ Qn5, Qn4, Qn3, queue:in(X, Qn2), Qn1});
+?IN_LOWER_Qn16(-1,
+ {Qn16, Qn15, Qn14, Qn13, Qn12,
+ Qn11, Qn10, Qn9, Qn8, Qn7, Qn6,
+ Qn5, Qn4, Qn3, Qn2, queue:in(X, Qn1)});
+in_lower(0,
+ {Pc,
+ Size,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}, X) ->
+ {Pc,
+ Size + 1,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ queue:in(X, Q0),
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128};
+?IN_LOWER_Qp16(1,
+ {queue:in(X, Qp1), Qp2, Qp3, Qp4, Qp5,
+ Qp6, Qp7, Qp8, Qp9, Qp10, Qp11,
+ Qp12, Qp13, Qp14, Qp15, Qp16});
+?IN_LOWER_Qp16(2,
+ {Qp1, queue:in(X, Qp2), Qp3, Qp4, Qp5,
+ Qp6, Qp7, Qp8, Qp9, Qp10, Qp11,
+ Qp12, Qp13, Qp14, Qp15, Qp16});
+?IN_LOWER_Qp16(3,
+ {Qp1, Qp2, queue:in(X, Qp3), Qp4, Qp5,
+ Qp6, Qp7, Qp8, Qp9, Qp10, Qp11,
+ Qp12, Qp13, Qp14, Qp15, Qp16});
+?IN_LOWER_Qp16(4,
+ {Qp1, Qp2, Qp3, queue:in(X, Qp4), Qp5,
+ Qp6, Qp7, Qp8, Qp9, Qp10, Qp11,
+ Qp12, Qp13, Qp14, Qp15, Qp16});
+?IN_LOWER_Qp16(5,
+ {Qp1, Qp2, Qp3, Qp4, queue:in(X, Qp5),
+ Qp6, Qp7, Qp8, Qp9, Qp10, Qp11,
+ Qp12, Qp13, Qp14, Qp15, Qp16});
+?IN_LOWER_Qp16(6,
+ {Qp1, Qp2, Qp3, Qp4, Qp5,
+ queue:in(X, Qp6), Qp7, Qp8, Qp9, Qp10, Qp11,
+ Qp12, Qp13, Qp14, Qp15, Qp16});
+?IN_LOWER_Qp16(7,
+ {Qp1, Qp2, Qp3, Qp4, Qp5,
+ Qp6, queue:in(X, Qp7), Qp8, Qp9, Qp10, Qp11,
+ Qp12, Qp13, Qp14, Qp15, Qp16});
+?IN_LOWER_Qp16(8,
+ {Qp1, Qp2, Qp3, Qp4, Qp5,
+ Qp6, Qp7, queue:in(X, Qp8), Qp9, Qp10, Qp11,
+ Qp12, Qp13, Qp14, Qp15, Qp16});
+?IN_LOWER_Qp16(9,
+ {Qp1, Qp2, Qp3, Qp4, Qp5,
+ Qp6, Qp7, Qp8, queue:in(X, Qp9), Qp10, Qp11,
+ Qp12, Qp13, Qp14, Qp15, Qp16});
+?IN_LOWER_Qp16(10,
+ {Qp1, Qp2, Qp3, Qp4, Qp5,
+ Qp6, Qp7, Qp8, Qp9, queue:in(X, Qp10), Qp11,
+ Qp12, Qp13, Qp14, Qp15, Qp16});
+?IN_LOWER_Qp16(11,
+ {Qp1, Qp2, Qp3, Qp4, Qp5,
+ Qp6, Qp7, Qp8, Qp9, Qp10, queue:in(X, Qp11),
+ Qp12, Qp13, Qp14, Qp15, Qp16});
+?IN_LOWER_Qp16(12,
+ {Qp1, Qp2, Qp3, Qp4, Qp5,
+ Qp6, Qp7, Qp8, Qp9, Qp10, Qp11,
+ queue:in(X, Qp12), Qp13, Qp14, Qp15, Qp16});
+?IN_LOWER_Qp16(13,
+ {Qp1, Qp2, Qp3, Qp4, Qp5,
+ Qp6, Qp7, Qp8, Qp9, Qp10, Qp11,
+ Qp12, queue:in(X, Qp13), Qp14, Qp15, Qp16});
+?IN_LOWER_Qp16(14,
+ {Qp1, Qp2, Qp3, Qp4, Qp5,
+ Qp6, Qp7, Qp8, Qp9, Qp10, Qp11,
+ Qp12, Qp13, queue:in(X, Qp14), Qp15, Qp16});
+?IN_LOWER_Qp16(15,
+ {Qp1, Qp2, Qp3, Qp4, Qp5,
+ Qp6, Qp7, Qp8, Qp9, Qp10, Qp11,
+ Qp12, Qp13, Qp14, queue:in(X, Qp15), Qp16});
+?IN_LOWER_Qp16(16,
+ {Qp1, Qp2, Qp3, Qp4, Qp5,
+ Qp6, Qp7, Qp8, Qp9, Qp10, Qp11,
+ Qp12, Qp13, Qp14, Qp15, queue:in(X, Qp16)});
+?IN_LOWER_Qp32(17,
+ {queue:in(X, Qp17), Qp18, Qp19, Qp20, Qp21,
+ Qp22, Qp23, Qp24, Qp25, Qp26, Qp27,
+ Qp28, Qp29, Qp30, Qp31, Qp32});
+?IN_LOWER_Qp32(18,
+ {Qp17, queue:in(X, Qp18), Qp19, Qp20, Qp21,
+ Qp22, Qp23, Qp24, Qp25, Qp26, Qp27,
+ Qp28, Qp29, Qp30, Qp31, Qp32});
+?IN_LOWER_Qp32(19,
+ {Qp17, Qp18, queue:in(X, Qp19), Qp20, Qp21,
+ Qp22, Qp23, Qp24, Qp25, Qp26, Qp27,
+ Qp28, Qp29, Qp30, Qp31, Qp32});
+?IN_LOWER_Qp32(20,
+ {Qp17, Qp18, Qp19, queue:in(X, Qp20), Qp21,
+ Qp22, Qp23, Qp24, Qp25, Qp26, Qp27,
+ Qp28, Qp29, Qp30, Qp31, Qp32});
+?IN_LOWER_Qp32(21,
+ {Qp17, Qp18, Qp19, Qp20, queue:in(X, Qp21),
+ Qp22, Qp23, Qp24, Qp25, Qp26, Qp27,
+ Qp28, Qp29, Qp30, Qp31, Qp32});
+?IN_LOWER_Qp32(22,
+ {Qp17, Qp18, Qp19, Qp20, Qp21,
+ queue:in(X, Qp22), Qp23, Qp24, Qp25, Qp26, Qp27,
+ Qp28, Qp29, Qp30, Qp31, Qp32});
+?IN_LOWER_Qp32(23,
+ {Qp17, Qp18, Qp19, Qp20, Qp21,
+ Qp22, queue:in(X, Qp23), Qp24, Qp25, Qp26, Qp27,
+ Qp28, Qp29, Qp30, Qp31, Qp32});
+?IN_LOWER_Qp32(24,
+ {Qp17, Qp18, Qp19, Qp20, Qp21,
+ Qp22, Qp23, queue:in(X, Qp24), Qp25, Qp26, Qp27,
+ Qp28, Qp29, Qp30, Qp31, Qp32});
+?IN_LOWER_Qp32(25,
+ {Qp17, Qp18, Qp19, Qp20, Qp21,
+ Qp22, Qp23, Qp24, queue:in(X, Qp25), Qp26, Qp27,
+ Qp28, Qp29, Qp30, Qp31, Qp32});
+?IN_LOWER_Qp32(26,
+ {Qp17, Qp18, Qp19, Qp20, Qp21,
+ Qp22, Qp23, Qp24, Qp25, queue:in(X, Qp26), Qp27,
+ Qp28, Qp29, Qp30, Qp31, Qp32});
+?IN_LOWER_Qp32(27,
+ {Qp17, Qp18, Qp19, Qp20, Qp21,
+ Qp22, Qp23, Qp24, Qp25, Qp26, queue:in(X, Qp27),
+ Qp28, Qp29, Qp30, Qp31, Qp32});
+?IN_LOWER_Qp32(28,
+ {Qp17, Qp18, Qp19, Qp20, Qp21,
+ Qp22, Qp23, Qp24, Qp25, Qp26, Qp27,
+ queue:in(X, Qp28), Qp29, Qp30, Qp31, Qp32});
+?IN_LOWER_Qp32(29,
+ {Qp17, Qp18, Qp19, Qp20, Qp21,
+ Qp22, Qp23, Qp24, Qp25, Qp26, Qp27,
+ Qp28, queue:in(X, Qp29), Qp30, Qp31, Qp32});
+?IN_LOWER_Qp32(30,
+ {Qp17, Qp18, Qp19, Qp20, Qp21,
+ Qp22, Qp23, Qp24, Qp25, Qp26, Qp27,
+ Qp28, Qp29, queue:in(X, Qp30), Qp31, Qp32});
+?IN_LOWER_Qp32(31,
+ {Qp17, Qp18, Qp19, Qp20, Qp21,
+ Qp22, Qp23, Qp24, Qp25, Qp26, Qp27,
+ Qp28, Qp29, Qp30, queue:in(X, Qp31), Qp32});
+?IN_LOWER_Qp32(32,
+ {Qp17, Qp18, Qp19, Qp20, Qp21,
+ Qp22, Qp23, Qp24, Qp25, Qp26, Qp27,
+ Qp28, Qp29, Qp30, Qp31, queue:in(X, Qp32)});
+?IN_LOWER_Qp48(33,
+ {queue:in(X, Qp33), Qp34, Qp35, Qp36, Qp37,
+ Qp38, Qp39, Qp40, Qp41, Qp42, Qp43,
+ Qp44, Qp45, Qp46, Qp47, Qp48});
+?IN_LOWER_Qp48(34,
+ {Qp33, queue:in(X, Qp34), Qp35, Qp36, Qp37,
+ Qp38, Qp39, Qp40, Qp41, Qp42, Qp43,
+ Qp44, Qp45, Qp46, Qp47, Qp48});
+?IN_LOWER_Qp48(35,
+ {Qp33, Qp34, queue:in(X, Qp35), Qp36, Qp37,
+ Qp38, Qp39, Qp40, Qp41, Qp42, Qp43,
+ Qp44, Qp45, Qp46, Qp47, Qp48});
+?IN_LOWER_Qp48(36,
+ {Qp33, Qp34, Qp35, queue:in(X, Qp36), Qp37,
+ Qp38, Qp39, Qp40, Qp41, Qp42, Qp43,
+ Qp44, Qp45, Qp46, Qp47, Qp48});
+?IN_LOWER_Qp48(37,
+ {Qp33, Qp34, Qp35, Qp36, queue:in(X, Qp37),
+ Qp38, Qp39, Qp40, Qp41, Qp42, Qp43,
+ Qp44, Qp45, Qp46, Qp47, Qp48});
+?IN_LOWER_Qp48(38,
+ {Qp33, Qp34, Qp35, Qp36, Qp37,
+ queue:in(X, Qp38), Qp39, Qp40, Qp41, Qp42, Qp43,
+ Qp44, Qp45, Qp46, Qp47, Qp48});
+?IN_LOWER_Qp48(39,
+ {Qp33, Qp34, Qp35, Qp36, Qp37,
+ Qp38, queue:in(X, Qp39), Qp40, Qp41, Qp42, Qp43,
+ Qp44, Qp45, Qp46, Qp47, Qp48});
+?IN_LOWER_Qp48(40,
+ {Qp33, Qp34, Qp35, Qp36, Qp37,
+ Qp38, Qp39, queue:in(X, Qp40), Qp41, Qp42, Qp43,
+ Qp44, Qp45, Qp46, Qp47, Qp48});
+?IN_LOWER_Qp48(41,
+ {Qp33, Qp34, Qp35, Qp36, Qp37,
+ Qp38, Qp39, Qp40, queue:in(X, Qp41), Qp42, Qp43,
+ Qp44, Qp45, Qp46, Qp47, Qp48});
+?IN_LOWER_Qp48(42,
+ {Qp33, Qp34, Qp35, Qp36, Qp37,
+ Qp38, Qp39, Qp40, Qp41, queue:in(X, Qp42), Qp43,
+ Qp44, Qp45, Qp46, Qp47, Qp48});
+?IN_LOWER_Qp48(43,
+ {Qp33, Qp34, Qp35, Qp36, Qp37,
+ Qp38, Qp39, Qp40, Qp41, Qp42, queue:in(X, Qp43),
+ Qp44, Qp45, Qp46, Qp47, Qp48});
+?IN_LOWER_Qp48(44,
+ {Qp33, Qp34, Qp35, Qp36, Qp37,
+ Qp38, Qp39, Qp40, Qp41, Qp42, Qp43,
+ queue:in(X, Qp44), Qp45, Qp46, Qp47, Qp48});
+?IN_LOWER_Qp48(45,
+ {Qp33, Qp34, Qp35, Qp36, Qp37,
+ Qp38, Qp39, Qp40, Qp41, Qp42, Qp43,
+ Qp44, queue:in(X, Qp45), Qp46, Qp47, Qp48});
+?IN_LOWER_Qp48(46,
+ {Qp33, Qp34, Qp35, Qp36, Qp37,
+ Qp38, Qp39, Qp40, Qp41, Qp42, Qp43,
+ Qp44, Qp45, queue:in(X, Qp46), Qp47, Qp48});
+?IN_LOWER_Qp48(47,
+ {Qp33, Qp34, Qp35, Qp36, Qp37,
+ Qp38, Qp39, Qp40, Qp41, Qp42, Qp43,
+ Qp44, Qp45, Qp46, queue:in(X, Qp47), Qp48});
+?IN_LOWER_Qp48(48,
+ {Qp33, Qp34, Qp35, Qp36, Qp37,
+ Qp38, Qp39, Qp40, Qp41, Qp42, Qp43,
+ Qp44, Qp45, Qp46, Qp47, queue:in(X, Qp48)});
+?IN_LOWER_Qp64(49,
+ {queue:in(X, Qp49), Qp50, Qp51, Qp52, Qp53,
+ Qp54, Qp55, Qp56, Qp57, Qp58, Qp59,
+ Qp60, Qp61, Qp62, Qp63, Qp64});
+?IN_LOWER_Qp64(50,
+ {Qp49, queue:in(X, Qp50), Qp51, Qp52, Qp53,
+ Qp54, Qp55, Qp56, Qp57, Qp58, Qp59,
+ Qp60, Qp61, Qp62, Qp63, Qp64});
+?IN_LOWER_Qp64(51,
+ {Qp49, Qp50, queue:in(X, Qp51), Qp52, Qp53,
+ Qp54, Qp55, Qp56, Qp57, Qp58, Qp59,
+ Qp60, Qp61, Qp62, Qp63, Qp64});
+?IN_LOWER_Qp64(52,
+ {Qp49, Qp50, Qp51, queue:in(X, Qp52), Qp53,
+ Qp54, Qp55, Qp56, Qp57, Qp58, Qp59,
+ Qp60, Qp61, Qp62, Qp63, Qp64});
+?IN_LOWER_Qp64(53,
+ {Qp49, Qp50, Qp51, Qp52, queue:in(X, Qp53),
+ Qp54, Qp55, Qp56, Qp57, Qp58, Qp59,
+ Qp60, Qp61, Qp62, Qp63, Qp64});
+?IN_LOWER_Qp64(54,
+ {Qp49, Qp50, Qp51, Qp52, Qp53,
+ queue:in(X, Qp54), Qp55, Qp56, Qp57, Qp58, Qp59,
+ Qp60, Qp61, Qp62, Qp63, Qp64});
+?IN_LOWER_Qp64(55,
+ {Qp49, Qp50, Qp51, Qp52, Qp53,
+ Qp54, queue:in(X, Qp55), Qp56, Qp57, Qp58, Qp59,
+ Qp60, Qp61, Qp62, Qp63, Qp64});
+?IN_LOWER_Qp64(56,
+ {Qp49, Qp50, Qp51, Qp52, Qp53,
+ Qp54, Qp55, queue:in(X, Qp56), Qp57, Qp58, Qp59,
+ Qp60, Qp61, Qp62, Qp63, Qp64});
+?IN_LOWER_Qp64(57,
+ {Qp49, Qp50, Qp51, Qp52, Qp53,
+ Qp54, Qp55, Qp56, queue:in(X, Qp57), Qp58, Qp59,
+ Qp60, Qp61, Qp62, Qp63, Qp64});
+?IN_LOWER_Qp64(58,
+ {Qp49, Qp50, Qp51, Qp52, Qp53,
+ Qp54, Qp55, Qp56, Qp57, queue:in(X, Qp58), Qp59,
+ Qp60, Qp61, Qp62, Qp63, Qp64});
+?IN_LOWER_Qp64(59,
+ {Qp49, Qp50, Qp51, Qp52, Qp53,
+ Qp54, Qp55, Qp56, Qp57, Qp58, queue:in(X, Qp59),
+ Qp60, Qp61, Qp62, Qp63, Qp64});
+?IN_LOWER_Qp64(60,
+ {Qp49, Qp50, Qp51, Qp52, Qp53,
+ Qp54, Qp55, Qp56, Qp57, Qp58, Qp59,
+ queue:in(X, Qp60), Qp61, Qp62, Qp63, Qp64});
+?IN_LOWER_Qp64(61,
+ {Qp49, Qp50, Qp51, Qp52, Qp53,
+ Qp54, Qp55, Qp56, Qp57, Qp58, Qp59,
+ Qp60, queue:in(X, Qp61), Qp62, Qp63, Qp64});
+?IN_LOWER_Qp64(62,
+ {Qp49, Qp50, Qp51, Qp52, Qp53,
+ Qp54, Qp55, Qp56, Qp57, Qp58, Qp59,
+ Qp60, Qp61, queue:in(X, Qp62), Qp63, Qp64});
+?IN_LOWER_Qp64(63,
+ {Qp49, Qp50, Qp51, Qp52, Qp53,
+ Qp54, Qp55, Qp56, Qp57, Qp58, Qp59,
+ Qp60, Qp61, Qp62, queue:in(X, Qp63), Qp64});
+?IN_LOWER_Qp64(64,
+ {Qp49, Qp50, Qp51, Qp52, Qp53,
+ Qp54, Qp55, Qp56, Qp57, Qp58, Qp59,
+ Qp60, Qp61, Qp62, Qp63, queue:in(X, Qp64)});
+?IN_LOWER_Qp80(65,
+ {queue:in(X, Qp65), Qp66, Qp67, Qp68, Qp69,
+ Qp70, Qp71, Qp72, Qp73, Qp74, Qp75,
+ Qp76, Qp77, Qp78, Qp79, Qp80});
+?IN_LOWER_Qp80(66,
+ {Qp65, queue:in(X, Qp66), Qp67, Qp68, Qp69,
+ Qp70, Qp71, Qp72, Qp73, Qp74, Qp75,
+ Qp76, Qp77, Qp78, Qp79, Qp80});
+?IN_LOWER_Qp80(67,
+ {Qp65, Qp66, queue:in(X, Qp67), Qp68, Qp69,
+ Qp70, Qp71, Qp72, Qp73, Qp74, Qp75,
+ Qp76, Qp77, Qp78, Qp79, Qp80});
+?IN_LOWER_Qp80(68,
+ {Qp65, Qp66, Qp67, queue:in(X, Qp68), Qp69,
+ Qp70, Qp71, Qp72, Qp73, Qp74, Qp75,
+ Qp76, Qp77, Qp78, Qp79, Qp80});
+?IN_LOWER_Qp80(69,
+ {Qp65, Qp66, Qp67, Qp68, queue:in(X, Qp69),
+ Qp70, Qp71, Qp72, Qp73, Qp74, Qp75,
+ Qp76, Qp77, Qp78, Qp79, Qp80});
+?IN_LOWER_Qp80(70,
+ {Qp65, Qp66, Qp67, Qp68, Qp69,
+ queue:in(X, Qp70), Qp71, Qp72, Qp73, Qp74, Qp75,
+ Qp76, Qp77, Qp78, Qp79, Qp80});
+?IN_LOWER_Qp80(71,
+ {Qp65, Qp66, Qp67, Qp68, Qp69,
+ Qp70, queue:in(X, Qp71), Qp72, Qp73, Qp74, Qp75,
+ Qp76, Qp77, Qp78, Qp79, Qp80});
+?IN_LOWER_Qp80(72,
+ {Qp65, Qp66, Qp67, Qp68, Qp69,
+ Qp70, Qp71, queue:in(X, Qp72), Qp73, Qp74, Qp75,
+ Qp76, Qp77, Qp78, Qp79, Qp80});
+?IN_LOWER_Qp80(73,
+ {Qp65, Qp66, Qp67, Qp68, Qp69,
+ Qp70, Qp71, Qp72, queue:in(X, Qp73), Qp74, Qp75,
+ Qp76, Qp77, Qp78, Qp79, Qp80});
+?IN_LOWER_Qp80(74,
+ {Qp65, Qp66, Qp67, Qp68, Qp69,
+ Qp70, Qp71, Qp72, Qp73, queue:in(X, Qp74), Qp75,
+ Qp76, Qp77, Qp78, Qp79, Qp80});
+?IN_LOWER_Qp80(75,
+ {Qp65, Qp66, Qp67, Qp68, Qp69,
+ Qp70, Qp71, Qp72, Qp73, Qp74, queue:in(X, Qp75),
+ Qp76, Qp77, Qp78, Qp79, Qp80});
+?IN_LOWER_Qp80(76,
+ {Qp65, Qp66, Qp67, Qp68, Qp69,
+ Qp70, Qp71, Qp72, Qp73, Qp74, Qp75,
+ queue:in(X, Qp76), Qp77, Qp78, Qp79, Qp80});
+?IN_LOWER_Qp80(77,
+ {Qp65, Qp66, Qp67, Qp68, Qp69,
+ Qp70, Qp71, Qp72, Qp73, Qp74, Qp75,
+ Qp76, queue:in(X, Qp77), Qp78, Qp79, Qp80});
+?IN_LOWER_Qp80(78,
+ {Qp65, Qp66, Qp67, Qp68, Qp69,
+ Qp70, Qp71, Qp72, Qp73, Qp74, Qp75,
+ Qp76, Qp77, queue:in(X, Qp78), Qp79, Qp80});
+?IN_LOWER_Qp80(79,
+ {Qp65, Qp66, Qp67, Qp68, Qp69,
+ Qp70, Qp71, Qp72, Qp73, Qp74, Qp75,
+ Qp76, Qp77, Qp78, queue:in(X, Qp79), Qp80});
+?IN_LOWER_Qp80(80,
+ {Qp65, Qp66, Qp67, Qp68, Qp69,
+ Qp70, Qp71, Qp72, Qp73, Qp74, Qp75,
+ Qp76, Qp77, Qp78, Qp79, queue:in(X, Qp80)});
+?IN_LOWER_Qp96(81,
+ {queue:in(X, Qp81), Qp82, Qp83, Qp84, Qp85,
+ Qp86, Qp87, Qp88, Qp89, Qp90, Qp91,
+ Qp92, Qp93, Qp94, Qp95, Qp96});
+?IN_LOWER_Qp96(82,
+ {Qp81, queue:in(X, Qp82), Qp83, Qp84, Qp85,
+ Qp86, Qp87, Qp88, Qp89, Qp90, Qp91,
+ Qp92, Qp93, Qp94, Qp95, Qp96});
+?IN_LOWER_Qp96(83,
+ {Qp81, Qp82, queue:in(X, Qp83), Qp84, Qp85,
+ Qp86, Qp87, Qp88, Qp89, Qp90, Qp91,
+ Qp92, Qp93, Qp94, Qp95, Qp96});
+?IN_LOWER_Qp96(84,
+ {Qp81, Qp82, Qp83, queue:in(X, Qp84), Qp85,
+ Qp86, Qp87, Qp88, Qp89, Qp90, Qp91,
+ Qp92, Qp93, Qp94, Qp95, Qp96});
+?IN_LOWER_Qp96(85,
+ {Qp81, Qp82, Qp83, Qp84, queue:in(X, Qp85),
+ Qp86, Qp87, Qp88, Qp89, Qp90, Qp91,
+ Qp92, Qp93, Qp94, Qp95, Qp96});
+?IN_LOWER_Qp96(86,
+ {Qp81, Qp82, Qp83, Qp84, Qp85,
+ queue:in(X, Qp86), Qp87, Qp88, Qp89, Qp90, Qp91,
+ Qp92, Qp93, Qp94, Qp95, Qp96});
+?IN_LOWER_Qp96(87,
+ {Qp81, Qp82, Qp83, Qp84, Qp85,
+ Qp86, queue:in(X, Qp87), Qp88, Qp89, Qp90, Qp91,
+ Qp92, Qp93, Qp94, Qp95, Qp96});
+?IN_LOWER_Qp96(88,
+ {Qp81, Qp82, Qp83, Qp84, Qp85,
+ Qp86, Qp87, queue:in(X, Qp88), Qp89, Qp90, Qp91,
+ Qp92, Qp93, Qp94, Qp95, Qp96});
+?IN_LOWER_Qp96(89,
+ {Qp81, Qp82, Qp83, Qp84, Qp85,
+ Qp86, Qp87, Qp88, queue:in(X, Qp89), Qp90, Qp91,
+ Qp92, Qp93, Qp94, Qp95, Qp96});
+?IN_LOWER_Qp96(90,
+ {Qp81, Qp82, Qp83, Qp84, Qp85,
+ Qp86, Qp87, Qp88, Qp89, queue:in(X, Qp90), Qp91,
+ Qp92, Qp93, Qp94, Qp95, Qp96});
+?IN_LOWER_Qp96(91,
+ {Qp81, Qp82, Qp83, Qp84, Qp85,
+ Qp86, Qp87, Qp88, Qp89, Qp90, queue:in(X, Qp91),
+ Qp92, Qp93, Qp94, Qp95, Qp96});
+?IN_LOWER_Qp96(92,
+ {Qp81, Qp82, Qp83, Qp84, Qp85,
+ Qp86, Qp87, Qp88, Qp89, Qp90, Qp91,
+ queue:in(X, Qp92), Qp93, Qp94, Qp95, Qp96});
+?IN_LOWER_Qp96(93,
+ {Qp81, Qp82, Qp83, Qp84, Qp85,
+ Qp86, Qp87, Qp88, Qp89, Qp90, Qp91,
+ Qp92, queue:in(X, Qp93), Qp94, Qp95, Qp96});
+?IN_LOWER_Qp96(94,
+ {Qp81, Qp82, Qp83, Qp84, Qp85,
+ Qp86, Qp87, Qp88, Qp89, Qp90, Qp91,
+ Qp92, Qp93, queue:in(X, Qp94), Qp95, Qp96});
+?IN_LOWER_Qp96(95,
+ {Qp81, Qp82, Qp83, Qp84, Qp85,
+ Qp86, Qp87, Qp88, Qp89, Qp90, Qp91,
+ Qp92, Qp93, Qp94, queue:in(X, Qp95), Qp96});
+?IN_LOWER_Qp96(96,
+ {Qp81, Qp82, Qp83, Qp84, Qp85,
+ Qp86, Qp87, Qp88, Qp89, Qp90, Qp91,
+ Qp92, Qp93, Qp94, Qp95, queue:in(X, Qp96)});
+?IN_LOWER_Qp112(97,
+ {queue:in(X, Qp97), Qp98, Qp99, Qp100, Qp101,
+ Qp102, Qp103, Qp104, Qp105, Qp106, Qp107,
+ Qp108, Qp109, Qp110, Qp111, Qp112});
+?IN_LOWER_Qp112(98,
+ {Qp97, queue:in(X, Qp98), Qp99, Qp100, Qp101,
+ Qp102, Qp103, Qp104, Qp105, Qp106, Qp107,
+ Qp108, Qp109, Qp110, Qp111, Qp112});
+?IN_LOWER_Qp112(99,
+ {Qp97, Qp98, queue:in(X, Qp99), Qp100, Qp101,
+ Qp102, Qp103, Qp104, Qp105, Qp106, Qp107,
+ Qp108, Qp109, Qp110, Qp111, Qp112});
+?IN_LOWER_Qp112(100,
+ {Qp97, Qp98, Qp99, queue:in(X, Qp100), Qp101,
+ Qp102, Qp103, Qp104, Qp105, Qp106, Qp107,
+ Qp108, Qp109, Qp110, Qp111, Qp112});
+?IN_LOWER_Qp112(101,
+ {Qp97, Qp98, Qp99, Qp100, queue:in(X, Qp101),
+ Qp102, Qp103, Qp104, Qp105, Qp106, Qp107,
+ Qp108, Qp109, Qp110, Qp111, Qp112});
+?IN_LOWER_Qp112(102,
+ {Qp97, Qp98, Qp99, Qp100, Qp101,
+ queue:in(X, Qp102), Qp103, Qp104, Qp105, Qp106, Qp107,
+ Qp108, Qp109, Qp110, Qp111, Qp112});
+?IN_LOWER_Qp112(103,
+ {Qp97, Qp98, Qp99, Qp100, Qp101,
+ Qp102, queue:in(X, Qp103), Qp104, Qp105, Qp106, Qp107,
+ Qp108, Qp109, Qp110, Qp111, Qp112});
+?IN_LOWER_Qp112(104,
+ {Qp97, Qp98, Qp99, Qp100, Qp101,
+ Qp102, Qp103, queue:in(X, Qp104), Qp105, Qp106, Qp107,
+ Qp108, Qp109, Qp110, Qp111, Qp112});
+?IN_LOWER_Qp112(105,
+ {Qp97, Qp98, Qp99, Qp100, Qp101,
+ Qp102, Qp103, Qp104, queue:in(X, Qp105), Qp106, Qp107,
+ Qp108, Qp109, Qp110, Qp111, Qp112});
+?IN_LOWER_Qp112(106,
+ {Qp97, Qp98, Qp99, Qp100, Qp101,
+ Qp102, Qp103, Qp104, Qp105, queue:in(X, Qp106), Qp107,
+ Qp108, Qp109, Qp110, Qp111, Qp112});
+?IN_LOWER_Qp112(107,
+ {Qp97, Qp98, Qp99, Qp100, Qp101,
+ Qp102, Qp103, Qp104, Qp105, Qp106, queue:in(X, Qp107),
+ Qp108, Qp109, Qp110, Qp111, Qp112});
+?IN_LOWER_Qp112(108,
+ {Qp97, Qp98, Qp99, Qp100, Qp101,
+ Qp102, Qp103, Qp104, Qp105, Qp106, Qp107,
+ queue:in(X, Qp108), Qp109, Qp110, Qp111, Qp112});
+?IN_LOWER_Qp112(109,
+ {Qp97, Qp98, Qp99, Qp100, Qp101,
+ Qp102, Qp103, Qp104, Qp105, Qp106, Qp107,
+ Qp108, queue:in(X, Qp109), Qp110, Qp111, Qp112});
+?IN_LOWER_Qp112(110,
+ {Qp97, Qp98, Qp99, Qp100, Qp101,
+ Qp102, Qp103, Qp104, Qp105, Qp106, Qp107,
+ Qp108, Qp109, queue:in(X, Qp110), Qp111, Qp112});
+?IN_LOWER_Qp112(111,
+ {Qp97, Qp98, Qp99, Qp100, Qp101,
+ Qp102, Qp103, Qp104, Qp105, Qp106, Qp107,
+ Qp108, Qp109, Qp110, queue:in(X, Qp111), Qp112});
+?IN_LOWER_Qp112(112,
+ {Qp97, Qp98, Qp99, Qp100, Qp101,
+ Qp102, Qp103, Qp104, Qp105, Qp106, Qp107,
+ Qp108, Qp109, Qp110, Qp111, queue:in(X, Qp112)});
+?IN_LOWER_Qp128(113,
+ {queue:in(X, Qp113), Qp114, Qp115, Qp116, Qp117,
+ Qp118, Qp119, Qp120, Qp121, Qp122, Qp123,
+ Qp124, Qp125, Qp126, Qp127, Qp128});
+?IN_LOWER_Qp128(114,
+ {Qp113, queue:in(X, Qp114), Qp115, Qp116, Qp117,
+ Qp118, Qp119, Qp120, Qp121, Qp122, Qp123,
+ Qp124, Qp125, Qp126, Qp127, Qp128});
+?IN_LOWER_Qp128(115,
+ {Qp113, Qp114, queue:in(X, Qp115), Qp116, Qp117,
+ Qp118, Qp119, Qp120, Qp121, Qp122, Qp123,
+ Qp124, Qp125, Qp126, Qp127, Qp128});
+?IN_LOWER_Qp128(116,
+ {Qp113, Qp114, Qp115, queue:in(X, Qp116), Qp117,
+ Qp118, Qp119, Qp120, Qp121, Qp122, Qp123,
+ Qp124, Qp125, Qp126, Qp127, Qp128});
+?IN_LOWER_Qp128(117,
+ {Qp113, Qp114, Qp115, Qp116, queue:in(X, Qp117),
+ Qp118, Qp119, Qp120, Qp121, Qp122, Qp123,
+ Qp124, Qp125, Qp126, Qp127, Qp128});
+?IN_LOWER_Qp128(118,
+ {Qp113, Qp114, Qp115, Qp116, Qp117,
+ queue:in(X, Qp118), Qp119, Qp120, Qp121, Qp122, Qp123,
+ Qp124, Qp125, Qp126, Qp127, Qp128});
+?IN_LOWER_Qp128(119,
+ {Qp113, Qp114, Qp115, Qp116, Qp117,
+ Qp118, queue:in(X, Qp119), Qp120, Qp121, Qp122, Qp123,
+ Qp124, Qp125, Qp126, Qp127, Qp128});
+?IN_LOWER_Qp128(120,
+ {Qp113, Qp114, Qp115, Qp116, Qp117,
+ Qp118, Qp119, queue:in(X, Qp120), Qp121, Qp122, Qp123,
+ Qp124, Qp125, Qp126, Qp127, Qp128});
+?IN_LOWER_Qp128(121,
+ {Qp113, Qp114, Qp115, Qp116, Qp117,
+ Qp118, Qp119, Qp120, queue:in(X, Qp121), Qp122, Qp123,
+ Qp124, Qp125, Qp126, Qp127, Qp128});
+?IN_LOWER_Qp128(122,
+ {Qp113, Qp114, Qp115, Qp116, Qp117,
+ Qp118, Qp119, Qp120, Qp121, queue:in(X, Qp122), Qp123,
+ Qp124, Qp125, Qp126, Qp127, Qp128});
+?IN_LOWER_Qp128(123,
+ {Qp113, Qp114, Qp115, Qp116, Qp117,
+ Qp118, Qp119, Qp120, Qp121, Qp122, queue:in(X, Qp123),
+ Qp124, Qp125, Qp126, Qp127, Qp128});
+?IN_LOWER_Qp128(124,
+ {Qp113, Qp114, Qp115, Qp116, Qp117,
+ Qp118, Qp119, Qp120, Qp121, Qp122, Qp123,
+ queue:in(X, Qp124), Qp125, Qp126, Qp127, Qp128});
+?IN_LOWER_Qp128(125,
+ {Qp113, Qp114, Qp115, Qp116, Qp117,
+ Qp118, Qp119, Qp120, Qp121, Qp122, Qp123,
+ Qp124, queue:in(X, Qp125), Qp126, Qp127, Qp128});
+?IN_LOWER_Qp128(126,
+ {Qp113, Qp114, Qp115, Qp116, Qp117,
+ Qp118, Qp119, Qp120, Qp121, Qp122, Qp123,
+ Qp124, Qp125, queue:in(X, Qp126), Qp127, Qp128});
+?IN_LOWER_Qp128(127,
+ {Qp113, Qp114, Qp115, Qp116, Qp117,
+ Qp118, Qp119, Qp120, Qp121, Qp122, Qp123,
+ Qp124, Qp125, Qp126, queue:in(X, Qp127), Qp128});
+?IN_LOWER_Qp128(128,
+ {Qp113, Qp114, Qp115, Qp116, Qp117,
+ Qp118, Qp119, Qp120, Qp121, Qp122, Qp123,
+ Qp124, Qp125, Qp126, Qp127, queue:in(X, Qp128)}).
+
+%% @hidden
+-define(OUT_CURRENT_Qn128(P, V1, V2, V3),
+out_current(P,
+ {_,
+ Size,
+ {Qn128, Qn127, Qn126, Qn125, Qn124, Qn123, Qn122, Qn121,
+ Qn120, Qn119, Qn118, Qn117, Qn116, Qn115, Qn114, Qn113},
+ Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128} = Q) ->
+ {Value, V2} = queue:out(V1),
+ if
+ Value =:= empty ->
+ out_current(P + 1, Q);
+ true ->
+ NewSize = Size - 1,
+ {Value,
+ {if NewSize == 0 -> empty; true -> P end,
+ NewSize,
+ V3,
+ Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}}
+ end).
+-define(OUT_CURRENT_Qn112(P, V1, V2, V3),
+out_current(P,
+ {_,
+ Size,
+ Qn128,
+ {Qn112, Qn111, Qn110, Qn109, Qn108, Qn107, Qn106, Qn105,
+ Qn104, Qn103, Qn102, Qn101, Qn100, Qn99, Qn98, Qn97},
+ Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128} = Q) ->
+ {Value, V2} = queue:out(V1),
+ if
+ Value =:= empty ->
+ out_current(P + 1, Q);
+ true ->
+ NewSize = Size - 1,
+ {Value,
+ {if NewSize == 0 -> empty; true -> P end,
+ NewSize,
+ Qn128,
+ V3,
+ Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}}
+ end).
+-define(OUT_CURRENT_Qn96(P, V1, V2, V3),
+out_current(P,
+ {_,
+ Size,
+ Qn128, Qn112,
+ {Qn96, Qn95, Qn94, Qn93, Qn92, Qn91, Qn90, Qn89,
+ Qn88, Qn87, Qn86, Qn85, Qn84, Qn83, Qn82, Qn81},
+ Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128} = Q) ->
+ {Value, V2} = queue:out(V1),
+ if
+ Value =:= empty ->
+ out_current(P + 1, Q);
+ true ->
+ NewSize = Size - 1,
+ {Value,
+ {if NewSize == 0 -> empty; true -> P end,
+ NewSize,
+ Qn128, Qn112,
+ V3,
+ Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}}
+ end).
+-define(OUT_CURRENT_Qn80(P, V1, V2, V3),
+out_current(P,
+ {_,
+ Size,
+ Qn128, Qn112, Qn96,
+ {Qn80, Qn79, Qn78, Qn77, Qn76, Qn75, Qn74, Qn73,
+ Qn72, Qn71, Qn70, Qn69, Qn68, Qn67, Qn66, Qn65},
+ Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128} = Q) ->
+ {Value, V2} = queue:out(V1),
+ if
+ Value =:= empty ->
+ out_current(P + 1, Q);
+ true ->
+ NewSize = Size - 1,
+ {Value,
+ {if NewSize == 0 -> empty; true -> P end,
+ NewSize,
+ Qn128, Qn112, Qn96,
+ V3,
+ Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}}
+ end).
+-define(OUT_CURRENT_Qn64(P, V1, V2, V3),
+out_current(P,
+ {_,
+ Size,
+ Qn128, Qn112, Qn96, Qn80,
+ {Qn64, Qn63, Qn62, Qn61, Qn60, Qn59, Qn58, Qn57,
+ Qn56, Qn55, Qn54, Qn53, Qn52, Qn51, Qn50, Qn49},
+ Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128} = Q) ->
+ {Value, V2} = queue:out(V1),
+ if
+ Value =:= empty ->
+ out_current(P + 1, Q);
+ true ->
+ NewSize = Size - 1,
+ {Value,
+ {if NewSize == 0 -> empty; true -> P end,
+ NewSize,
+ Qn128, Qn112, Qn96, Qn80,
+ V3,
+ Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}}
+ end).
+-define(OUT_CURRENT_Qn48(P, V1, V2, V3),
+out_current(P,
+ {_,
+ Size,
+ Qn128, Qn112, Qn96, Qn80, Qn64,
+ {Qn48, Qn47, Qn46, Qn45, Qn44, Qn43, Qn42, Qn41,
+ Qn40, Qn39, Qn38, Qn37, Qn36, Qn35, Qn34, Qn33},
+ Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128} = Q) ->
+ {Value, V2} = queue:out(V1),
+ if
+ Value =:= empty ->
+ out_current(P + 1, Q);
+ true ->
+ NewSize = Size - 1,
+ {Value,
+ {if NewSize == 0 -> empty; true -> P end,
+ NewSize,
+ Qn128, Qn112, Qn96, Qn80, Qn64,
+ V3,
+ Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}}
+ end).
+-define(OUT_CURRENT_Qn32(P, V1, V2, V3),
+out_current(P,
+ {_,
+ Size,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48,
+ {Qn32, Qn31, Qn30, Qn29, Qn28, Qn27, Qn26, Qn25,
+ Qn24, Qn23, Qn22, Qn21, Qn20, Qn19, Qn18, Qn17},
+ Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128} = Q) ->
+ {Value, V2} = queue:out(V1),
+ if
+ Value =:= empty ->
+ out_current(P + 1, Q);
+ true ->
+ NewSize = Size - 1,
+ {Value,
+ {if NewSize == 0 -> empty; true -> P end,
+ NewSize,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48,
+ V3,
+ Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}}
+ end).
+-define(OUT_CURRENT_Qn16(P, V1, V2, V3),
+out_current(P,
+ {_,
+ Size,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32,
+ {Qn16, Qn15, Qn14, Qn13, Qn12, Qn11, Qn10, Qn9,
+ Qn8, Qn7, Qn6, Qn5, Qn4, Qn3, Qn2, Qn1},
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128} = Q) ->
+ {Value, V2} = queue:out(V1),
+ if
+ Value =:= empty ->
+ out_current(P + 1, Q);
+ true ->
+ NewSize = Size - 1,
+ {Value,
+ {if NewSize == 0 -> empty; true -> P end,
+ NewSize,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32,
+ V3,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}}
+ end).
+-define(OUT_CURRENT_Qp16(P, V1, V2, V3),
+out_current(P,
+ {_,
+ Size,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ {Qp1, Qp2, Qp3, Qp4, Qp5, Qp6, Qp7, Qp8,
+ Qp9, Qp10, Qp11, Qp12, Qp13, Qp14, Qp15, Qp16},
+ Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128} = Q) ->
+ {Value, V2} = queue:out(V1),
+ if
+ Value =:= empty ->
+ out_current(P + 1, Q);
+ true ->
+ NewSize = Size - 1,
+ {Value,
+ {if NewSize == 0 -> empty; true -> P end,
+ NewSize,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ V3,
+ Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}}
+ end).
+-define(OUT_CURRENT_Qp32(P, V1, V2, V3),
+out_current(P,
+ {_,
+ Size,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16,
+ {Qp17, Qp18, Qp19, Qp20, Qp21, Qp22, Qp23, Qp24,
+ Qp25, Qp26, Qp27, Qp28, Qp29, Qp30, Qp31, Qp32},
+ Qp48, Qp64, Qp80, Qp96, Qp112, Qp128} = Q) ->
+ {Value, V2} = queue:out(V1),
+ if
+ Value =:= empty ->
+ out_current(P + 1, Q);
+ true ->
+ NewSize = Size - 1,
+ {Value,
+ {if NewSize == 0 -> empty; true -> P end,
+ NewSize,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16,
+ V3,
+ Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}}
+ end).
+-define(OUT_CURRENT_Qp48(P, V1, V2, V3),
+out_current(P,
+ {_,
+ Size,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32,
+ {Qp33, Qp34, Qp35, Qp36, Qp37, Qp38, Qp39, Qp40,
+ Qp41, Qp42, Qp43, Qp44, Qp45, Qp46, Qp47, Qp48},
+ Qp64, Qp80, Qp96, Qp112, Qp128} = Q) ->
+ {Value, V2} = queue:out(V1),
+ if
+ Value =:= empty ->
+ out_current(P + 1, Q);
+ true ->
+ NewSize = Size - 1,
+ {Value,
+ {if NewSize == 0 -> empty; true -> P end,
+ NewSize,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32,
+ V3,
+ Qp64, Qp80, Qp96, Qp112, Qp128}}
+ end).
+-define(OUT_CURRENT_Qp64(P, V1, V2, V3),
+out_current(P,
+ {_,
+ Size,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48,
+ {Qp49, Qp50, Qp51, Qp52, Qp53, Qp54, Qp55, Qp56,
+ Qp57, Qp58, Qp59, Qp60, Qp61, Qp62, Qp63, Qp64},
+ Qp80, Qp96, Qp112, Qp128} = Q) ->
+ {Value, V2} = queue:out(V1),
+ if
+ Value =:= empty ->
+ out_current(P + 1, Q);
+ true ->
+ NewSize = Size - 1,
+ {Value,
+ {if NewSize == 0 -> empty; true -> P end,
+ NewSize,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48,
+ V3,
+ Qp80, Qp96, Qp112, Qp128}}
+ end).
+-define(OUT_CURRENT_Qp80(P, V1, V2, V3),
+out_current(P,
+ {_,
+ Size,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64,
+ {Qp65, Qp66, Qp67, Qp68, Qp69, Qp70, Qp71, Qp72,
+ Qp73, Qp74, Qp75, Qp76, Qp77, Qp78, Qp79, Qp80},
+ Qp96, Qp112, Qp128} = Q) ->
+ {Value, V2} = queue:out(V1),
+ if
+ Value =:= empty ->
+ out_current(P + 1, Q);
+ true ->
+ NewSize = Size - 1,
+ {Value,
+ {if NewSize == 0 -> empty; true -> P end,
+ NewSize,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64,
+ V3,
+ Qp96, Qp112, Qp128}}
+ end).
+-define(OUT_CURRENT_Qp96(P, V1, V2, V3),
+out_current(P,
+ {_,
+ Size,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80,
+ {Qp81, Qp82, Qp83, Qp84, Qp85, Qp86, Qp87, Qp88,
+ Qp89, Qp90, Qp91, Qp92, Qp93, Qp94, Qp95, Qp96},
+ Qp112, Qp128} = Q) ->
+ {Value, V2} = queue:out(V1),
+ if
+ Value =:= empty ->
+ out_current(P + 1, Q);
+ true ->
+ NewSize = Size - 1,
+ {Value,
+ {if NewSize == 0 -> empty; true -> P end,
+ NewSize,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80,
+ V3,
+ Qp112, Qp128}}
+ end).
+-define(OUT_CURRENT_Qp112(P, V1, V2, V3),
+out_current(P,
+ {_,
+ Size,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96,
+ {Qp97, Qp98, Qp99, Qp100, Qp101, Qp102, Qp103, Qp104,
+ Qp105, Qp106, Qp107, Qp108, Qp109, Qp110, Qp111, Qp112},
+ Qp128} = Q) ->
+ {Value, V2} = queue:out(V1),
+ if
+ Value =:= empty ->
+ out_current(P + 1, Q);
+ true ->
+ NewSize = Size - 1,
+ {Value,
+ {if NewSize == 0 -> empty; true -> P end,
+ NewSize,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96,
+ V3,
+ Qp128}}
+ end).
+-define(OUT_CURRENT_Qp128(P, V1, V2, V3),
+out_current(P,
+ {_,
+ Size,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112,
+ {Qp113, Qp114, Qp115, Qp116, Qp117, Qp118, Qp119, Qp120,
+ Qp121, Qp122, Qp123, Qp124, Qp125, Qp126, Qp127, Qp128}} = Q) ->
+ {Value, V2} = queue:out(V1),
+ if
+ Value =:= empty ->
+ out_current(P + 1, Q);
+ true ->
+ NewSize = Size - 1,
+ {Value,
+ {if NewSize == 0 -> empty; true -> P end,
+ NewSize,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112,
+ V3}}
+ end).
+
+?OUT_CURRENT_Qn128(-128,
+ Qn128, NewQn128,
+ {NewQn128, Qn127, Qn126, Qn125, Qn124,
+ Qn123, Qn122, Qn121, Qn120, Qn119, Qn118,
+ Qn117, Qn116, Qn115, Qn114, Qn113});
+?OUT_CURRENT_Qn128(-127,
+ Qn127, NewQn127,
+ {Qn128, NewQn127, Qn126, Qn125, Qn124,
+ Qn123, Qn122, Qn121, Qn120, Qn119, Qn118,
+ Qn117, Qn116, Qn115, Qn114, Qn113});
+?OUT_CURRENT_Qn128(-126,
+ Qn126, NewQn126,
+ {Qn128, Qn127, NewQn126, Qn125, Qn124,
+ Qn123, Qn122, Qn121, Qn120, Qn119, Qn118,
+ Qn117, Qn116, Qn115, Qn114, Qn113});
+?OUT_CURRENT_Qn128(-125,
+ Qn125, NewQn125,
+ {Qn128, Qn127, Qn126, NewQn125, Qn124,
+ Qn123, Qn122, Qn121, Qn120, Qn119, Qn118,
+ Qn117, Qn116, Qn115, Qn114, Qn113});
+?OUT_CURRENT_Qn128(-124,
+ Qn124, NewQn124,
+ {Qn128, Qn127, Qn126, Qn125, NewQn124,
+ Qn123, Qn122, Qn121, Qn120, Qn119, Qn118,
+ Qn117, Qn116, Qn115, Qn114, Qn113});
+?OUT_CURRENT_Qn128(-123,
+ Qn123, NewQn123,
+ {Qn128, Qn127, Qn126, Qn125, Qn124,
+ NewQn123, Qn122, Qn121, Qn120, Qn119, Qn118,
+ Qn117, Qn116, Qn115, Qn114, Qn113});
+?OUT_CURRENT_Qn128(-122,
+ Qn122, NewQn122,
+ {Qn128, Qn127, Qn126, Qn125, Qn124,
+ Qn123, NewQn122, Qn121, Qn120, Qn119, Qn118,
+ Qn117, Qn116, Qn115, Qn114, Qn113});
+?OUT_CURRENT_Qn128(-121,
+ Qn121, NewQn121,
+ {Qn128, Qn127, Qn126, Qn125, Qn124,
+ Qn123, Qn122, NewQn121, Qn120, Qn119, Qn118,
+ Qn117, Qn116, Qn115, Qn114, Qn113});
+?OUT_CURRENT_Qn128(-120,
+ Qn120, NewQn120,
+ {Qn128, Qn127, Qn126, Qn125, Qn124,
+ Qn123, Qn122, Qn121, NewQn120, Qn119, Qn118,
+ Qn117, Qn116, Qn115, Qn114, Qn113});
+?OUT_CURRENT_Qn128(-119,
+ Qn119, NewQn119,
+ {Qn128, Qn127, Qn126, Qn125, Qn124,
+ Qn123, Qn122, Qn121, Qn120, NewQn119, Qn118,
+ Qn117, Qn116, Qn115, Qn114, Qn113});
+?OUT_CURRENT_Qn128(-118,
+ Qn118, NewQn118,
+ {Qn128, Qn127, Qn126, Qn125, Qn124,
+ Qn123, Qn122, Qn121, Qn120, Qn119, NewQn118,
+ Qn117, Qn116, Qn115, Qn114, Qn113});
+?OUT_CURRENT_Qn128(-117,
+ Qn117, NewQn117,
+ {Qn128, Qn127, Qn126, Qn125, Qn124,
+ Qn123, Qn122, Qn121, Qn120, Qn119, Qn118,
+ NewQn117, Qn116, Qn115, Qn114, Qn113});
+?OUT_CURRENT_Qn128(-116,
+ Qn116, NewQn116,
+ {Qn128, Qn127, Qn126, Qn125, Qn124,
+ Qn123, Qn122, Qn121, Qn120, Qn119, Qn118,
+ Qn117, NewQn116, Qn115, Qn114, Qn113});
+?OUT_CURRENT_Qn128(-115,
+ Qn115, NewQn115,
+ {Qn128, Qn127, Qn126, Qn125, Qn124,
+ Qn123, Qn122, Qn121, Qn120, Qn119, Qn118,
+ Qn117, Qn116, NewQn115, Qn114, Qn113});
+?OUT_CURRENT_Qn128(-114,
+ Qn114, NewQn114,
+ {Qn128, Qn127, Qn126, Qn125, Qn124,
+ Qn123, Qn122, Qn121, Qn120, Qn119, Qn118,
+ Qn117, Qn116, Qn115, NewQn114, Qn113});
+?OUT_CURRENT_Qn128(-113,
+ Qn113, NewQn113,
+ {Qn128, Qn127, Qn126, Qn125, Qn124,
+ Qn123, Qn122, Qn121, Qn120, Qn119, Qn118,
+ Qn117, Qn116, Qn115, Qn114, NewQn113});
+?OUT_CURRENT_Qn112(-112,
+ Qn112, NewQn112,
+ {NewQn112, Qn111, Qn110, Qn109, Qn108,
+ Qn107, Qn106, Qn105, Qn104, Qn103, Qn102,
+ Qn101, Qn100, Qn99, Qn98, Qn97});
+?OUT_CURRENT_Qn112(-111,
+ Qn111, NewQn111,
+ {Qn112, NewQn111, Qn110, Qn109, Qn108,
+ Qn107, Qn106, Qn105, Qn104, Qn103, Qn102,
+ Qn101, Qn100, Qn99, Qn98, Qn97});
+?OUT_CURRENT_Qn112(-110,
+ Qn110, NewQn110,
+ {Qn112, Qn111, NewQn110, Qn109, Qn108,
+ Qn107, Qn106, Qn105, Qn104, Qn103, Qn102,
+ Qn101, Qn100, Qn99, Qn98, Qn97});
+?OUT_CURRENT_Qn112(-109,
+ Qn109, NewQn109,
+ {Qn112, Qn111, Qn110, NewQn109, Qn108,
+ Qn107, Qn106, Qn105, Qn104, Qn103, Qn102,
+ Qn101, Qn100, Qn99, Qn98, Qn97});
+?OUT_CURRENT_Qn112(-108,
+ Qn108, NewQn108,
+ {Qn112, Qn111, Qn110, Qn109, NewQn108,
+ Qn107, Qn106, Qn105, Qn104, Qn103, Qn102,
+ Qn101, Qn100, Qn99, Qn98, Qn97});
+?OUT_CURRENT_Qn112(-107,
+ Qn107, NewQn107,
+ {Qn112, Qn111, Qn110, Qn109, Qn108,
+ NewQn107, Qn106, Qn105, Qn104, Qn103, Qn102,
+ Qn101, Qn100, Qn99, Qn98, Qn97});
+?OUT_CURRENT_Qn112(-106,
+ Qn106, NewQn106,
+ {Qn112, Qn111, Qn110, Qn109, Qn108,
+ Qn107, NewQn106, Qn105, Qn104, Qn103, Qn102,
+ Qn101, Qn100, Qn99, Qn98, Qn97});
+?OUT_CURRENT_Qn112(-105,
+ Qn105, NewQn105,
+ {Qn112, Qn111, Qn110, Qn109, Qn108,
+ Qn107, Qn106, NewQn105, Qn104, Qn103, Qn102,
+ Qn101, Qn100, Qn99, Qn98, Qn97});
+?OUT_CURRENT_Qn112(-104,
+ Qn104, NewQn104,
+ {Qn112, Qn111, Qn110, Qn109, Qn108,
+ Qn107, Qn106, Qn105, NewQn104, Qn103, Qn102,
+ Qn101, Qn100, Qn99, Qn98, Qn97});
+?OUT_CURRENT_Qn112(-103,
+ Qn103, NewQn103,
+ {Qn112, Qn111, Qn110, Qn109, Qn108,
+ Qn107, Qn106, Qn105, Qn104, NewQn103, Qn102,
+ Qn101, Qn100, Qn99, Qn98, Qn97});
+?OUT_CURRENT_Qn112(-102,
+ Qn102, NewQn102,
+ {Qn112, Qn111, Qn110, Qn109, Qn108,
+ Qn107, Qn106, Qn105, Qn104, Qn103, NewQn102,
+ Qn101, Qn100, Qn99, Qn98, Qn97});
+?OUT_CURRENT_Qn112(-101,
+ Qn101, NewQn101,
+ {Qn112, Qn111, Qn110, Qn109, Qn108,
+ Qn107, Qn106, Qn105, Qn104, Qn103, Qn102,
+ NewQn101, Qn100, Qn99, Qn98, Qn97});
+?OUT_CURRENT_Qn112(-100,
+ Qn100, NewQn100,
+ {Qn112, Qn111, Qn110, Qn109, Qn108,
+ Qn107, Qn106, Qn105, Qn104, Qn103, Qn102,
+ Qn101, NewQn100, Qn99, Qn98, Qn97});
+?OUT_CURRENT_Qn112(-99,
+ Qn99, NewQn99,
+ {Qn112, Qn111, Qn110, Qn109, Qn108,
+ Qn107, Qn106, Qn105, Qn104, Qn103, Qn102,
+ Qn101, Qn100, NewQn99, Qn98, Qn97});
+?OUT_CURRENT_Qn112(-98,
+ Qn98, NewQn98,
+ {Qn112, Qn111, Qn110, Qn109, Qn108,
+ Qn107, Qn106, Qn105, Qn104, Qn103, Qn102,
+ Qn101, Qn100, Qn99, NewQn98, Qn97});
+?OUT_CURRENT_Qn112(-97,
+ Qn97, NewQn97,
+ {Qn112, Qn111, Qn110, Qn109, Qn108,
+ Qn107, Qn106, Qn105, Qn104, Qn103, Qn102,
+ Qn101, Qn100, Qn99, Qn98, NewQn97});
+?OUT_CURRENT_Qn96(-96,
+ Qn96, NewQn96,
+ {NewQn96, Qn95, Qn94, Qn93, Qn92,
+ Qn91, Qn90, Qn89, Qn88, Qn87, Qn86,
+ Qn85, Qn84, Qn83, Qn82, Qn81});
+?OUT_CURRENT_Qn96(-95,
+ Qn95, NewQn95,
+ {Qn96, NewQn95, Qn94, Qn93, Qn92,
+ Qn91, Qn90, Qn89, Qn88, Qn87, Qn86,
+ Qn85, Qn84, Qn83, Qn82, Qn81});
+?OUT_CURRENT_Qn96(-94,
+ Qn94, NewQn94,
+ {Qn96, Qn95, NewQn94, Qn93, Qn92,
+ Qn91, Qn90, Qn89, Qn88, Qn87, Qn86,
+ Qn85, Qn84, Qn83, Qn82, Qn81});
+?OUT_CURRENT_Qn96(-93,
+ Qn93, NewQn93,
+ {Qn96, Qn95, Qn94, NewQn93, Qn92,
+ Qn91, Qn90, Qn89, Qn88, Qn87, Qn86,
+ Qn85, Qn84, Qn83, Qn82, Qn81});
+?OUT_CURRENT_Qn96(-92,
+ Qn92, NewQn92,
+ {Qn96, Qn95, Qn94, Qn93, NewQn92,
+ Qn91, Qn90, Qn89, Qn88, Qn87, Qn86,
+ Qn85, Qn84, Qn83, Qn82, Qn81});
+?OUT_CURRENT_Qn96(-91,
+ Qn91, NewQn91,
+ {Qn96, Qn95, Qn94, Qn93, Qn92,
+ NewQn91, Qn90, Qn89, Qn88, Qn87, Qn86,
+ Qn85, Qn84, Qn83, Qn82, Qn81});
+?OUT_CURRENT_Qn96(-90,
+ Qn90, NewQn90,
+ {Qn96, Qn95, Qn94, Qn93, Qn92,
+ Qn91, NewQn90, Qn89, Qn88, Qn87, Qn86,
+ Qn85, Qn84, Qn83, Qn82, Qn81});
+?OUT_CURRENT_Qn96(-89,
+ Qn89, NewQn89,
+ {Qn96, Qn95, Qn94, Qn93, Qn92,
+ Qn91, Qn90, NewQn89, Qn88, Qn87, Qn86,
+ Qn85, Qn84, Qn83, Qn82, Qn81});
+?OUT_CURRENT_Qn96(-88,
+ Qn88, NewQn88,
+ {Qn96, Qn95, Qn94, Qn93, Qn92,
+ Qn91, Qn90, Qn89, NewQn88, Qn87, Qn86,
+ Qn85, Qn84, Qn83, Qn82, Qn81});
+?OUT_CURRENT_Qn96(-87,
+ Qn87, NewQn87,
+ {Qn96, Qn95, Qn94, Qn93, Qn92,
+ Qn91, Qn90, Qn89, Qn88, NewQn87, Qn86,
+ Qn85, Qn84, Qn83, Qn82, Qn81});
+?OUT_CURRENT_Qn96(-86,
+ Qn86, NewQn86,
+ {Qn96, Qn95, Qn94, Qn93, Qn92,
+ Qn91, Qn90, Qn89, Qn88, Qn87, NewQn86,
+ Qn85, Qn84, Qn83, Qn82, Qn81});
+?OUT_CURRENT_Qn96(-85,
+ Qn85, NewQn85,
+ {Qn96, Qn95, Qn94, Qn93, Qn92,
+ Qn91, Qn90, Qn89, Qn88, Qn87, Qn86,
+ NewQn85, Qn84, Qn83, Qn82, Qn81});
+?OUT_CURRENT_Qn96(-84,
+ Qn84, NewQn84,
+ {Qn96, Qn95, Qn94, Qn93, Qn92,
+ Qn91, Qn90, Qn89, Qn88, Qn87, Qn86,
+ Qn85, NewQn84, Qn83, Qn82, Qn81});
+?OUT_CURRENT_Qn96(-83,
+ Qn83, NewQn83,
+ {Qn96, Qn95, Qn94, Qn93, Qn92,
+ Qn91, Qn90, Qn89, Qn88, Qn87, Qn86,
+ Qn85, Qn84, NewQn83, Qn82, Qn81});
+?OUT_CURRENT_Qn96(-82,
+ Qn82, NewQn82,
+ {Qn96, Qn95, Qn94, Qn93, Qn92,
+ Qn91, Qn90, Qn89, Qn88, Qn87, Qn86,
+ Qn85, Qn84, Qn83, NewQn82, Qn81});
+?OUT_CURRENT_Qn96(-81,
+ Qn81, NewQn81,
+ {Qn96, Qn95, Qn94, Qn93, Qn92,
+ Qn91, Qn90, Qn89, Qn88, Qn87, Qn86,
+ Qn85, Qn84, Qn83, Qn82, NewQn81});
+?OUT_CURRENT_Qn80(-80,
+ Qn80, NewQn80,
+ {NewQn80, Qn79, Qn78, Qn77, Qn76,
+ Qn75, Qn74, Qn73, Qn72, Qn71, Qn70,
+ Qn69, Qn68, Qn67, Qn66, Qn65});
+?OUT_CURRENT_Qn80(-79,
+ Qn79, NewQn79,
+ {Qn80, NewQn79, Qn78, Qn77, Qn76,
+ Qn75, Qn74, Qn73, Qn72, Qn71, Qn70,
+ Qn69, Qn68, Qn67, Qn66, Qn65});
+?OUT_CURRENT_Qn80(-78,
+ Qn78, NewQn78,
+ {Qn80, Qn79, NewQn78, Qn77, Qn76,
+ Qn75, Qn74, Qn73, Qn72, Qn71, Qn70,
+ Qn69, Qn68, Qn67, Qn66, Qn65});
+?OUT_CURRENT_Qn80(-77,
+ Qn77, NewQn77,
+ {Qn80, Qn79, Qn78, NewQn77, Qn76,
+ Qn75, Qn74, Qn73, Qn72, Qn71, Qn70,
+ Qn69, Qn68, Qn67, Qn66, Qn65});
+?OUT_CURRENT_Qn80(-76,
+ Qn76, NewQn76,
+ {Qn80, Qn79, Qn78, Qn77, NewQn76,
+ Qn75, Qn74, Qn73, Qn72, Qn71, Qn70,
+ Qn69, Qn68, Qn67, Qn66, Qn65});
+?OUT_CURRENT_Qn80(-75,
+ Qn75, NewQn75,
+ {Qn80, Qn79, Qn78, Qn77, Qn76,
+ NewQn75, Qn74, Qn73, Qn72, Qn71, Qn70,
+ Qn69, Qn68, Qn67, Qn66, Qn65});
+?OUT_CURRENT_Qn80(-74,
+ Qn74, NewQn74,
+ {Qn80, Qn79, Qn78, Qn77, Qn76,
+ Qn75, NewQn74, Qn73, Qn72, Qn71, Qn70,
+ Qn69, Qn68, Qn67, Qn66, Qn65});
+?OUT_CURRENT_Qn80(-73,
+ Qn73, NewQn73,
+ {Qn80, Qn79, Qn78, Qn77, Qn76,
+ Qn75, Qn74, NewQn73, Qn72, Qn71, Qn70,
+ Qn69, Qn68, Qn67, Qn66, Qn65});
+?OUT_CURRENT_Qn80(-72,
+ Qn72, NewQn72,
+ {Qn80, Qn79, Qn78, Qn77, Qn76,
+ Qn75, Qn74, Qn73, NewQn72, Qn71, Qn70,
+ Qn69, Qn68, Qn67, Qn66, Qn65});
+?OUT_CURRENT_Qn80(-71,
+ Qn71, NewQn71,
+ {Qn80, Qn79, Qn78, Qn77, Qn76,
+ Qn75, Qn74, Qn73, Qn72, NewQn71, Qn70,
+ Qn69, Qn68, Qn67, Qn66, Qn65});
+?OUT_CURRENT_Qn80(-70,
+ Qn70, NewQn70,
+ {Qn80, Qn79, Qn78, Qn77, Qn76,
+ Qn75, Qn74, Qn73, Qn72, Qn71, NewQn70,
+ Qn69, Qn68, Qn67, Qn66, Qn65});
+?OUT_CURRENT_Qn80(-69,
+ Qn69, NewQn69,
+ {Qn80, Qn79, Qn78, Qn77, Qn76,
+ Qn75, Qn74, Qn73, Qn72, Qn71, Qn70,
+ NewQn69, Qn68, Qn67, Qn66, Qn65});
+?OUT_CURRENT_Qn80(-68,
+ Qn68, NewQn68,
+ {Qn80, Qn79, Qn78, Qn77, Qn76,
+ Qn75, Qn74, Qn73, Qn72, Qn71, Qn70,
+ Qn69, NewQn68, Qn67, Qn66, Qn65});
+?OUT_CURRENT_Qn80(-67,
+ Qn67, NewQn67,
+ {Qn80, Qn79, Qn78, Qn77, Qn76,
+ Qn75, Qn74, Qn73, Qn72, Qn71, Qn70,
+ Qn69, Qn68, NewQn67, Qn66, Qn65});
+?OUT_CURRENT_Qn80(-66,
+ Qn66, NewQn66,
+ {Qn80, Qn79, Qn78, Qn77, Qn76,
+ Qn75, Qn74, Qn73, Qn72, Qn71, Qn70,
+ Qn69, Qn68, Qn67, NewQn66, Qn65});
+?OUT_CURRENT_Qn80(-65,
+ Qn65, NewQn65,
+ {Qn80, Qn79, Qn78, Qn77, Qn76,
+ Qn75, Qn74, Qn73, Qn72, Qn71, Qn70,
+ Qn69, Qn68, Qn67, Qn66, NewQn65});
+?OUT_CURRENT_Qn64(-64,
+ Qn64, NewQn64,
+ {NewQn64, Qn63, Qn62, Qn61, Qn60,
+ Qn59, Qn58, Qn57, Qn56, Qn55, Qn54,
+ Qn53, Qn52, Qn51, Qn50, Qn49});
+?OUT_CURRENT_Qn64(-63,
+ Qn63, NewQn63,
+ {Qn64, NewQn63, Qn62, Qn61, Qn60,
+ Qn59, Qn58, Qn57, Qn56, Qn55, Qn54,
+ Qn53, Qn52, Qn51, Qn50, Qn49});
+?OUT_CURRENT_Qn64(-62,
+ Qn62, NewQn62,
+ {Qn64, Qn63, NewQn62, Qn61, Qn60,
+ Qn59, Qn58, Qn57, Qn56, Qn55, Qn54,
+ Qn53, Qn52, Qn51, Qn50, Qn49});
+?OUT_CURRENT_Qn64(-61,
+ Qn61, NewQn61,
+ {Qn64, Qn63, Qn62, NewQn61, Qn60,
+ Qn59, Qn58, Qn57, Qn56, Qn55, Qn54,
+ Qn53, Qn52, Qn51, Qn50, Qn49});
+?OUT_CURRENT_Qn64(-60,
+ Qn60, NewQn60,
+ {Qn64, Qn63, Qn62, Qn61, NewQn60,
+ Qn59, Qn58, Qn57, Qn56, Qn55, Qn54,
+ Qn53, Qn52, Qn51, Qn50, Qn49});
+?OUT_CURRENT_Qn64(-59,
+ Qn59, NewQn59,
+ {Qn64, Qn63, Qn62, Qn61, Qn60,
+ NewQn59, Qn58, Qn57, Qn56, Qn55, Qn54,
+ Qn53, Qn52, Qn51, Qn50, Qn49});
+?OUT_CURRENT_Qn64(-58,
+ Qn58, NewQn58,
+ {Qn64, Qn63, Qn62, Qn61, Qn60,
+ Qn59, NewQn58, Qn57, Qn56, Qn55, Qn54,
+ Qn53, Qn52, Qn51, Qn50, Qn49});
+?OUT_CURRENT_Qn64(-57,
+ Qn57, NewQn57,
+ {Qn64, Qn63, Qn62, Qn61, Qn60,
+ Qn59, Qn58, NewQn57, Qn56, Qn55, Qn54,
+ Qn53, Qn52, Qn51, Qn50, Qn49});
+?OUT_CURRENT_Qn64(-56,
+ Qn56, NewQn56,
+ {Qn64, Qn63, Qn62, Qn61, Qn60,
+ Qn59, Qn58, Qn57, NewQn56, Qn55, Qn54,
+ Qn53, Qn52, Qn51, Qn50, Qn49});
+?OUT_CURRENT_Qn64(-55,
+ Qn55, NewQn55,
+ {Qn64, Qn63, Qn62, Qn61, Qn60,
+ Qn59, Qn58, Qn57, Qn56, NewQn55, Qn54,
+ Qn53, Qn52, Qn51, Qn50, Qn49});
+?OUT_CURRENT_Qn64(-54,
+ Qn54, NewQn54,
+ {Qn64, Qn63, Qn62, Qn61, Qn60,
+ Qn59, Qn58, Qn57, Qn56, Qn55, NewQn54,
+ Qn53, Qn52, Qn51, Qn50, Qn49});
+?OUT_CURRENT_Qn64(-53,
+ Qn53, NewQn53,
+ {Qn64, Qn63, Qn62, Qn61, Qn60,
+ Qn59, Qn58, Qn57, Qn56, Qn55, Qn54,
+ NewQn53, Qn52, Qn51, Qn50, Qn49});
+?OUT_CURRENT_Qn64(-52,
+ Qn52, NewQn52,
+ {Qn64, Qn63, Qn62, Qn61, Qn60,
+ Qn59, Qn58, Qn57, Qn56, Qn55, Qn54,
+ Qn53, NewQn52, Qn51, Qn50, Qn49});
+?OUT_CURRENT_Qn64(-51,
+ Qn51, NewQn51,
+ {Qn64, Qn63, Qn62, Qn61, Qn60,
+ Qn59, Qn58, Qn57, Qn56, Qn55, Qn54,
+ Qn53, Qn52, NewQn51, Qn50, Qn49});
+?OUT_CURRENT_Qn64(-50,
+ Qn50, NewQn50,
+ {Qn64, Qn63, Qn62, Qn61, Qn60,
+ Qn59, Qn58, Qn57, Qn56, Qn55, Qn54,
+ Qn53, Qn52, Qn51, NewQn50, Qn49});
+?OUT_CURRENT_Qn64(-49,
+ Qn49, NewQn49,
+ {Qn64, Qn63, Qn62, Qn61, Qn60,
+ Qn59, Qn58, Qn57, Qn56, Qn55, Qn54,
+ Qn53, Qn52, Qn51, Qn50, NewQn49});
+?OUT_CURRENT_Qn48(-48,
+ Qn48, NewQn48,
+ {NewQn48, Qn47, Qn46, Qn45, Qn44,
+ Qn43, Qn42, Qn41, Qn40, Qn39, Qn38,
+ Qn37, Qn36, Qn35, Qn34, Qn33});
+?OUT_CURRENT_Qn48(-47,
+ Qn47, NewQn47,
+ {Qn48, NewQn47, Qn46, Qn45, Qn44,
+ Qn43, Qn42, Qn41, Qn40, Qn39, Qn38,
+ Qn37, Qn36, Qn35, Qn34, Qn33});
+?OUT_CURRENT_Qn48(-46,
+ Qn46, NewQn46,
+ {Qn48, Qn47, NewQn46, Qn45, Qn44,
+ Qn43, Qn42, Qn41, Qn40, Qn39, Qn38,
+ Qn37, Qn36, Qn35, Qn34, Qn33});
+?OUT_CURRENT_Qn48(-45,
+ Qn45, NewQn45,
+ {Qn48, Qn47, Qn46, NewQn45, Qn44,
+ Qn43, Qn42, Qn41, Qn40, Qn39, Qn38,
+ Qn37, Qn36, Qn35, Qn34, Qn33});
+?OUT_CURRENT_Qn48(-44,
+ Qn44, NewQn44,
+ {Qn48, Qn47, Qn46, Qn45, NewQn44,
+ Qn43, Qn42, Qn41, Qn40, Qn39, Qn38,
+ Qn37, Qn36, Qn35, Qn34, Qn33});
+?OUT_CURRENT_Qn48(-43,
+ Qn43, NewQn43,
+ {Qn48, Qn47, Qn46, Qn45, Qn44,
+ NewQn43, Qn42, Qn41, Qn40, Qn39, Qn38,
+ Qn37, Qn36, Qn35, Qn34, Qn33});
+?OUT_CURRENT_Qn48(-42,
+ Qn42, NewQn42,
+ {Qn48, Qn47, Qn46, Qn45, Qn44,
+ Qn43, NewQn42, Qn41, Qn40, Qn39, Qn38,
+ Qn37, Qn36, Qn35, Qn34, Qn33});
+?OUT_CURRENT_Qn48(-41,
+ Qn41, NewQn41,
+ {Qn48, Qn47, Qn46, Qn45, Qn44,
+ Qn43, Qn42, NewQn41, Qn40, Qn39, Qn38,
+ Qn37, Qn36, Qn35, Qn34, Qn33});
+?OUT_CURRENT_Qn48(-40,
+ Qn40, NewQn40,
+ {Qn48, Qn47, Qn46, Qn45, Qn44,
+ Qn43, Qn42, Qn41, NewQn40, Qn39, Qn38,
+ Qn37, Qn36, Qn35, Qn34, Qn33});
+?OUT_CURRENT_Qn48(-39,
+ Qn39, NewQn39,
+ {Qn48, Qn47, Qn46, Qn45, Qn44,
+ Qn43, Qn42, Qn41, Qn40, NewQn39, Qn38,
+ Qn37, Qn36, Qn35, Qn34, Qn33});
+?OUT_CURRENT_Qn48(-38,
+ Qn38, NewQn38,
+ {Qn48, Qn47, Qn46, Qn45, Qn44,
+ Qn43, Qn42, Qn41, Qn40, Qn39, NewQn38,
+ Qn37, Qn36, Qn35, Qn34, Qn33});
+?OUT_CURRENT_Qn48(-37,
+ Qn37, NewQn37,
+ {Qn48, Qn47, Qn46, Qn45, Qn44,
+ Qn43, Qn42, Qn41, Qn40, Qn39, Qn38,
+ NewQn37, Qn36, Qn35, Qn34, Qn33});
+?OUT_CURRENT_Qn48(-36,
+ Qn36, NewQn36,
+ {Qn48, Qn47, Qn46, Qn45, Qn44,
+ Qn43, Qn42, Qn41, Qn40, Qn39, Qn38,
+ Qn37, NewQn36, Qn35, Qn34, Qn33});
+?OUT_CURRENT_Qn48(-35,
+ Qn35, NewQn35,
+ {Qn48, Qn47, Qn46, Qn45, Qn44,
+ Qn43, Qn42, Qn41, Qn40, Qn39, Qn38,
+ Qn37, Qn36, NewQn35, Qn34, Qn33});
+?OUT_CURRENT_Qn48(-34,
+ Qn34, NewQn34,
+ {Qn48, Qn47, Qn46, Qn45, Qn44,
+ Qn43, Qn42, Qn41, Qn40, Qn39, Qn38,
+ Qn37, Qn36, Qn35, NewQn34, Qn33});
+?OUT_CURRENT_Qn48(-33,
+ Qn33, NewQn33,
+ {Qn48, Qn47, Qn46, Qn45, Qn44,
+ Qn43, Qn42, Qn41, Qn40, Qn39, Qn38,
+ Qn37, Qn36, Qn35, Qn34, NewQn33});
+?OUT_CURRENT_Qn32(-32,
+ Qn32, NewQn32,
+ {NewQn32, Qn31, Qn30, Qn29, Qn28,
+ Qn27, Qn26, Qn25, Qn24, Qn23, Qn22,
+ Qn21, Qn20, Qn19, Qn18, Qn17});
+?OUT_CURRENT_Qn32(-31,
+ Qn31, NewQn31,
+ {Qn32, NewQn31, Qn30, Qn29, Qn28,
+ Qn27, Qn26, Qn25, Qn24, Qn23, Qn22,
+ Qn21, Qn20, Qn19, Qn18, Qn17});
+?OUT_CURRENT_Qn32(-30,
+ Qn30, NewQn30,
+ {Qn32, Qn31, NewQn30, Qn29, Qn28,
+ Qn27, Qn26, Qn25, Qn24, Qn23, Qn22,
+ Qn21, Qn20, Qn19, Qn18, Qn17});
+?OUT_CURRENT_Qn32(-29,
+ Qn29, NewQn29,
+ {Qn32, Qn31, Qn30, NewQn29, Qn28,
+ Qn27, Qn26, Qn25, Qn24, Qn23, Qn22,
+ Qn21, Qn20, Qn19, Qn18, Qn17});
+?OUT_CURRENT_Qn32(-28,
+ Qn28, NewQn28,
+ {Qn32, Qn31, Qn30, Qn29, NewQn28,
+ Qn27, Qn26, Qn25, Qn24, Qn23, Qn22,
+ Qn21, Qn20, Qn19, Qn18, Qn17});
+?OUT_CURRENT_Qn32(-27,
+ Qn27, NewQn27,
+ {Qn32, Qn31, Qn30, Qn29, Qn28,
+ NewQn27, Qn26, Qn25, Qn24, Qn23, Qn22,
+ Qn21, Qn20, Qn19, Qn18, Qn17});
+?OUT_CURRENT_Qn32(-26,
+ Qn26, NewQn26,
+ {Qn32, Qn31, Qn30, Qn29, Qn28,
+ Qn27, NewQn26, Qn25, Qn24, Qn23, Qn22,
+ Qn21, Qn20, Qn19, Qn18, Qn17});
+?OUT_CURRENT_Qn32(-25,
+ Qn25, NewQn25,
+ {Qn32, Qn31, Qn30, Qn29, Qn28,
+ Qn27, Qn26, NewQn25, Qn24, Qn23, Qn22,
+ Qn21, Qn20, Qn19, Qn18, Qn17});
+?OUT_CURRENT_Qn32(-24,
+ Qn24, NewQn24,
+ {Qn32, Qn31, Qn30, Qn29, Qn28,
+ Qn27, Qn26, Qn25, NewQn24, Qn23, Qn22,
+ Qn21, Qn20, Qn19, Qn18, Qn17});
+?OUT_CURRENT_Qn32(-23,
+ Qn23, NewQn23,
+ {Qn32, Qn31, Qn30, Qn29, Qn28,
+ Qn27, Qn26, Qn25, Qn24, NewQn23, Qn22,
+ Qn21, Qn20, Qn19, Qn18, Qn17});
+?OUT_CURRENT_Qn32(-22,
+ Qn22, NewQn22,
+ {Qn32, Qn31, Qn30, Qn29, Qn28,
+ Qn27, Qn26, Qn25, Qn24, Qn23, NewQn22,
+ Qn21, Qn20, Qn19, Qn18, Qn17});
+?OUT_CURRENT_Qn32(-21,
+ Qn21, NewQn21,
+ {Qn32, Qn31, Qn30, Qn29, Qn28,
+ Qn27, Qn26, Qn25, Qn24, Qn23, Qn22,
+ NewQn21, Qn20, Qn19, Qn18, Qn17});
+?OUT_CURRENT_Qn32(-20,
+ Qn20, NewQn20,
+ {Qn32, Qn31, Qn30, Qn29, Qn28,
+ Qn27, Qn26, Qn25, Qn24, Qn23, Qn22,
+ Qn21, NewQn20, Qn19, Qn18, Qn17});
+?OUT_CURRENT_Qn32(-19,
+ Qn19, NewQn19,
+ {Qn32, Qn31, Qn30, Qn29, Qn28,
+ Qn27, Qn26, Qn25, Qn24, Qn23, Qn22,
+ Qn21, Qn20, NewQn19, Qn18, Qn17});
+?OUT_CURRENT_Qn32(-18,
+ Qn18, NewQn18,
+ {Qn32, Qn31, Qn30, Qn29, Qn28,
+ Qn27, Qn26, Qn25, Qn24, Qn23, Qn22,
+ Qn21, Qn20, Qn19, NewQn18, Qn17});
+?OUT_CURRENT_Qn32(-17,
+ Qn17, NewQn17,
+ {Qn32, Qn31, Qn30, Qn29, Qn28,
+ Qn27, Qn26, Qn25, Qn24, Qn23, Qn22,
+ Qn21, Qn20, Qn19, Qn18, NewQn17});
+?OUT_CURRENT_Qn16(-16,
+ Qn16, NewQn16,
+ {NewQn16, Qn15, Qn14, Qn13, Qn12,
+ Qn11, Qn10, Qn9, Qn8, Qn7, Qn6,
+ Qn5, Qn4, Qn3, Qn2, Qn1});
+?OUT_CURRENT_Qn16(-15,
+ Qn15, NewQn15,
+ {Qn16, NewQn15, Qn14, Qn13, Qn12,
+ Qn11, Qn10, Qn9, Qn8, Qn7, Qn6,
+ Qn5, Qn4, Qn3, Qn2, Qn1});
+?OUT_CURRENT_Qn16(-14,
+ Qn14, NewQn14,
+ {Qn16, Qn15, NewQn14, Qn13, Qn12,
+ Qn11, Qn10, Qn9, Qn8, Qn7, Qn6,
+ Qn5, Qn4, Qn3, Qn2, Qn1});
+?OUT_CURRENT_Qn16(-13,
+ Qn13, NewQn13,
+ {Qn16, Qn15, Qn14, NewQn13, Qn12,
+ Qn11, Qn10, Qn9, Qn8, Qn7, Qn6,
+ Qn5, Qn4, Qn3, Qn2, Qn1});
+?OUT_CURRENT_Qn16(-12,
+ Qn12, NewQn12,
+ {Qn16, Qn15, Qn14, Qn13, NewQn12,
+ Qn11, Qn10, Qn9, Qn8, Qn7, Qn6,
+ Qn5, Qn4, Qn3, Qn2, Qn1});
+?OUT_CURRENT_Qn16(-11,
+ Qn11, NewQn11,
+ {Qn16, Qn15, Qn14, Qn13, Qn12,
+ NewQn11, Qn10, Qn9, Qn8, Qn7, Qn6,
+ Qn5, Qn4, Qn3, Qn2, Qn1});
+?OUT_CURRENT_Qn16(-10,
+ Qn10, NewQn10,
+ {Qn16, Qn15, Qn14, Qn13, Qn12,
+ Qn11, NewQn10, Qn9, Qn8, Qn7, Qn6,
+ Qn5, Qn4, Qn3, Qn2, Qn1});
+?OUT_CURRENT_Qn16(-9,
+ Qn9, NewQn9,
+ {Qn16, Qn15, Qn14, Qn13, Qn12,
+ Qn11, Qn10, NewQn9, Qn8, Qn7, Qn6,
+ Qn5, Qn4, Qn3, Qn2, Qn1});
+?OUT_CURRENT_Qn16(-8,
+ Qn8, NewQn8,
+ {Qn16, Qn15, Qn14, Qn13, Qn12,
+ Qn11, Qn10, Qn9, NewQn8, Qn7, Qn6,
+ Qn5, Qn4, Qn3, Qn2, Qn1});
+?OUT_CURRENT_Qn16(-7,
+ Qn7, NewQn7,
+ {Qn16, Qn15, Qn14, Qn13, Qn12,
+ Qn11, Qn10, Qn9, Qn8, NewQn7, Qn6,
+ Qn5, Qn4, Qn3, Qn2, Qn1});
+?OUT_CURRENT_Qn16(-6,
+ Qn6, NewQn6,
+ {Qn16, Qn15, Qn14, Qn13, Qn12,
+ Qn11, Qn10, Qn9, Qn8, Qn7, NewQn6,
+ Qn5, Qn4, Qn3, Qn2, Qn1});
+?OUT_CURRENT_Qn16(-5,
+ Qn5, NewQn5,
+ {Qn16, Qn15, Qn14, Qn13, Qn12,
+ Qn11, Qn10, Qn9, Qn8, Qn7, Qn6,
+ NewQn5, Qn4, Qn3, Qn2, Qn1});
+?OUT_CURRENT_Qn16(-4,
+ Qn4, NewQn4,
+ {Qn16, Qn15, Qn14, Qn13, Qn12,
+ Qn11, Qn10, Qn9, Qn8, Qn7, Qn6,
+ Qn5, NewQn4, Qn3, Qn2, Qn1});
+?OUT_CURRENT_Qn16(-3,
+ Qn3, NewQn3,
+ {Qn16, Qn15, Qn14, Qn13, Qn12,
+ Qn11, Qn10, Qn9, Qn8, Qn7, Qn6,
+ Qn5, Qn4, NewQn3, Qn2, Qn1});
+?OUT_CURRENT_Qn16(-2,
+ Qn2, NewQn2,
+ {Qn16, Qn15, Qn14, Qn13, Qn12,
+ Qn11, Qn10, Qn9, Qn8, Qn7, Qn6,
+ Qn5, Qn4, Qn3, NewQn2, Qn1});
+?OUT_CURRENT_Qn16(-1,
+ Qn1, NewQn1,
+ {Qn16, Qn15, Qn14, Qn13, Qn12,
+ Qn11, Qn10, Qn9, Qn8, Qn7, Qn6,
+ Qn5, Qn4, Qn3, Qn2, NewQn1});
+out_current(0,
+ {_,
+ Size,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128} = Q) ->
+ {Value, NewQ0} = queue:out(Q0),
+ if
+ Value =:= empty ->
+ out_current(1, Q);
+ true ->
+ NewSize = Size - 1,
+ {Value,
+ {if NewSize == 0 -> empty; true -> 0 end,
+ NewSize,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ NewQ0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}}
+ end;
+?OUT_CURRENT_Qp16(1,
+ Qp1, NewQp1,
+ {NewQp1, Qp2, Qp3, Qp4, Qp5,
+ Qp6, Qp7, Qp8, Qp9, Qp10, Qp11,
+ Qp12, Qp13, Qp14, Qp15, Qp16});
+?OUT_CURRENT_Qp16(2,
+ Qp2, NewQp2,
+ {Qp1, NewQp2, Qp3, Qp4, Qp5,
+ Qp6, Qp7, Qp8, Qp9, Qp10, Qp11,
+ Qp12, Qp13, Qp14, Qp15, Qp16});
+?OUT_CURRENT_Qp16(3,
+ Qp3, NewQp3,
+ {Qp1, Qp2, NewQp3, Qp4, Qp5,
+ Qp6, Qp7, Qp8, Qp9, Qp10, Qp11,
+ Qp12, Qp13, Qp14, Qp15, Qp16});
+?OUT_CURRENT_Qp16(4,
+ Qp4, NewQp4,
+ {Qp1, Qp2, Qp3, NewQp4, Qp5,
+ Qp6, Qp7, Qp8, Qp9, Qp10, Qp11,
+ Qp12, Qp13, Qp14, Qp15, Qp16});
+?OUT_CURRENT_Qp16(5,
+ Qp5, NewQp5,
+ {Qp1, Qp2, Qp3, Qp4, NewQp5,
+ Qp6, Qp7, Qp8, Qp9, Qp10, Qp11,
+ Qp12, Qp13, Qp14, Qp15, Qp16});
+?OUT_CURRENT_Qp16(6,
+ Qp6, NewQp6,
+ {Qp1, Qp2, Qp3, Qp4, Qp5,
+ NewQp6, Qp7, Qp8, Qp9, Qp10, Qp11,
+ Qp12, Qp13, Qp14, Qp15, Qp16});
+?OUT_CURRENT_Qp16(7,
+ Qp7, NewQp7,
+ {Qp1, Qp2, Qp3, Qp4, Qp5,
+ Qp6, NewQp7, Qp8, Qp9, Qp10, Qp11,
+ Qp12, Qp13, Qp14, Qp15, Qp16});
+?OUT_CURRENT_Qp16(8,
+ Qp8, NewQp8,
+ {Qp1, Qp2, Qp3, Qp4, Qp5,
+ Qp6, Qp7, NewQp8, Qp9, Qp10, Qp11,
+ Qp12, Qp13, Qp14, Qp15, Qp16});
+?OUT_CURRENT_Qp16(9,
+ Qp9, NewQp9,
+ {Qp1, Qp2, Qp3, Qp4, Qp5,
+ Qp6, Qp7, Qp8, NewQp9, Qp10, Qp11,
+ Qp12, Qp13, Qp14, Qp15, Qp16});
+?OUT_CURRENT_Qp16(10,
+ Qp10, NewQp10,
+ {Qp1, Qp2, Qp3, Qp4, Qp5,
+ Qp6, Qp7, Qp8, Qp9, NewQp10, Qp11,
+ Qp12, Qp13, Qp14, Qp15, Qp16});
+?OUT_CURRENT_Qp16(11,
+ Qp11, NewQp11,
+ {Qp1, Qp2, Qp3, Qp4, Qp5,
+ Qp6, Qp7, Qp8, Qp9, Qp10, NewQp11,
+ Qp12, Qp13, Qp14, Qp15, Qp16});
+?OUT_CURRENT_Qp16(12,
+ Qp12, NewQp12,
+ {Qp1, Qp2, Qp3, Qp4, Qp5,
+ Qp6, Qp7, Qp8, Qp9, Qp10, Qp11,
+ NewQp12, Qp13, Qp14, Qp15, Qp16});
+?OUT_CURRENT_Qp16(13,
+ Qp13, NewQp13,
+ {Qp1, Qp2, Qp3, Qp4, Qp5,
+ Qp6, Qp7, Qp8, Qp9, Qp10, Qp11,
+ Qp12, NewQp13, Qp14, Qp15, Qp16});
+?OUT_CURRENT_Qp16(14,
+ Qp14, NewQp14,
+ {Qp1, Qp2, Qp3, Qp4, Qp5,
+ Qp6, Qp7, Qp8, Qp9, Qp10, Qp11,
+ Qp12, Qp13, NewQp14, Qp15, Qp16});
+?OUT_CURRENT_Qp16(15,
+ Qp15, NewQp15,
+ {Qp1, Qp2, Qp3, Qp4, Qp5,
+ Qp6, Qp7, Qp8, Qp9, Qp10, Qp11,
+ Qp12, Qp13, Qp14, NewQp15, Qp16});
+?OUT_CURRENT_Qp16(16,
+ Qp16, NewQp16,
+ {Qp1, Qp2, Qp3, Qp4, Qp5,
+ Qp6, Qp7, Qp8, Qp9, Qp10, Qp11,
+ Qp12, Qp13, Qp14, Qp15, NewQp16});
+?OUT_CURRENT_Qp32(17,
+ Qp17, NewQp17,
+ {NewQp17, Qp18, Qp19, Qp20, Qp21,
+ Qp22, Qp23, Qp24, Qp25, Qp26, Qp27,
+ Qp28, Qp29, Qp30, Qp31, Qp32});
+?OUT_CURRENT_Qp32(18,
+ Qp18, NewQp18,
+ {Qp17, NewQp18, Qp19, Qp20, Qp21,
+ Qp22, Qp23, Qp24, Qp25, Qp26, Qp27,
+ Qp28, Qp29, Qp30, Qp31, Qp32});
+?OUT_CURRENT_Qp32(19,
+ Qp19, NewQp19,
+ {Qp17, Qp18, NewQp19, Qp20, Qp21,
+ Qp22, Qp23, Qp24, Qp25, Qp26, Qp27,
+ Qp28, Qp29, Qp30, Qp31, Qp32});
+?OUT_CURRENT_Qp32(20,
+ Qp20, NewQp20,
+ {Qp17, Qp18, Qp19, NewQp20, Qp21,
+ Qp22, Qp23, Qp24, Qp25, Qp26, Qp27,
+ Qp28, Qp29, Qp30, Qp31, Qp32});
+?OUT_CURRENT_Qp32(21,
+ Qp21, NewQp21,
+ {Qp17, Qp18, Qp19, Qp20, NewQp21,
+ Qp22, Qp23, Qp24, Qp25, Qp26, Qp27,
+ Qp28, Qp29, Qp30, Qp31, Qp32});
+?OUT_CURRENT_Qp32(22,
+ Qp22, NewQp22,
+ {Qp17, Qp18, Qp19, Qp20, Qp21,
+ NewQp22, Qp23, Qp24, Qp25, Qp26, Qp27,
+ Qp28, Qp29, Qp30, Qp31, Qp32});
+?OUT_CURRENT_Qp32(23,
+ Qp23, NewQp23,
+ {Qp17, Qp18, Qp19, Qp20, Qp21,
+ Qp22, NewQp23, Qp24, Qp25, Qp26, Qp27,
+ Qp28, Qp29, Qp30, Qp31, Qp32});
+?OUT_CURRENT_Qp32(24,
+ Qp24, NewQp24,
+ {Qp17, Qp18, Qp19, Qp20, Qp21,
+ Qp22, Qp23, NewQp24, Qp25, Qp26, Qp27,
+ Qp28, Qp29, Qp30, Qp31, Qp32});
+?OUT_CURRENT_Qp32(25,
+ Qp25, NewQp25,
+ {Qp17, Qp18, Qp19, Qp20, Qp21,
+ Qp22, Qp23, Qp24, NewQp25, Qp26, Qp27,
+ Qp28, Qp29, Qp30, Qp31, Qp32});
+?OUT_CURRENT_Qp32(26,
+ Qp26, NewQp26,
+ {Qp17, Qp18, Qp19, Qp20, Qp21,
+ Qp22, Qp23, Qp24, Qp25, NewQp26, Qp27,
+ Qp28, Qp29, Qp30, Qp31, Qp32});
+?OUT_CURRENT_Qp32(27,
+ Qp27, NewQp27,
+ {Qp17, Qp18, Qp19, Qp20, Qp21,
+ Qp22, Qp23, Qp24, Qp25, Qp26, NewQp27,
+ Qp28, Qp29, Qp30, Qp31, Qp32});
+?OUT_CURRENT_Qp32(28,
+ Qp28, NewQp28,
+ {Qp17, Qp18, Qp19, Qp20, Qp21,
+ Qp22, Qp23, Qp24, Qp25, Qp26, Qp27,
+ NewQp28, Qp29, Qp30, Qp31, Qp32});
+?OUT_CURRENT_Qp32(29,
+ Qp29, NewQp29,
+ {Qp17, Qp18, Qp19, Qp20, Qp21,
+ Qp22, Qp23, Qp24, Qp25, Qp26, Qp27,
+ Qp28, NewQp29, Qp30, Qp31, Qp32});
+?OUT_CURRENT_Qp32(30,
+ Qp30, NewQp30,
+ {Qp17, Qp18, Qp19, Qp20, Qp21,
+ Qp22, Qp23, Qp24, Qp25, Qp26, Qp27,
+ Qp28, Qp29, NewQp30, Qp31, Qp32});
+?OUT_CURRENT_Qp32(31,
+ Qp31, NewQp31,
+ {Qp17, Qp18, Qp19, Qp20, Qp21,
+ Qp22, Qp23, Qp24, Qp25, Qp26, Qp27,
+ Qp28, Qp29, Qp30, NewQp31, Qp32});
+?OUT_CURRENT_Qp32(32,
+ Qp32, NewQp32,
+ {Qp17, Qp18, Qp19, Qp20, Qp21,
+ Qp22, Qp23, Qp24, Qp25, Qp26, Qp27,
+ Qp28, Qp29, Qp30, Qp31, NewQp32});
+?OUT_CURRENT_Qp48(33,
+ Qp33, NewQp33,
+ {NewQp33, Qp34, Qp35, Qp36, Qp37,
+ Qp38, Qp39, Qp40, Qp41, Qp42, Qp43,
+ Qp44, Qp45, Qp46, Qp47, Qp48});
+?OUT_CURRENT_Qp48(34,
+ Qp34, NewQp34,
+ {Qp33, NewQp34, Qp35, Qp36, Qp37,
+ Qp38, Qp39, Qp40, Qp41, Qp42, Qp43,
+ Qp44, Qp45, Qp46, Qp47, Qp48});
+?OUT_CURRENT_Qp48(35,
+ Qp35, NewQp35,
+ {Qp33, Qp34, NewQp35, Qp36, Qp37,
+ Qp38, Qp39, Qp40, Qp41, Qp42, Qp43,
+ Qp44, Qp45, Qp46, Qp47, Qp48});
+?OUT_CURRENT_Qp48(36,
+ Qp36, NewQp36,
+ {Qp33, Qp34, Qp35, NewQp36, Qp37,
+ Qp38, Qp39, Qp40, Qp41, Qp42, Qp43,
+ Qp44, Qp45, Qp46, Qp47, Qp48});
+?OUT_CURRENT_Qp48(37,
+ Qp37, NewQp37,
+ {Qp33, Qp34, Qp35, Qp36, NewQp37,
+ Qp38, Qp39, Qp40, Qp41, Qp42, Qp43,
+ Qp44, Qp45, Qp46, Qp47, Qp48});
+?OUT_CURRENT_Qp48(38,
+ Qp38, NewQp38,
+ {Qp33, Qp34, Qp35, Qp36, Qp37,
+ NewQp38, Qp39, Qp40, Qp41, Qp42, Qp43,
+ Qp44, Qp45, Qp46, Qp47, Qp48});
+?OUT_CURRENT_Qp48(39,
+ Qp39, NewQp39,
+ {Qp33, Qp34, Qp35, Qp36, Qp37,
+ Qp38, NewQp39, Qp40, Qp41, Qp42, Qp43,
+ Qp44, Qp45, Qp46, Qp47, Qp48});
+?OUT_CURRENT_Qp48(40,
+ Qp40, NewQp40,
+ {Qp33, Qp34, Qp35, Qp36, Qp37,
+ Qp38, Qp39, NewQp40, Qp41, Qp42, Qp43,
+ Qp44, Qp45, Qp46, Qp47, Qp48});
+?OUT_CURRENT_Qp48(41,
+ Qp41, NewQp41,
+ {Qp33, Qp34, Qp35, Qp36, Qp37,
+ Qp38, Qp39, Qp40, NewQp41, Qp42, Qp43,
+ Qp44, Qp45, Qp46, Qp47, Qp48});
+?OUT_CURRENT_Qp48(42,
+ Qp42, NewQp42,
+ {Qp33, Qp34, Qp35, Qp36, Qp37,
+ Qp38, Qp39, Qp40, Qp41, NewQp42, Qp43,
+ Qp44, Qp45, Qp46, Qp47, Qp48});
+?OUT_CURRENT_Qp48(43,
+ Qp43, NewQp43,
+ {Qp33, Qp34, Qp35, Qp36, Qp37,
+ Qp38, Qp39, Qp40, Qp41, Qp42, NewQp43,
+ Qp44, Qp45, Qp46, Qp47, Qp48});
+?OUT_CURRENT_Qp48(44,
+ Qp44, NewQp44,
+ {Qp33, Qp34, Qp35, Qp36, Qp37,
+ Qp38, Qp39, Qp40, Qp41, Qp42, Qp43,
+ NewQp44, Qp45, Qp46, Qp47, Qp48});
+?OUT_CURRENT_Qp48(45,
+ Qp45, NewQp45,
+ {Qp33, Qp34, Qp35, Qp36, Qp37,
+ Qp38, Qp39, Qp40, Qp41, Qp42, Qp43,
+ Qp44, NewQp45, Qp46, Qp47, Qp48});
+?OUT_CURRENT_Qp48(46,
+ Qp46, NewQp46,
+ {Qp33, Qp34, Qp35, Qp36, Qp37,
+ Qp38, Qp39, Qp40, Qp41, Qp42, Qp43,
+ Qp44, Qp45, NewQp46, Qp47, Qp48});
+?OUT_CURRENT_Qp48(47,
+ Qp47, NewQp47,
+ {Qp33, Qp34, Qp35, Qp36, Qp37,
+ Qp38, Qp39, Qp40, Qp41, Qp42, Qp43,
+ Qp44, Qp45, Qp46, NewQp47, Qp48});
+?OUT_CURRENT_Qp48(48,
+ Qp48, NewQp48,
+ {Qp33, Qp34, Qp35, Qp36, Qp37,
+ Qp38, Qp39, Qp40, Qp41, Qp42, Qp43,
+ Qp44, Qp45, Qp46, Qp47, NewQp48});
+?OUT_CURRENT_Qp64(49,
+ Qp49, NewQp49,
+ {NewQp49, Qp50, Qp51, Qp52, Qp53,
+ Qp54, Qp55, Qp56, Qp57, Qp58, Qp59,
+ Qp60, Qp61, Qp62, Qp63, Qp64});
+?OUT_CURRENT_Qp64(50,
+ Qp50, NewQp50,
+ {Qp49, NewQp50, Qp51, Qp52, Qp53,
+ Qp54, Qp55, Qp56, Qp57, Qp58, Qp59,
+ Qp60, Qp61, Qp62, Qp63, Qp64});
+?OUT_CURRENT_Qp64(51,
+ Qp51, NewQp51,
+ {Qp49, Qp50, NewQp51, Qp52, Qp53,
+ Qp54, Qp55, Qp56, Qp57, Qp58, Qp59,
+ Qp60, Qp61, Qp62, Qp63, Qp64});
+?OUT_CURRENT_Qp64(52,
+ Qp52, NewQp52,
+ {Qp49, Qp50, Qp51, NewQp52, Qp53,
+ Qp54, Qp55, Qp56, Qp57, Qp58, Qp59,
+ Qp60, Qp61, Qp62, Qp63, Qp64});
+?OUT_CURRENT_Qp64(53,
+ Qp53, NewQp53,
+ {Qp49, Qp50, Qp51, Qp52, NewQp53,
+ Qp54, Qp55, Qp56, Qp57, Qp58, Qp59,
+ Qp60, Qp61, Qp62, Qp63, Qp64});
+?OUT_CURRENT_Qp64(54,
+ Qp54, NewQp54,
+ {Qp49, Qp50, Qp51, Qp52, Qp53,
+ NewQp54, Qp55, Qp56, Qp57, Qp58, Qp59,
+ Qp60, Qp61, Qp62, Qp63, Qp64});
+?OUT_CURRENT_Qp64(55,
+ Qp55, NewQp55,
+ {Qp49, Qp50, Qp51, Qp52, Qp53,
+ Qp54, NewQp55, Qp56, Qp57, Qp58, Qp59,
+ Qp60, Qp61, Qp62, Qp63, Qp64});
+?OUT_CURRENT_Qp64(56,
+ Qp56, NewQp56,
+ {Qp49, Qp50, Qp51, Qp52, Qp53,
+ Qp54, Qp55, NewQp56, Qp57, Qp58, Qp59,
+ Qp60, Qp61, Qp62, Qp63, Qp64});
+?OUT_CURRENT_Qp64(57,
+ Qp57, NewQp57,
+ {Qp49, Qp50, Qp51, Qp52, Qp53,
+ Qp54, Qp55, Qp56, NewQp57, Qp58, Qp59,
+ Qp60, Qp61, Qp62, Qp63, Qp64});
+?OUT_CURRENT_Qp64(58,
+ Qp58, NewQp58,
+ {Qp49, Qp50, Qp51, Qp52, Qp53,
+ Qp54, Qp55, Qp56, Qp57, NewQp58, Qp59,
+ Qp60, Qp61, Qp62, Qp63, Qp64});
+?OUT_CURRENT_Qp64(59,
+ Qp59, NewQp59,
+ {Qp49, Qp50, Qp51, Qp52, Qp53,
+ Qp54, Qp55, Qp56, Qp57, Qp58, NewQp59,
+ Qp60, Qp61, Qp62, Qp63, Qp64});
+?OUT_CURRENT_Qp64(60,
+ Qp60, NewQp60,
+ {Qp49, Qp50, Qp51, Qp52, Qp53,
+ Qp54, Qp55, Qp56, Qp57, Qp58, Qp59,
+ NewQp60, Qp61, Qp62, Qp63, Qp64});
+?OUT_CURRENT_Qp64(61,
+ Qp61, NewQp61,
+ {Qp49, Qp50, Qp51, Qp52, Qp53,
+ Qp54, Qp55, Qp56, Qp57, Qp58, Qp59,
+ Qp60, NewQp61, Qp62, Qp63, Qp64});
+?OUT_CURRENT_Qp64(62,
+ Qp62, NewQp62,
+ {Qp49, Qp50, Qp51, Qp52, Qp53,
+ Qp54, Qp55, Qp56, Qp57, Qp58, Qp59,
+ Qp60, Qp61, NewQp62, Qp63, Qp64});
+?OUT_CURRENT_Qp64(63,
+ Qp63, NewQp63,
+ {Qp49, Qp50, Qp51, Qp52, Qp53,
+ Qp54, Qp55, Qp56, Qp57, Qp58, Qp59,
+ Qp60, Qp61, Qp62, NewQp63, Qp64});
+?OUT_CURRENT_Qp64(64,
+ Qp64, NewQp64,
+ {Qp49, Qp50, Qp51, Qp52, Qp53,
+ Qp54, Qp55, Qp56, Qp57, Qp58, Qp59,
+ Qp60, Qp61, Qp62, Qp63, NewQp64});
+?OUT_CURRENT_Qp80(65,
+ Qp65, NewQp65,
+ {NewQp65, Qp66, Qp67, Qp68, Qp69,
+ Qp70, Qp71, Qp72, Qp73, Qp74, Qp75,
+ Qp76, Qp77, Qp78, Qp79, Qp80});
+?OUT_CURRENT_Qp80(66,
+ Qp66, NewQp66,
+ {Qp65, NewQp66, Qp67, Qp68, Qp69,
+ Qp70, Qp71, Qp72, Qp73, Qp74, Qp75,
+ Qp76, Qp77, Qp78, Qp79, Qp80});
+?OUT_CURRENT_Qp80(67,
+ Qp67, NewQp67,
+ {Qp65, Qp66, NewQp67, Qp68, Qp69,
+ Qp70, Qp71, Qp72, Qp73, Qp74, Qp75,
+ Qp76, Qp77, Qp78, Qp79, Qp80});
+?OUT_CURRENT_Qp80(68,
+ Qp68, NewQp68,
+ {Qp65, Qp66, Qp67, NewQp68, Qp69,
+ Qp70, Qp71, Qp72, Qp73, Qp74, Qp75,
+ Qp76, Qp77, Qp78, Qp79, Qp80});
+?OUT_CURRENT_Qp80(69,
+ Qp69, NewQp69,
+ {Qp65, Qp66, Qp67, Qp68, NewQp69,
+ Qp70, Qp71, Qp72, Qp73, Qp74, Qp75,
+ Qp76, Qp77, Qp78, Qp79, Qp80});
+?OUT_CURRENT_Qp80(70,
+ Qp70, NewQp70,
+ {Qp65, Qp66, Qp67, Qp68, Qp69,
+ NewQp70, Qp71, Qp72, Qp73, Qp74, Qp75,
+ Qp76, Qp77, Qp78, Qp79, Qp80});
+?OUT_CURRENT_Qp80(71,
+ Qp71, NewQp71,
+ {Qp65, Qp66, Qp67, Qp68, Qp69,
+ Qp70, NewQp71, Qp72, Qp73, Qp74, Qp75,
+ Qp76, Qp77, Qp78, Qp79, Qp80});
+?OUT_CURRENT_Qp80(72,
+ Qp72, NewQp72,
+ {Qp65, Qp66, Qp67, Qp68, Qp69,
+ Qp70, Qp71, NewQp72, Qp73, Qp74, Qp75,
+ Qp76, Qp77, Qp78, Qp79, Qp80});
+?OUT_CURRENT_Qp80(73,
+ Qp73, NewQp73,
+ {Qp65, Qp66, Qp67, Qp68, Qp69,
+ Qp70, Qp71, Qp72, NewQp73, Qp74, Qp75,
+ Qp76, Qp77, Qp78, Qp79, Qp80});
+?OUT_CURRENT_Qp80(74,
+ Qp74, NewQp74,
+ {Qp65, Qp66, Qp67, Qp68, Qp69,
+ Qp70, Qp71, Qp72, Qp73, NewQp74, Qp75,
+ Qp76, Qp77, Qp78, Qp79, Qp80});
+?OUT_CURRENT_Qp80(75,
+ Qp75, NewQp75,
+ {Qp65, Qp66, Qp67, Qp68, Qp69,
+ Qp70, Qp71, Qp72, Qp73, Qp74, NewQp75,
+ Qp76, Qp77, Qp78, Qp79, Qp80});
+?OUT_CURRENT_Qp80(76,
+ Qp76, NewQp76,
+ {Qp65, Qp66, Qp67, Qp68, Qp69,
+ Qp70, Qp71, Qp72, Qp73, Qp74, Qp75,
+ NewQp76, Qp77, Qp78, Qp79, Qp80});
+?OUT_CURRENT_Qp80(77,
+ Qp77, NewQp77,
+ {Qp65, Qp66, Qp67, Qp68, Qp69,
+ Qp70, Qp71, Qp72, Qp73, Qp74, Qp75,
+ Qp76, NewQp77, Qp78, Qp79, Qp80});
+?OUT_CURRENT_Qp80(78,
+ Qp78, NewQp78,
+ {Qp65, Qp66, Qp67, Qp68, Qp69,
+ Qp70, Qp71, Qp72, Qp73, Qp74, Qp75,
+ Qp76, Qp77, NewQp78, Qp79, Qp80});
+?OUT_CURRENT_Qp80(79,
+ Qp79, NewQp79,
+ {Qp65, Qp66, Qp67, Qp68, Qp69,
+ Qp70, Qp71, Qp72, Qp73, Qp74, Qp75,
+ Qp76, Qp77, Qp78, NewQp79, Qp80});
+?OUT_CURRENT_Qp80(80,
+ Qp80, NewQp80,
+ {Qp65, Qp66, Qp67, Qp68, Qp69,
+ Qp70, Qp71, Qp72, Qp73, Qp74, Qp75,
+ Qp76, Qp77, Qp78, Qp79, NewQp80});
+?OUT_CURRENT_Qp96(81,
+ Qp81, NewQp81,
+ {NewQp81, Qp82, Qp83, Qp84, Qp85,
+ Qp86, Qp87, Qp88, Qp89, Qp90, Qp91,
+ Qp92, Qp93, Qp94, Qp95, Qp96});
+?OUT_CURRENT_Qp96(82,
+ Qp82, NewQp82,
+ {Qp81, NewQp82, Qp83, Qp84, Qp85,
+ Qp86, Qp87, Qp88, Qp89, Qp90, Qp91,
+ Qp92, Qp93, Qp94, Qp95, Qp96});
+?OUT_CURRENT_Qp96(83,
+ Qp83, NewQp83,
+ {Qp81, Qp82, NewQp83, Qp84, Qp85,
+ Qp86, Qp87, Qp88, Qp89, Qp90, Qp91,
+ Qp92, Qp93, Qp94, Qp95, Qp96});
+?OUT_CURRENT_Qp96(84,
+ Qp84, NewQp84,
+ {Qp81, Qp82, Qp83, NewQp84, Qp85,
+ Qp86, Qp87, Qp88, Qp89, Qp90, Qp91,
+ Qp92, Qp93, Qp94, Qp95, Qp96});
+?OUT_CURRENT_Qp96(85,
+ Qp85, NewQp85,
+ {Qp81, Qp82, Qp83, Qp84, NewQp85,
+ Qp86, Qp87, Qp88, Qp89, Qp90, Qp91,
+ Qp92, Qp93, Qp94, Qp95, Qp96});
+?OUT_CURRENT_Qp96(86,
+ Qp86, NewQp86,
+ {Qp81, Qp82, Qp83, Qp84, Qp85,
+ NewQp86, Qp87, Qp88, Qp89, Qp90, Qp91,
+ Qp92, Qp93, Qp94, Qp95, Qp96});
+?OUT_CURRENT_Qp96(87,
+ Qp87, NewQp87,
+ {Qp81, Qp82, Qp83, Qp84, Qp85,
+ Qp86, NewQp87, Qp88, Qp89, Qp90, Qp91,
+ Qp92, Qp93, Qp94, Qp95, Qp96});
+?OUT_CURRENT_Qp96(88,
+ Qp88, NewQp88,
+ {Qp81, Qp82, Qp83, Qp84, Qp85,
+ Qp86, Qp87, NewQp88, Qp89, Qp90, Qp91,
+ Qp92, Qp93, Qp94, Qp95, Qp96});
+?OUT_CURRENT_Qp96(89,
+ Qp89, NewQp89,
+ {Qp81, Qp82, Qp83, Qp84, Qp85,
+ Qp86, Qp87, Qp88, NewQp89, Qp90, Qp91,
+ Qp92, Qp93, Qp94, Qp95, Qp96});
+?OUT_CURRENT_Qp96(90,
+ Qp90, NewQp90,
+ {Qp81, Qp82, Qp83, Qp84, Qp85,
+ Qp86, Qp87, Qp88, Qp89, NewQp90, Qp91,
+ Qp92, Qp93, Qp94, Qp95, Qp96});
+?OUT_CURRENT_Qp96(91,
+ Qp91, NewQp91,
+ {Qp81, Qp82, Qp83, Qp84, Qp85,
+ Qp86, Qp87, Qp88, Qp89, Qp90, NewQp91,
+ Qp92, Qp93, Qp94, Qp95, Qp96});
+?OUT_CURRENT_Qp96(92,
+ Qp92, NewQp92,
+ {Qp81, Qp82, Qp83, Qp84, Qp85,
+ Qp86, Qp87, Qp88, Qp89, Qp90, Qp91,
+ NewQp92, Qp93, Qp94, Qp95, Qp96});
+?OUT_CURRENT_Qp96(93,
+ Qp93, NewQp93,
+ {Qp81, Qp82, Qp83, Qp84, Qp85,
+ Qp86, Qp87, Qp88, Qp89, Qp90, Qp91,
+ Qp92, NewQp93, Qp94, Qp95, Qp96});
+?OUT_CURRENT_Qp96(94,
+ Qp94, NewQp94,
+ {Qp81, Qp82, Qp83, Qp84, Qp85,
+ Qp86, Qp87, Qp88, Qp89, Qp90, Qp91,
+ Qp92, Qp93, NewQp94, Qp95, Qp96});
+?OUT_CURRENT_Qp96(95,
+ Qp95, NewQp95,
+ {Qp81, Qp82, Qp83, Qp84, Qp85,
+ Qp86, Qp87, Qp88, Qp89, Qp90, Qp91,
+ Qp92, Qp93, Qp94, NewQp95, Qp96});
+?OUT_CURRENT_Qp96(96,
+ Qp96, NewQp96,
+ {Qp81, Qp82, Qp83, Qp84, Qp85,
+ Qp86, Qp87, Qp88, Qp89, Qp90, Qp91,
+ Qp92, Qp93, Qp94, Qp95, NewQp96});
+?OUT_CURRENT_Qp112(97,
+ Qp97, NewQp97,
+ {NewQp97, Qp98, Qp99, Qp100, Qp101,
+ Qp102, Qp103, Qp104, Qp105, Qp106, Qp107,
+ Qp108, Qp109, Qp110, Qp111, Qp112});
+?OUT_CURRENT_Qp112(98,
+ Qp98, NewQp98,
+ {Qp97, NewQp98, Qp99, Qp100, Qp101,
+ Qp102, Qp103, Qp104, Qp105, Qp106, Qp107,
+ Qp108, Qp109, Qp110, Qp111, Qp112});
+?OUT_CURRENT_Qp112(99,
+ Qp99, NewQp99,
+ {Qp97, Qp98, NewQp99, Qp100, Qp101,
+ Qp102, Qp103, Qp104, Qp105, Qp106, Qp107,
+ Qp108, Qp109, Qp110, Qp111, Qp112});
+?OUT_CURRENT_Qp112(100,
+ Qp100, NewQp100,
+ {Qp97, Qp98, Qp99, NewQp100, Qp101,
+ Qp102, Qp103, Qp104, Qp105, Qp106, Qp107,
+ Qp108, Qp109, Qp110, Qp111, Qp112});
+?OUT_CURRENT_Qp112(101,
+ Qp101, NewQp101,
+ {Qp97, Qp98, Qp99, Qp100, NewQp101,
+ Qp102, Qp103, Qp104, Qp105, Qp106, Qp107,
+ Qp108, Qp109, Qp110, Qp111, Qp112});
+?OUT_CURRENT_Qp112(102,
+ Qp102, NewQp102,
+ {Qp97, Qp98, Qp99, Qp100, Qp101,
+ NewQp102, Qp103, Qp104, Qp105, Qp106, Qp107,
+ Qp108, Qp109, Qp110, Qp111, Qp112});
+?OUT_CURRENT_Qp112(103,
+ Qp103, NewQp103,
+ {Qp97, Qp98, Qp99, Qp100, Qp101,
+ Qp102, NewQp103, Qp104, Qp105, Qp106, Qp107,
+ Qp108, Qp109, Qp110, Qp111, Qp112});
+?OUT_CURRENT_Qp112(104,
+ Qp104, NewQp104,
+ {Qp97, Qp98, Qp99, Qp100, Qp101,
+ Qp102, Qp103, NewQp104, Qp105, Qp106, Qp107,
+ Qp108, Qp109, Qp110, Qp111, Qp112});
+?OUT_CURRENT_Qp112(105,
+ Qp105, NewQp105,
+ {Qp97, Qp98, Qp99, Qp100, Qp101,
+ Qp102, Qp103, Qp104, NewQp105, Qp106, Qp107,
+ Qp108, Qp109, Qp110, Qp111, Qp112});
+?OUT_CURRENT_Qp112(106,
+ Qp106, NewQp106,
+ {Qp97, Qp98, Qp99, Qp100, Qp101,
+ Qp102, Qp103, Qp104, Qp105, NewQp106, Qp107,
+ Qp108, Qp109, Qp110, Qp111, Qp112});
+?OUT_CURRENT_Qp112(107,
+ Qp107, NewQp107,
+ {Qp97, Qp98, Qp99, Qp100, Qp101,
+ Qp102, Qp103, Qp104, Qp105, Qp106, NewQp107,
+ Qp108, Qp109, Qp110, Qp111, Qp112});
+?OUT_CURRENT_Qp112(108,
+ Qp108, NewQp108,
+ {Qp97, Qp98, Qp99, Qp100, Qp101,
+ Qp102, Qp103, Qp104, Qp105, Qp106, Qp107,
+ NewQp108, Qp109, Qp110, Qp111, Qp112});
+?OUT_CURRENT_Qp112(109,
+ Qp109, NewQp109,
+ {Qp97, Qp98, Qp99, Qp100, Qp101,
+ Qp102, Qp103, Qp104, Qp105, Qp106, Qp107,
+ Qp108, NewQp109, Qp110, Qp111, Qp112});
+?OUT_CURRENT_Qp112(110,
+ Qp110, NewQp110,
+ {Qp97, Qp98, Qp99, Qp100, Qp101,
+ Qp102, Qp103, Qp104, Qp105, Qp106, Qp107,
+ Qp108, Qp109, NewQp110, Qp111, Qp112});
+?OUT_CURRENT_Qp112(111,
+ Qp111, NewQp111,
+ {Qp97, Qp98, Qp99, Qp100, Qp101,
+ Qp102, Qp103, Qp104, Qp105, Qp106, Qp107,
+ Qp108, Qp109, Qp110, NewQp111, Qp112});
+?OUT_CURRENT_Qp112(112,
+ Qp112, NewQp112,
+ {Qp97, Qp98, Qp99, Qp100, Qp101,
+ Qp102, Qp103, Qp104, Qp105, Qp106, Qp107,
+ Qp108, Qp109, Qp110, Qp111, NewQp112});
+?OUT_CURRENT_Qp128(113,
+ Qp113, NewQp113,
+ {NewQp113, Qp114, Qp115, Qp116, Qp117,
+ Qp118, Qp119, Qp120, Qp121, Qp122, Qp123,
+ Qp124, Qp125, Qp126, Qp127, Qp128});
+?OUT_CURRENT_Qp128(114,
+ Qp114, NewQp114,
+ {Qp113, NewQp114, Qp115, Qp116, Qp117,
+ Qp118, Qp119, Qp120, Qp121, Qp122, Qp123,
+ Qp124, Qp125, Qp126, Qp127, Qp128});
+?OUT_CURRENT_Qp128(115,
+ Qp115, NewQp115,
+ {Qp113, Qp114, NewQp115, Qp116, Qp117,
+ Qp118, Qp119, Qp120, Qp121, Qp122, Qp123,
+ Qp124, Qp125, Qp126, Qp127, Qp128});
+?OUT_CURRENT_Qp128(116,
+ Qp116, NewQp116,
+ {Qp113, Qp114, Qp115, NewQp116, Qp117,
+ Qp118, Qp119, Qp120, Qp121, Qp122, Qp123,
+ Qp124, Qp125, Qp126, Qp127, Qp128});
+?OUT_CURRENT_Qp128(117,
+ Qp117, NewQp117,
+ {Qp113, Qp114, Qp115, Qp116, NewQp117,
+ Qp118, Qp119, Qp120, Qp121, Qp122, Qp123,
+ Qp124, Qp125, Qp126, Qp127, Qp128});
+?OUT_CURRENT_Qp128(118,
+ Qp118, NewQp118,
+ {Qp113, Qp114, Qp115, Qp116, Qp117,
+ NewQp118, Qp119, Qp120, Qp121, Qp122, Qp123,
+ Qp124, Qp125, Qp126, Qp127, Qp128});
+?OUT_CURRENT_Qp128(119,
+ Qp119, NewQp119,
+ {Qp113, Qp114, Qp115, Qp116, Qp117,
+ Qp118, NewQp119, Qp120, Qp121, Qp122, Qp123,
+ Qp124, Qp125, Qp126, Qp127, Qp128});
+?OUT_CURRENT_Qp128(120,
+ Qp120, NewQp120,
+ {Qp113, Qp114, Qp115, Qp116, Qp117,
+ Qp118, Qp119, NewQp120, Qp121, Qp122, Qp123,
+ Qp124, Qp125, Qp126, Qp127, Qp128});
+?OUT_CURRENT_Qp128(121,
+ Qp121, NewQp121,
+ {Qp113, Qp114, Qp115, Qp116, Qp117,
+ Qp118, Qp119, Qp120, NewQp121, Qp122, Qp123,
+ Qp124, Qp125, Qp126, Qp127, Qp128});
+?OUT_CURRENT_Qp128(122,
+ Qp122, NewQp122,
+ {Qp113, Qp114, Qp115, Qp116, Qp117,
+ Qp118, Qp119, Qp120, Qp121, NewQp122, Qp123,
+ Qp124, Qp125, Qp126, Qp127, Qp128});
+?OUT_CURRENT_Qp128(123,
+ Qp123, NewQp123,
+ {Qp113, Qp114, Qp115, Qp116, Qp117,
+ Qp118, Qp119, Qp120, Qp121, Qp122, NewQp123,
+ Qp124, Qp125, Qp126, Qp127, Qp128});
+?OUT_CURRENT_Qp128(124,
+ Qp124, NewQp124,
+ {Qp113, Qp114, Qp115, Qp116, Qp117,
+ Qp118, Qp119, Qp120, Qp121, Qp122, Qp123,
+ NewQp124, Qp125, Qp126, Qp127, Qp128});
+?OUT_CURRENT_Qp128(125,
+ Qp125, NewQp125,
+ {Qp113, Qp114, Qp115, Qp116, Qp117,
+ Qp118, Qp119, Qp120, Qp121, Qp122, Qp123,
+ Qp124, NewQp125, Qp126, Qp127, Qp128});
+?OUT_CURRENT_Qp128(126,
+ Qp126, NewQp126,
+ {Qp113, Qp114, Qp115, Qp116, Qp117,
+ Qp118, Qp119, Qp120, Qp121, Qp122, Qp123,
+ Qp124, Qp125, NewQp126, Qp127, Qp128});
+?OUT_CURRENT_Qp128(127,
+ Qp127, NewQp127,
+ {Qp113, Qp114, Qp115, Qp116, Qp117,
+ Qp118, Qp119, Qp120, Qp121, Qp122, Qp123,
+ Qp124, Qp125, Qp126, NewQp127, Qp128});
+out_current(128,
+ {_,
+ Size,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112,
+ {Qp113, Qp114, Qp115, Qp116, Qp117, Qp118, Qp119, Qp120,
+ Qp121, Qp122, Qp123, Qp124, Qp125, Qp126, Qp127, Qp128}}) ->
+ {Value, NewQp128} = queue:out(Qp128),
+ if
+ Value =:= empty ->
+ {empty,
+ {empty,
+ 0,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112,
+ {Qp113, Qp114, Qp115, Qp116, Qp117, Qp118, Qp119, Qp120,
+ Qp121, Qp122, Qp123, Qp124, Qp125, Qp126, Qp127, NewQp128}}};
+ true ->
+ NewSize = Size - 1,
+ {Value,
+ {if NewSize == 0 -> empty; true -> 128 end,
+ NewSize,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112,
+ {Qp113, Qp114, Qp115, Qp116, Qp117, Qp118, Qp119, Qp120,
+ Qp121, Qp122, Qp123, Qp124, Qp125, Qp126, Qp127, NewQp128}}}
+ end.
+
+%% @hidden
+-define(OUT_CURRENT_P_Qn128(P, V1, V2, V3),
+out_current_p(P,
+ {_,
+ Size,
+ {Qn128, Qn127, Qn126, Qn125, Qn124, Qn123, Qn122, Qn121,
+ Qn120, Qn119, Qn118, Qn117, Qn116, Qn115, Qn114, Qn113},
+ Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128} = Q) ->
+ case queue:out(V1) of
+ {empty, _} ->
+ out_current_p(P + 1, Q);
+ {{value, X}, V2} ->
+ NewSize = Size - 1,
+ {{value, X, P},
+ {if NewSize == 0 -> empty; true -> P end,
+ NewSize,
+ V3,
+ Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}}
+ end).
+-define(OUT_CURRENT_P_Qn112(P, V1, V2, V3),
+out_current_p(P,
+ {_,
+ Size,
+ Qn128,
+ {Qn112, Qn111, Qn110, Qn109, Qn108, Qn107, Qn106, Qn105,
+ Qn104, Qn103, Qn102, Qn101, Qn100, Qn99, Qn98, Qn97},
+ Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128} = Q) ->
+ case queue:out(V1) of
+ {empty, _} ->
+ out_current_p(P + 1, Q);
+ {{value, X}, V2} ->
+ NewSize = Size - 1,
+ {{value, X, P},
+ {if NewSize == 0 -> empty; true -> P end,
+ NewSize,
+ Qn128,
+ V3,
+ Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}}
+ end).
+-define(OUT_CURRENT_P_Qn96(P, V1, V2, V3),
+out_current_p(P,
+ {_,
+ Size,
+ Qn128, Qn112,
+ {Qn96, Qn95, Qn94, Qn93, Qn92, Qn91, Qn90, Qn89,
+ Qn88, Qn87, Qn86, Qn85, Qn84, Qn83, Qn82, Qn81},
+ Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128} = Q) ->
+ case queue:out(V1) of
+ {empty, _} ->
+ out_current_p(P + 1, Q);
+ {{value, X}, V2} ->
+ NewSize = Size - 1,
+ {{value, X, P},
+ {if NewSize == 0 -> empty; true -> P end,
+ NewSize,
+ Qn128, Qn112,
+ V3,
+ Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}}
+ end).
+-define(OUT_CURRENT_P_Qn80(P, V1, V2, V3),
+out_current_p(P,
+ {_,
+ Size,
+ Qn128, Qn112, Qn96,
+ {Qn80, Qn79, Qn78, Qn77, Qn76, Qn75, Qn74, Qn73,
+ Qn72, Qn71, Qn70, Qn69, Qn68, Qn67, Qn66, Qn65},
+ Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128} = Q) ->
+ case queue:out(V1) of
+ {empty, _} ->
+ out_current_p(P + 1, Q);
+ {{value, X}, V2} ->
+ NewSize = Size - 1,
+ {{value, X, P},
+ {if NewSize == 0 -> empty; true -> P end,
+ NewSize,
+ Qn128, Qn112, Qn96,
+ V3,
+ Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}}
+ end).
+-define(OUT_CURRENT_P_Qn64(P, V1, V2, V3),
+out_current_p(P,
+ {_,
+ Size,
+ Qn128, Qn112, Qn96, Qn80,
+ {Qn64, Qn63, Qn62, Qn61, Qn60, Qn59, Qn58, Qn57,
+ Qn56, Qn55, Qn54, Qn53, Qn52, Qn51, Qn50, Qn49},
+ Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128} = Q) ->
+ case queue:out(V1) of
+ {empty, _} ->
+ out_current_p(P + 1, Q);
+ {{value, X}, V2} ->
+ NewSize = Size - 1,
+ {{value, X, P},
+ {if NewSize == 0 -> empty; true -> P end,
+ NewSize,
+ Qn128, Qn112, Qn96, Qn80,
+ V3,
+ Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}}
+ end).
+-define(OUT_CURRENT_P_Qn48(P, V1, V2, V3),
+out_current_p(P,
+ {_,
+ Size,
+ Qn128, Qn112, Qn96, Qn80, Qn64,
+ {Qn48, Qn47, Qn46, Qn45, Qn44, Qn43, Qn42, Qn41,
+ Qn40, Qn39, Qn38, Qn37, Qn36, Qn35, Qn34, Qn33},
+ Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128} = Q) ->
+ case queue:out(V1) of
+ {empty, _} ->
+ out_current_p(P + 1, Q);
+ {{value, X}, V2} ->
+ NewSize = Size - 1,
+ {{value, X, P},
+ {if NewSize == 0 -> empty; true -> P end,
+ NewSize,
+ Qn128, Qn112, Qn96, Qn80, Qn64,
+ V3,
+ Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}}
+ end).
+-define(OUT_CURRENT_P_Qn32(P, V1, V2, V3),
+out_current_p(P,
+ {_,
+ Size,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48,
+ {Qn32, Qn31, Qn30, Qn29, Qn28, Qn27, Qn26, Qn25,
+ Qn24, Qn23, Qn22, Qn21, Qn20, Qn19, Qn18, Qn17},
+ Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128} = Q) ->
+ case queue:out(V1) of
+ {empty, _} ->
+ out_current_p(P + 1, Q);
+ {{value, X}, V2} ->
+ NewSize = Size - 1,
+ {{value, X, P},
+ {if NewSize == 0 -> empty; true -> P end,
+ NewSize,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48,
+ V3,
+ Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}}
+ end).
+-define(OUT_CURRENT_P_Qn16(P, V1, V2, V3),
+out_current_p(P,
+ {_,
+ Size,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32,
+ {Qn16, Qn15, Qn14, Qn13, Qn12, Qn11, Qn10, Qn9,
+ Qn8, Qn7, Qn6, Qn5, Qn4, Qn3, Qn2, Qn1},
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128} = Q) ->
+ case queue:out(V1) of
+ {empty, _} ->
+ out_current_p(P + 1, Q);
+ {{value, X}, V2} ->
+ NewSize = Size - 1,
+ {{value, X, P},
+ {if NewSize == 0 -> empty; true -> P end,
+ NewSize,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32,
+ V3,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}}
+ end).
+-define(OUT_CURRENT_P_Qp16(P, V1, V2, V3),
+out_current_p(P,
+ {_,
+ Size,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ {Qp1, Qp2, Qp3, Qp4, Qp5, Qp6, Qp7, Qp8,
+ Qp9, Qp10, Qp11, Qp12, Qp13, Qp14, Qp15, Qp16},
+ Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128} = Q) ->
+ case queue:out(V1) of
+ {empty, _} ->
+ out_current_p(P + 1, Q);
+ {{value, X}, V2} ->
+ NewSize = Size - 1,
+ {{value, X, P},
+ {if NewSize == 0 -> empty; true -> P end,
+ NewSize,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ V3,
+ Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}}
+ end).
+-define(OUT_CURRENT_P_Qp32(P, V1, V2, V3),
+out_current_p(P,
+ {_,
+ Size,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16,
+ {Qp17, Qp18, Qp19, Qp20, Qp21, Qp22, Qp23, Qp24,
+ Qp25, Qp26, Qp27, Qp28, Qp29, Qp30, Qp31, Qp32},
+ Qp48, Qp64, Qp80, Qp96, Qp112, Qp128} = Q) ->
+ case queue:out(V1) of
+ {empty, _} ->
+ out_current_p(P + 1, Q);
+ {{value, X}, V2} ->
+ NewSize = Size - 1,
+ {{value, X, P},
+ {if NewSize == 0 -> empty; true -> P end,
+ NewSize,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16,
+ V3,
+ Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}}
+ end).
+-define(OUT_CURRENT_P_Qp48(P, V1, V2, V3),
+out_current_p(P,
+ {_,
+ Size,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32,
+ {Qp33, Qp34, Qp35, Qp36, Qp37, Qp38, Qp39, Qp40,
+ Qp41, Qp42, Qp43, Qp44, Qp45, Qp46, Qp47, Qp48},
+ Qp64, Qp80, Qp96, Qp112, Qp128} = Q) ->
+ case queue:out(V1) of
+ {empty, _} ->
+ out_current_p(P + 1, Q);
+ {{value, X}, V2} ->
+ NewSize = Size - 1,
+ {{value, X, P},
+ {if NewSize == 0 -> empty; true -> P end,
+ NewSize,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32,
+ V3,
+ Qp64, Qp80, Qp96, Qp112, Qp128}}
+ end).
+-define(OUT_CURRENT_P_Qp64(P, V1, V2, V3),
+out_current_p(P,
+ {_,
+ Size,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48,
+ {Qp49, Qp50, Qp51, Qp52, Qp53, Qp54, Qp55, Qp56,
+ Qp57, Qp58, Qp59, Qp60, Qp61, Qp62, Qp63, Qp64},
+ Qp80, Qp96, Qp112, Qp128} = Q) ->
+ case queue:out(V1) of
+ {empty, _} ->
+ out_current_p(P + 1, Q);
+ {{value, X}, V2} ->
+ NewSize = Size - 1,
+ {{value, X, P},
+ {if NewSize == 0 -> empty; true -> P end,
+ NewSize,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48,
+ V3,
+ Qp80, Qp96, Qp112, Qp128}}
+ end).
+-define(OUT_CURRENT_P_Qp80(P, V1, V2, V3),
+out_current_p(P,
+ {_,
+ Size,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64,
+ {Qp65, Qp66, Qp67, Qp68, Qp69, Qp70, Qp71, Qp72,
+ Qp73, Qp74, Qp75, Qp76, Qp77, Qp78, Qp79, Qp80},
+ Qp96, Qp112, Qp128} = Q) ->
+ case queue:out(V1) of
+ {empty, _} ->
+ out_current_p(P + 1, Q);
+ {{value, X}, V2} ->
+ NewSize = Size - 1,
+ {{value, X, P},
+ {if NewSize == 0 -> empty; true -> P end,
+ NewSize,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64,
+ V3,
+ Qp96, Qp112, Qp128}}
+ end).
+-define(OUT_CURRENT_P_Qp96(P, V1, V2, V3),
+out_current_p(P,
+ {_,
+ Size,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80,
+ {Qp81, Qp82, Qp83, Qp84, Qp85, Qp86, Qp87, Qp88,
+ Qp89, Qp90, Qp91, Qp92, Qp93, Qp94, Qp95, Qp96},
+ Qp112, Qp128} = Q) ->
+ case queue:out(V1) of
+ {empty, _} ->
+ out_current_p(P + 1, Q);
+ {{value, X}, V2} ->
+ NewSize = Size - 1,
+ {{value, X, P},
+ {if NewSize == 0 -> empty; true -> P end,
+ NewSize,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80,
+ V3,
+ Qp112, Qp128}}
+ end).
+-define(OUT_CURRENT_P_Qp112(P, V1, V2, V3),
+out_current_p(P,
+ {_,
+ Size,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96,
+ {Qp97, Qp98, Qp99, Qp100, Qp101, Qp102, Qp103, Qp104,
+ Qp105, Qp106, Qp107, Qp108, Qp109, Qp110, Qp111, Qp112},
+ Qp128} = Q) ->
+ case queue:out(V1) of
+ {empty, _} ->
+ out_current_p(P + 1, Q);
+ {{value, X}, V2} ->
+ NewSize = Size - 1,
+ {{value, X, P},
+ {if NewSize == 0 -> empty; true -> P end,
+ NewSize,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96,
+ V3,
+ Qp128}}
+ end).
+-define(OUT_CURRENT_P_Qp128(P, V1, V2, V3),
+out_current_p(P,
+ {_,
+ Size,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112,
+ {Qp113, Qp114, Qp115, Qp116, Qp117, Qp118, Qp119, Qp120,
+ Qp121, Qp122, Qp123, Qp124, Qp125, Qp126, Qp127, Qp128}} = Q) ->
+ case queue:out(V1) of
+ {empty, _} ->
+ out_current_p(P + 1, Q);
+ {{value, X}, V2} ->
+ NewSize = Size - 1,
+ {{value, X, P},
+ {if NewSize == 0 -> empty; true -> P end,
+ NewSize,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112,
+ V3}}
+ end).
+
+?OUT_CURRENT_P_Qn128(-128,
+ Qn128, NewQn128,
+ {NewQn128, Qn127, Qn126, Qn125, Qn124,
+ Qn123, Qn122, Qn121, Qn120, Qn119, Qn118,
+ Qn117, Qn116, Qn115, Qn114, Qn113});
+?OUT_CURRENT_P_Qn128(-127,
+ Qn127, NewQn127,
+ {Qn128, NewQn127, Qn126, Qn125, Qn124,
+ Qn123, Qn122, Qn121, Qn120, Qn119, Qn118,
+ Qn117, Qn116, Qn115, Qn114, Qn113});
+?OUT_CURRENT_P_Qn128(-126,
+ Qn126, NewQn126,
+ {Qn128, Qn127, NewQn126, Qn125, Qn124,
+ Qn123, Qn122, Qn121, Qn120, Qn119, Qn118,
+ Qn117, Qn116, Qn115, Qn114, Qn113});
+?OUT_CURRENT_P_Qn128(-125,
+ Qn125, NewQn125,
+ {Qn128, Qn127, Qn126, NewQn125, Qn124,
+ Qn123, Qn122, Qn121, Qn120, Qn119, Qn118,
+ Qn117, Qn116, Qn115, Qn114, Qn113});
+?OUT_CURRENT_P_Qn128(-124,
+ Qn124, NewQn124,
+ {Qn128, Qn127, Qn126, Qn125, NewQn124,
+ Qn123, Qn122, Qn121, Qn120, Qn119, Qn118,
+ Qn117, Qn116, Qn115, Qn114, Qn113});
+?OUT_CURRENT_P_Qn128(-123,
+ Qn123, NewQn123,
+ {Qn128, Qn127, Qn126, Qn125, Qn124,
+ NewQn123, Qn122, Qn121, Qn120, Qn119, Qn118,
+ Qn117, Qn116, Qn115, Qn114, Qn113});
+?OUT_CURRENT_P_Qn128(-122,
+ Qn122, NewQn122,
+ {Qn128, Qn127, Qn126, Qn125, Qn124,
+ Qn123, NewQn122, Qn121, Qn120, Qn119, Qn118,
+ Qn117, Qn116, Qn115, Qn114, Qn113});
+?OUT_CURRENT_P_Qn128(-121,
+ Qn121, NewQn121,
+ {Qn128, Qn127, Qn126, Qn125, Qn124,
+ Qn123, Qn122, NewQn121, Qn120, Qn119, Qn118,
+ Qn117, Qn116, Qn115, Qn114, Qn113});
+?OUT_CURRENT_P_Qn128(-120,
+ Qn120, NewQn120,
+ {Qn128, Qn127, Qn126, Qn125, Qn124,
+ Qn123, Qn122, Qn121, NewQn120, Qn119, Qn118,
+ Qn117, Qn116, Qn115, Qn114, Qn113});
+?OUT_CURRENT_P_Qn128(-119,
+ Qn119, NewQn119,
+ {Qn128, Qn127, Qn126, Qn125, Qn124,
+ Qn123, Qn122, Qn121, Qn120, NewQn119, Qn118,
+ Qn117, Qn116, Qn115, Qn114, Qn113});
+?OUT_CURRENT_P_Qn128(-118,
+ Qn118, NewQn118,
+ {Qn128, Qn127, Qn126, Qn125, Qn124,
+ Qn123, Qn122, Qn121, Qn120, Qn119, NewQn118,
+ Qn117, Qn116, Qn115, Qn114, Qn113});
+?OUT_CURRENT_P_Qn128(-117,
+ Qn117, NewQn117,
+ {Qn128, Qn127, Qn126, Qn125, Qn124,
+ Qn123, Qn122, Qn121, Qn120, Qn119, Qn118,
+ NewQn117, Qn116, Qn115, Qn114, Qn113});
+?OUT_CURRENT_P_Qn128(-116,
+ Qn116, NewQn116,
+ {Qn128, Qn127, Qn126, Qn125, Qn124,
+ Qn123, Qn122, Qn121, Qn120, Qn119, Qn118,
+ Qn117, NewQn116, Qn115, Qn114, Qn113});
+?OUT_CURRENT_P_Qn128(-115,
+ Qn115, NewQn115,
+ {Qn128, Qn127, Qn126, Qn125, Qn124,
+ Qn123, Qn122, Qn121, Qn120, Qn119, Qn118,
+ Qn117, Qn116, NewQn115, Qn114, Qn113});
+?OUT_CURRENT_P_Qn128(-114,
+ Qn114, NewQn114,
+ {Qn128, Qn127, Qn126, Qn125, Qn124,
+ Qn123, Qn122, Qn121, Qn120, Qn119, Qn118,
+ Qn117, Qn116, Qn115, NewQn114, Qn113});
+?OUT_CURRENT_P_Qn128(-113,
+ Qn113, NewQn113,
+ {Qn128, Qn127, Qn126, Qn125, Qn124,
+ Qn123, Qn122, Qn121, Qn120, Qn119, Qn118,
+ Qn117, Qn116, Qn115, Qn114, NewQn113});
+?OUT_CURRENT_P_Qn112(-112,
+ Qn112, NewQn112,
+ {NewQn112, Qn111, Qn110, Qn109, Qn108,
+ Qn107, Qn106, Qn105, Qn104, Qn103, Qn102,
+ Qn101, Qn100, Qn99, Qn98, Qn97});
+?OUT_CURRENT_P_Qn112(-111,
+ Qn111, NewQn111,
+ {Qn112, NewQn111, Qn110, Qn109, Qn108,
+ Qn107, Qn106, Qn105, Qn104, Qn103, Qn102,
+ Qn101, Qn100, Qn99, Qn98, Qn97});
+?OUT_CURRENT_P_Qn112(-110,
+ Qn110, NewQn110,
+ {Qn112, Qn111, NewQn110, Qn109, Qn108,
+ Qn107, Qn106, Qn105, Qn104, Qn103, Qn102,
+ Qn101, Qn100, Qn99, Qn98, Qn97});
+?OUT_CURRENT_P_Qn112(-109,
+ Qn109, NewQn109,
+ {Qn112, Qn111, Qn110, NewQn109, Qn108,
+ Qn107, Qn106, Qn105, Qn104, Qn103, Qn102,
+ Qn101, Qn100, Qn99, Qn98, Qn97});
+?OUT_CURRENT_P_Qn112(-108,
+ Qn108, NewQn108,
+ {Qn112, Qn111, Qn110, Qn109, NewQn108,
+ Qn107, Qn106, Qn105, Qn104, Qn103, Qn102,
+ Qn101, Qn100, Qn99, Qn98, Qn97});
+?OUT_CURRENT_P_Qn112(-107,
+ Qn107, NewQn107,
+ {Qn112, Qn111, Qn110, Qn109, Qn108,
+ NewQn107, Qn106, Qn105, Qn104, Qn103, Qn102,
+ Qn101, Qn100, Qn99, Qn98, Qn97});
+?OUT_CURRENT_P_Qn112(-106,
+ Qn106, NewQn106,
+ {Qn112, Qn111, Qn110, Qn109, Qn108,
+ Qn107, NewQn106, Qn105, Qn104, Qn103, Qn102,
+ Qn101, Qn100, Qn99, Qn98, Qn97});
+?OUT_CURRENT_P_Qn112(-105,
+ Qn105, NewQn105,
+ {Qn112, Qn111, Qn110, Qn109, Qn108,
+ Qn107, Qn106, NewQn105, Qn104, Qn103, Qn102,
+ Qn101, Qn100, Qn99, Qn98, Qn97});
+?OUT_CURRENT_P_Qn112(-104,
+ Qn104, NewQn104,
+ {Qn112, Qn111, Qn110, Qn109, Qn108,
+ Qn107, Qn106, Qn105, NewQn104, Qn103, Qn102,
+ Qn101, Qn100, Qn99, Qn98, Qn97});
+?OUT_CURRENT_P_Qn112(-103,
+ Qn103, NewQn103,
+ {Qn112, Qn111, Qn110, Qn109, Qn108,
+ Qn107, Qn106, Qn105, Qn104, NewQn103, Qn102,
+ Qn101, Qn100, Qn99, Qn98, Qn97});
+?OUT_CURRENT_P_Qn112(-102,
+ Qn102, NewQn102,
+ {Qn112, Qn111, Qn110, Qn109, Qn108,
+ Qn107, Qn106, Qn105, Qn104, Qn103, NewQn102,
+ Qn101, Qn100, Qn99, Qn98, Qn97});
+?OUT_CURRENT_P_Qn112(-101,
+ Qn101, NewQn101,
+ {Qn112, Qn111, Qn110, Qn109, Qn108,
+ Qn107, Qn106, Qn105, Qn104, Qn103, Qn102,
+ NewQn101, Qn100, Qn99, Qn98, Qn97});
+?OUT_CURRENT_P_Qn112(-100,
+ Qn100, NewQn100,
+ {Qn112, Qn111, Qn110, Qn109, Qn108,
+ Qn107, Qn106, Qn105, Qn104, Qn103, Qn102,
+ Qn101, NewQn100, Qn99, Qn98, Qn97});
+?OUT_CURRENT_P_Qn112(-99,
+ Qn99, NewQn99,
+ {Qn112, Qn111, Qn110, Qn109, Qn108,
+ Qn107, Qn106, Qn105, Qn104, Qn103, Qn102,
+ Qn101, Qn100, NewQn99, Qn98, Qn97});
+?OUT_CURRENT_P_Qn112(-98,
+ Qn98, NewQn98,
+ {Qn112, Qn111, Qn110, Qn109, Qn108,
+ Qn107, Qn106, Qn105, Qn104, Qn103, Qn102,
+ Qn101, Qn100, Qn99, NewQn98, Qn97});
+?OUT_CURRENT_P_Qn112(-97,
+ Qn97, NewQn97,
+ {Qn112, Qn111, Qn110, Qn109, Qn108,
+ Qn107, Qn106, Qn105, Qn104, Qn103, Qn102,
+ Qn101, Qn100, Qn99, Qn98, NewQn97});
+?OUT_CURRENT_P_Qn96(-96,
+ Qn96, NewQn96,
+ {NewQn96, Qn95, Qn94, Qn93, Qn92,
+ Qn91, Qn90, Qn89, Qn88, Qn87, Qn86,
+ Qn85, Qn84, Qn83, Qn82, Qn81});
+?OUT_CURRENT_P_Qn96(-95,
+ Qn95, NewQn95,
+ {Qn96, NewQn95, Qn94, Qn93, Qn92,
+ Qn91, Qn90, Qn89, Qn88, Qn87, Qn86,
+ Qn85, Qn84, Qn83, Qn82, Qn81});
+?OUT_CURRENT_P_Qn96(-94,
+ Qn94, NewQn94,
+ {Qn96, Qn95, NewQn94, Qn93, Qn92,
+ Qn91, Qn90, Qn89, Qn88, Qn87, Qn86,
+ Qn85, Qn84, Qn83, Qn82, Qn81});
+?OUT_CURRENT_P_Qn96(-93,
+ Qn93, NewQn93,
+ {Qn96, Qn95, Qn94, NewQn93, Qn92,
+ Qn91, Qn90, Qn89, Qn88, Qn87, Qn86,
+ Qn85, Qn84, Qn83, Qn82, Qn81});
+?OUT_CURRENT_P_Qn96(-92,
+ Qn92, NewQn92,
+ {Qn96, Qn95, Qn94, Qn93, NewQn92,
+ Qn91, Qn90, Qn89, Qn88, Qn87, Qn86,
+ Qn85, Qn84, Qn83, Qn82, Qn81});
+?OUT_CURRENT_P_Qn96(-91,
+ Qn91, NewQn91,
+ {Qn96, Qn95, Qn94, Qn93, Qn92,
+ NewQn91, Qn90, Qn89, Qn88, Qn87, Qn86,
+ Qn85, Qn84, Qn83, Qn82, Qn81});
+?OUT_CURRENT_P_Qn96(-90,
+ Qn90, NewQn90,
+ {Qn96, Qn95, Qn94, Qn93, Qn92,
+ Qn91, NewQn90, Qn89, Qn88, Qn87, Qn86,
+ Qn85, Qn84, Qn83, Qn82, Qn81});
+?OUT_CURRENT_P_Qn96(-89,
+ Qn89, NewQn89,
+ {Qn96, Qn95, Qn94, Qn93, Qn92,
+ Qn91, Qn90, NewQn89, Qn88, Qn87, Qn86,
+ Qn85, Qn84, Qn83, Qn82, Qn81});
+?OUT_CURRENT_P_Qn96(-88,
+ Qn88, NewQn88,
+ {Qn96, Qn95, Qn94, Qn93, Qn92,
+ Qn91, Qn90, Qn89, NewQn88, Qn87, Qn86,
+ Qn85, Qn84, Qn83, Qn82, Qn81});
+?OUT_CURRENT_P_Qn96(-87,
+ Qn87, NewQn87,
+ {Qn96, Qn95, Qn94, Qn93, Qn92,
+ Qn91, Qn90, Qn89, Qn88, NewQn87, Qn86,
+ Qn85, Qn84, Qn83, Qn82, Qn81});
+?OUT_CURRENT_P_Qn96(-86,
+ Qn86, NewQn86,
+ {Qn96, Qn95, Qn94, Qn93, Qn92,
+ Qn91, Qn90, Qn89, Qn88, Qn87, NewQn86,
+ Qn85, Qn84, Qn83, Qn82, Qn81});
+?OUT_CURRENT_P_Qn96(-85,
+ Qn85, NewQn85,
+ {Qn96, Qn95, Qn94, Qn93, Qn92,
+ Qn91, Qn90, Qn89, Qn88, Qn87, Qn86,
+ NewQn85, Qn84, Qn83, Qn82, Qn81});
+?OUT_CURRENT_P_Qn96(-84,
+ Qn84, NewQn84,
+ {Qn96, Qn95, Qn94, Qn93, Qn92,
+ Qn91, Qn90, Qn89, Qn88, Qn87, Qn86,
+ Qn85, NewQn84, Qn83, Qn82, Qn81});
+?OUT_CURRENT_P_Qn96(-83,
+ Qn83, NewQn83,
+ {Qn96, Qn95, Qn94, Qn93, Qn92,
+ Qn91, Qn90, Qn89, Qn88, Qn87, Qn86,
+ Qn85, Qn84, NewQn83, Qn82, Qn81});
+?OUT_CURRENT_P_Qn96(-82,
+ Qn82, NewQn82,
+ {Qn96, Qn95, Qn94, Qn93, Qn92,
+ Qn91, Qn90, Qn89, Qn88, Qn87, Qn86,
+ Qn85, Qn84, Qn83, NewQn82, Qn81});
+?OUT_CURRENT_P_Qn96(-81,
+ Qn81, NewQn81,
+ {Qn96, Qn95, Qn94, Qn93, Qn92,
+ Qn91, Qn90, Qn89, Qn88, Qn87, Qn86,
+ Qn85, Qn84, Qn83, Qn82, NewQn81});
+?OUT_CURRENT_P_Qn80(-80,
+ Qn80, NewQn80,
+ {NewQn80, Qn79, Qn78, Qn77, Qn76,
+ Qn75, Qn74, Qn73, Qn72, Qn71, Qn70,
+ Qn69, Qn68, Qn67, Qn66, Qn65});
+?OUT_CURRENT_P_Qn80(-79,
+ Qn79, NewQn79,
+ {Qn80, NewQn79, Qn78, Qn77, Qn76,
+ Qn75, Qn74, Qn73, Qn72, Qn71, Qn70,
+ Qn69, Qn68, Qn67, Qn66, Qn65});
+?OUT_CURRENT_P_Qn80(-78,
+ Qn78, NewQn78,
+ {Qn80, Qn79, NewQn78, Qn77, Qn76,
+ Qn75, Qn74, Qn73, Qn72, Qn71, Qn70,
+ Qn69, Qn68, Qn67, Qn66, Qn65});
+?OUT_CURRENT_P_Qn80(-77,
+ Qn77, NewQn77,
+ {Qn80, Qn79, Qn78, NewQn77, Qn76,
+ Qn75, Qn74, Qn73, Qn72, Qn71, Qn70,
+ Qn69, Qn68, Qn67, Qn66, Qn65});
+?OUT_CURRENT_P_Qn80(-76,
+ Qn76, NewQn76,
+ {Qn80, Qn79, Qn78, Qn77, NewQn76,
+ Qn75, Qn74, Qn73, Qn72, Qn71, Qn70,
+ Qn69, Qn68, Qn67, Qn66, Qn65});
+?OUT_CURRENT_P_Qn80(-75,
+ Qn75, NewQn75,
+ {Qn80, Qn79, Qn78, Qn77, Qn76,
+ NewQn75, Qn74, Qn73, Qn72, Qn71, Qn70,
+ Qn69, Qn68, Qn67, Qn66, Qn65});
+?OUT_CURRENT_P_Qn80(-74,
+ Qn74, NewQn74,
+ {Qn80, Qn79, Qn78, Qn77, Qn76,
+ Qn75, NewQn74, Qn73, Qn72, Qn71, Qn70,
+ Qn69, Qn68, Qn67, Qn66, Qn65});
+?OUT_CURRENT_P_Qn80(-73,
+ Qn73, NewQn73,
+ {Qn80, Qn79, Qn78, Qn77, Qn76,
+ Qn75, Qn74, NewQn73, Qn72, Qn71, Qn70,
+ Qn69, Qn68, Qn67, Qn66, Qn65});
+?OUT_CURRENT_P_Qn80(-72,
+ Qn72, NewQn72,
+ {Qn80, Qn79, Qn78, Qn77, Qn76,
+ Qn75, Qn74, Qn73, NewQn72, Qn71, Qn70,
+ Qn69, Qn68, Qn67, Qn66, Qn65});
+?OUT_CURRENT_P_Qn80(-71,
+ Qn71, NewQn71,
+ {Qn80, Qn79, Qn78, Qn77, Qn76,
+ Qn75, Qn74, Qn73, Qn72, NewQn71, Qn70,
+ Qn69, Qn68, Qn67, Qn66, Qn65});
+?OUT_CURRENT_P_Qn80(-70,
+ Qn70, NewQn70,
+ {Qn80, Qn79, Qn78, Qn77, Qn76,
+ Qn75, Qn74, Qn73, Qn72, Qn71, NewQn70,
+ Qn69, Qn68, Qn67, Qn66, Qn65});
+?OUT_CURRENT_P_Qn80(-69,
+ Qn69, NewQn69,
+ {Qn80, Qn79, Qn78, Qn77, Qn76,
+ Qn75, Qn74, Qn73, Qn72, Qn71, Qn70,
+ NewQn69, Qn68, Qn67, Qn66, Qn65});
+?OUT_CURRENT_P_Qn80(-68,
+ Qn68, NewQn68,
+ {Qn80, Qn79, Qn78, Qn77, Qn76,
+ Qn75, Qn74, Qn73, Qn72, Qn71, Qn70,
+ Qn69, NewQn68, Qn67, Qn66, Qn65});
+?OUT_CURRENT_P_Qn80(-67,
+ Qn67, NewQn67,
+ {Qn80, Qn79, Qn78, Qn77, Qn76,
+ Qn75, Qn74, Qn73, Qn72, Qn71, Qn70,
+ Qn69, Qn68, NewQn67, Qn66, Qn65});
+?OUT_CURRENT_P_Qn80(-66,
+ Qn66, NewQn66,
+ {Qn80, Qn79, Qn78, Qn77, Qn76,
+ Qn75, Qn74, Qn73, Qn72, Qn71, Qn70,
+ Qn69, Qn68, Qn67, NewQn66, Qn65});
+?OUT_CURRENT_P_Qn80(-65,
+ Qn65, NewQn65,
+ {Qn80, Qn79, Qn78, Qn77, Qn76,
+ Qn75, Qn74, Qn73, Qn72, Qn71, Qn70,
+ Qn69, Qn68, Qn67, Qn66, NewQn65});
+?OUT_CURRENT_P_Qn64(-64,
+ Qn64, NewQn64,
+ {NewQn64, Qn63, Qn62, Qn61, Qn60,
+ Qn59, Qn58, Qn57, Qn56, Qn55, Qn54,
+ Qn53, Qn52, Qn51, Qn50, Qn49});
+?OUT_CURRENT_P_Qn64(-63,
+ Qn63, NewQn63,
+ {Qn64, NewQn63, Qn62, Qn61, Qn60,
+ Qn59, Qn58, Qn57, Qn56, Qn55, Qn54,
+ Qn53, Qn52, Qn51, Qn50, Qn49});
+?OUT_CURRENT_P_Qn64(-62,
+ Qn62, NewQn62,
+ {Qn64, Qn63, NewQn62, Qn61, Qn60,
+ Qn59, Qn58, Qn57, Qn56, Qn55, Qn54,
+ Qn53, Qn52, Qn51, Qn50, Qn49});
+?OUT_CURRENT_P_Qn64(-61,
+ Qn61, NewQn61,
+ {Qn64, Qn63, Qn62, NewQn61, Qn60,
+ Qn59, Qn58, Qn57, Qn56, Qn55, Qn54,
+ Qn53, Qn52, Qn51, Qn50, Qn49});
+?OUT_CURRENT_P_Qn64(-60,
+ Qn60, NewQn60,
+ {Qn64, Qn63, Qn62, Qn61, NewQn60,
+ Qn59, Qn58, Qn57, Qn56, Qn55, Qn54,
+ Qn53, Qn52, Qn51, Qn50, Qn49});
+?OUT_CURRENT_P_Qn64(-59,
+ Qn59, NewQn59,
+ {Qn64, Qn63, Qn62, Qn61, Qn60,
+ NewQn59, Qn58, Qn57, Qn56, Qn55, Qn54,
+ Qn53, Qn52, Qn51, Qn50, Qn49});
+?OUT_CURRENT_P_Qn64(-58,
+ Qn58, NewQn58,
+ {Qn64, Qn63, Qn62, Qn61, Qn60,
+ Qn59, NewQn58, Qn57, Qn56, Qn55, Qn54,
+ Qn53, Qn52, Qn51, Qn50, Qn49});
+?OUT_CURRENT_P_Qn64(-57,
+ Qn57, NewQn57,
+ {Qn64, Qn63, Qn62, Qn61, Qn60,
+ Qn59, Qn58, NewQn57, Qn56, Qn55, Qn54,
+ Qn53, Qn52, Qn51, Qn50, Qn49});
+?OUT_CURRENT_P_Qn64(-56,
+ Qn56, NewQn56,
+ {Qn64, Qn63, Qn62, Qn61, Qn60,
+ Qn59, Qn58, Qn57, NewQn56, Qn55, Qn54,
+ Qn53, Qn52, Qn51, Qn50, Qn49});
+?OUT_CURRENT_P_Qn64(-55,
+ Qn55, NewQn55,
+ {Qn64, Qn63, Qn62, Qn61, Qn60,
+ Qn59, Qn58, Qn57, Qn56, NewQn55, Qn54,
+ Qn53, Qn52, Qn51, Qn50, Qn49});
+?OUT_CURRENT_P_Qn64(-54,
+ Qn54, NewQn54,
+ {Qn64, Qn63, Qn62, Qn61, Qn60,
+ Qn59, Qn58, Qn57, Qn56, Qn55, NewQn54,
+ Qn53, Qn52, Qn51, Qn50, Qn49});
+?OUT_CURRENT_P_Qn64(-53,
+ Qn53, NewQn53,
+ {Qn64, Qn63, Qn62, Qn61, Qn60,
+ Qn59, Qn58, Qn57, Qn56, Qn55, Qn54,
+ NewQn53, Qn52, Qn51, Qn50, Qn49});
+?OUT_CURRENT_P_Qn64(-52,
+ Qn52, NewQn52,
+ {Qn64, Qn63, Qn62, Qn61, Qn60,
+ Qn59, Qn58, Qn57, Qn56, Qn55, Qn54,
+ Qn53, NewQn52, Qn51, Qn50, Qn49});
+?OUT_CURRENT_P_Qn64(-51,
+ Qn51, NewQn51,
+ {Qn64, Qn63, Qn62, Qn61, Qn60,
+ Qn59, Qn58, Qn57, Qn56, Qn55, Qn54,
+ Qn53, Qn52, NewQn51, Qn50, Qn49});
+?OUT_CURRENT_P_Qn64(-50,
+ Qn50, NewQn50,
+ {Qn64, Qn63, Qn62, Qn61, Qn60,
+ Qn59, Qn58, Qn57, Qn56, Qn55, Qn54,
+ Qn53, Qn52, Qn51, NewQn50, Qn49});
+?OUT_CURRENT_P_Qn64(-49,
+ Qn49, NewQn49,
+ {Qn64, Qn63, Qn62, Qn61, Qn60,
+ Qn59, Qn58, Qn57, Qn56, Qn55, Qn54,
+ Qn53, Qn52, Qn51, Qn50, NewQn49});
+?OUT_CURRENT_P_Qn48(-48,
+ Qn48, NewQn48,
+ {NewQn48, Qn47, Qn46, Qn45, Qn44,
+ Qn43, Qn42, Qn41, Qn40, Qn39, Qn38,
+ Qn37, Qn36, Qn35, Qn34, Qn33});
+?OUT_CURRENT_P_Qn48(-47,
+ Qn47, NewQn47,
+ {Qn48, NewQn47, Qn46, Qn45, Qn44,
+ Qn43, Qn42, Qn41, Qn40, Qn39, Qn38,
+ Qn37, Qn36, Qn35, Qn34, Qn33});
+?OUT_CURRENT_P_Qn48(-46,
+ Qn46, NewQn46,
+ {Qn48, Qn47, NewQn46, Qn45, Qn44,
+ Qn43, Qn42, Qn41, Qn40, Qn39, Qn38,
+ Qn37, Qn36, Qn35, Qn34, Qn33});
+?OUT_CURRENT_P_Qn48(-45,
+ Qn45, NewQn45,
+ {Qn48, Qn47, Qn46, NewQn45, Qn44,
+ Qn43, Qn42, Qn41, Qn40, Qn39, Qn38,
+ Qn37, Qn36, Qn35, Qn34, Qn33});
+?OUT_CURRENT_P_Qn48(-44,
+ Qn44, NewQn44,
+ {Qn48, Qn47, Qn46, Qn45, NewQn44,
+ Qn43, Qn42, Qn41, Qn40, Qn39, Qn38,
+ Qn37, Qn36, Qn35, Qn34, Qn33});
+?OUT_CURRENT_P_Qn48(-43,
+ Qn43, NewQn43,
+ {Qn48, Qn47, Qn46, Qn45, Qn44,
+ NewQn43, Qn42, Qn41, Qn40, Qn39, Qn38,
+ Qn37, Qn36, Qn35, Qn34, Qn33});
+?OUT_CURRENT_P_Qn48(-42,
+ Qn42, NewQn42,
+ {Qn48, Qn47, Qn46, Qn45, Qn44,
+ Qn43, NewQn42, Qn41, Qn40, Qn39, Qn38,
+ Qn37, Qn36, Qn35, Qn34, Qn33});
+?OUT_CURRENT_P_Qn48(-41,
+ Qn41, NewQn41,
+ {Qn48, Qn47, Qn46, Qn45, Qn44,
+ Qn43, Qn42, NewQn41, Qn40, Qn39, Qn38,
+ Qn37, Qn36, Qn35, Qn34, Qn33});
+?OUT_CURRENT_P_Qn48(-40,
+ Qn40, NewQn40,
+ {Qn48, Qn47, Qn46, Qn45, Qn44,
+ Qn43, Qn42, Qn41, NewQn40, Qn39, Qn38,
+ Qn37, Qn36, Qn35, Qn34, Qn33});
+?OUT_CURRENT_P_Qn48(-39,
+ Qn39, NewQn39,
+ {Qn48, Qn47, Qn46, Qn45, Qn44,
+ Qn43, Qn42, Qn41, Qn40, NewQn39, Qn38,
+ Qn37, Qn36, Qn35, Qn34, Qn33});
+?OUT_CURRENT_P_Qn48(-38,
+ Qn38, NewQn38,
+ {Qn48, Qn47, Qn46, Qn45, Qn44,
+ Qn43, Qn42, Qn41, Qn40, Qn39, NewQn38,
+ Qn37, Qn36, Qn35, Qn34, Qn33});
+?OUT_CURRENT_P_Qn48(-37,
+ Qn37, NewQn37,
+ {Qn48, Qn47, Qn46, Qn45, Qn44,
+ Qn43, Qn42, Qn41, Qn40, Qn39, Qn38,
+ NewQn37, Qn36, Qn35, Qn34, Qn33});
+?OUT_CURRENT_P_Qn48(-36,
+ Qn36, NewQn36,
+ {Qn48, Qn47, Qn46, Qn45, Qn44,
+ Qn43, Qn42, Qn41, Qn40, Qn39, Qn38,
+ Qn37, NewQn36, Qn35, Qn34, Qn33});
+?OUT_CURRENT_P_Qn48(-35,
+ Qn35, NewQn35,
+ {Qn48, Qn47, Qn46, Qn45, Qn44,
+ Qn43, Qn42, Qn41, Qn40, Qn39, Qn38,
+ Qn37, Qn36, NewQn35, Qn34, Qn33});
+?OUT_CURRENT_P_Qn48(-34,
+ Qn34, NewQn34,
+ {Qn48, Qn47, Qn46, Qn45, Qn44,
+ Qn43, Qn42, Qn41, Qn40, Qn39, Qn38,
+ Qn37, Qn36, Qn35, NewQn34, Qn33});
+?OUT_CURRENT_P_Qn48(-33,
+ Qn33, NewQn33,
+ {Qn48, Qn47, Qn46, Qn45, Qn44,
+ Qn43, Qn42, Qn41, Qn40, Qn39, Qn38,
+ Qn37, Qn36, Qn35, Qn34, NewQn33});
+?OUT_CURRENT_P_Qn32(-32,
+ Qn32, NewQn32,
+ {NewQn32, Qn31, Qn30, Qn29, Qn28,
+ Qn27, Qn26, Qn25, Qn24, Qn23, Qn22,
+ Qn21, Qn20, Qn19, Qn18, Qn17});
+?OUT_CURRENT_P_Qn32(-31,
+ Qn31, NewQn31,
+ {Qn32, NewQn31, Qn30, Qn29, Qn28,
+ Qn27, Qn26, Qn25, Qn24, Qn23, Qn22,
+ Qn21, Qn20, Qn19, Qn18, Qn17});
+?OUT_CURRENT_P_Qn32(-30,
+ Qn30, NewQn30,
+ {Qn32, Qn31, NewQn30, Qn29, Qn28,
+ Qn27, Qn26, Qn25, Qn24, Qn23, Qn22,
+ Qn21, Qn20, Qn19, Qn18, Qn17});
+?OUT_CURRENT_P_Qn32(-29,
+ Qn29, NewQn29,
+ {Qn32, Qn31, Qn30, NewQn29, Qn28,
+ Qn27, Qn26, Qn25, Qn24, Qn23, Qn22,
+ Qn21, Qn20, Qn19, Qn18, Qn17});
+?OUT_CURRENT_P_Qn32(-28,
+ Qn28, NewQn28,
+ {Qn32, Qn31, Qn30, Qn29, NewQn28,
+ Qn27, Qn26, Qn25, Qn24, Qn23, Qn22,
+ Qn21, Qn20, Qn19, Qn18, Qn17});
+?OUT_CURRENT_P_Qn32(-27,
+ Qn27, NewQn27,
+ {Qn32, Qn31, Qn30, Qn29, Qn28,
+ NewQn27, Qn26, Qn25, Qn24, Qn23, Qn22,
+ Qn21, Qn20, Qn19, Qn18, Qn17});
+?OUT_CURRENT_P_Qn32(-26,
+ Qn26, NewQn26,
+ {Qn32, Qn31, Qn30, Qn29, Qn28,
+ Qn27, NewQn26, Qn25, Qn24, Qn23, Qn22,
+ Qn21, Qn20, Qn19, Qn18, Qn17});
+?OUT_CURRENT_P_Qn32(-25,
+ Qn25, NewQn25,
+ {Qn32, Qn31, Qn30, Qn29, Qn28,
+ Qn27, Qn26, NewQn25, Qn24, Qn23, Qn22,
+ Qn21, Qn20, Qn19, Qn18, Qn17});
+?OUT_CURRENT_P_Qn32(-24,
+ Qn24, NewQn24,
+ {Qn32, Qn31, Qn30, Qn29, Qn28,
+ Qn27, Qn26, Qn25, NewQn24, Qn23, Qn22,
+ Qn21, Qn20, Qn19, Qn18, Qn17});
+?OUT_CURRENT_P_Qn32(-23,
+ Qn23, NewQn23,
+ {Qn32, Qn31, Qn30, Qn29, Qn28,
+ Qn27, Qn26, Qn25, Qn24, NewQn23, Qn22,
+ Qn21, Qn20, Qn19, Qn18, Qn17});
+?OUT_CURRENT_P_Qn32(-22,
+ Qn22, NewQn22,
+ {Qn32, Qn31, Qn30, Qn29, Qn28,
+ Qn27, Qn26, Qn25, Qn24, Qn23, NewQn22,
+ Qn21, Qn20, Qn19, Qn18, Qn17});
+?OUT_CURRENT_P_Qn32(-21,
+ Qn21, NewQn21,
+ {Qn32, Qn31, Qn30, Qn29, Qn28,
+ Qn27, Qn26, Qn25, Qn24, Qn23, Qn22,
+ NewQn21, Qn20, Qn19, Qn18, Qn17});
+?OUT_CURRENT_P_Qn32(-20,
+ Qn20, NewQn20,
+ {Qn32, Qn31, Qn30, Qn29, Qn28,
+ Qn27, Qn26, Qn25, Qn24, Qn23, Qn22,
+ Qn21, NewQn20, Qn19, Qn18, Qn17});
+?OUT_CURRENT_P_Qn32(-19,
+ Qn19, NewQn19,
+ {Qn32, Qn31, Qn30, Qn29, Qn28,
+ Qn27, Qn26, Qn25, Qn24, Qn23, Qn22,
+ Qn21, Qn20, NewQn19, Qn18, Qn17});
+?OUT_CURRENT_P_Qn32(-18,
+ Qn18, NewQn18,
+ {Qn32, Qn31, Qn30, Qn29, Qn28,
+ Qn27, Qn26, Qn25, Qn24, Qn23, Qn22,
+ Qn21, Qn20, Qn19, NewQn18, Qn17});
+?OUT_CURRENT_P_Qn32(-17,
+ Qn17, NewQn17,
+ {Qn32, Qn31, Qn30, Qn29, Qn28,
+ Qn27, Qn26, Qn25, Qn24, Qn23, Qn22,
+ Qn21, Qn20, Qn19, Qn18, NewQn17});
+?OUT_CURRENT_P_Qn16(-16,
+ Qn16, NewQn16,
+ {NewQn16, Qn15, Qn14, Qn13, Qn12,
+ Qn11, Qn10, Qn9, Qn8, Qn7, Qn6,
+ Qn5, Qn4, Qn3, Qn2, Qn1});
+?OUT_CURRENT_P_Qn16(-15,
+ Qn15, NewQn15,
+ {Qn16, NewQn15, Qn14, Qn13, Qn12,
+ Qn11, Qn10, Qn9, Qn8, Qn7, Qn6,
+ Qn5, Qn4, Qn3, Qn2, Qn1});
+?OUT_CURRENT_P_Qn16(-14,
+ Qn14, NewQn14,
+ {Qn16, Qn15, NewQn14, Qn13, Qn12,
+ Qn11, Qn10, Qn9, Qn8, Qn7, Qn6,
+ Qn5, Qn4, Qn3, Qn2, Qn1});
+?OUT_CURRENT_P_Qn16(-13,
+ Qn13, NewQn13,
+ {Qn16, Qn15, Qn14, NewQn13, Qn12,
+ Qn11, Qn10, Qn9, Qn8, Qn7, Qn6,
+ Qn5, Qn4, Qn3, Qn2, Qn1});
+?OUT_CURRENT_P_Qn16(-12,
+ Qn12, NewQn12,
+ {Qn16, Qn15, Qn14, Qn13, NewQn12,
+ Qn11, Qn10, Qn9, Qn8, Qn7, Qn6,
+ Qn5, Qn4, Qn3, Qn2, Qn1});
+?OUT_CURRENT_P_Qn16(-11,
+ Qn11, NewQn11,
+ {Qn16, Qn15, Qn14, Qn13, Qn12,
+ NewQn11, Qn10, Qn9, Qn8, Qn7, Qn6,
+ Qn5, Qn4, Qn3, Qn2, Qn1});
+?OUT_CURRENT_P_Qn16(-10,
+ Qn10, NewQn10,
+ {Qn16, Qn15, Qn14, Qn13, Qn12,
+ Qn11, NewQn10, Qn9, Qn8, Qn7, Qn6,
+ Qn5, Qn4, Qn3, Qn2, Qn1});
+?OUT_CURRENT_P_Qn16(-9,
+ Qn9, NewQn9,
+ {Qn16, Qn15, Qn14, Qn13, Qn12,
+ Qn11, Qn10, NewQn9, Qn8, Qn7, Qn6,
+ Qn5, Qn4, Qn3, Qn2, Qn1});
+?OUT_CURRENT_P_Qn16(-8,
+ Qn8, NewQn8,
+ {Qn16, Qn15, Qn14, Qn13, Qn12,
+ Qn11, Qn10, Qn9, NewQn8, Qn7, Qn6,
+ Qn5, Qn4, Qn3, Qn2, Qn1});
+?OUT_CURRENT_P_Qn16(-7,
+ Qn7, NewQn7,
+ {Qn16, Qn15, Qn14, Qn13, Qn12,
+ Qn11, Qn10, Qn9, Qn8, NewQn7, Qn6,
+ Qn5, Qn4, Qn3, Qn2, Qn1});
+?OUT_CURRENT_P_Qn16(-6,
+ Qn6, NewQn6,
+ {Qn16, Qn15, Qn14, Qn13, Qn12,
+ Qn11, Qn10, Qn9, Qn8, Qn7, NewQn6,
+ Qn5, Qn4, Qn3, Qn2, Qn1});
+?OUT_CURRENT_P_Qn16(-5,
+ Qn5, NewQn5,
+ {Qn16, Qn15, Qn14, Qn13, Qn12,
+ Qn11, Qn10, Qn9, Qn8, Qn7, Qn6,
+ NewQn5, Qn4, Qn3, Qn2, Qn1});
+?OUT_CURRENT_P_Qn16(-4,
+ Qn4, NewQn4,
+ {Qn16, Qn15, Qn14, Qn13, Qn12,
+ Qn11, Qn10, Qn9, Qn8, Qn7, Qn6,
+ Qn5, NewQn4, Qn3, Qn2, Qn1});
+?OUT_CURRENT_P_Qn16(-3,
+ Qn3, NewQn3,
+ {Qn16, Qn15, Qn14, Qn13, Qn12,
+ Qn11, Qn10, Qn9, Qn8, Qn7, Qn6,
+ Qn5, Qn4, NewQn3, Qn2, Qn1});
+?OUT_CURRENT_P_Qn16(-2,
+ Qn2, NewQn2,
+ {Qn16, Qn15, Qn14, Qn13, Qn12,
+ Qn11, Qn10, Qn9, Qn8, Qn7, Qn6,
+ Qn5, Qn4, Qn3, NewQn2, Qn1});
+?OUT_CURRENT_P_Qn16(-1,
+ Qn1, NewQn1,
+ {Qn16, Qn15, Qn14, Qn13, Qn12,
+ Qn11, Qn10, Qn9, Qn8, Qn7, Qn6,
+ Qn5, Qn4, Qn3, Qn2, NewQn1});
+out_current_p(0,
+ {_,
+ Size,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128} = Q) ->
+ case queue:out(Q0) of
+ {empty, _} ->
+ out_current_p(1, Q);
+ {{value, X}, NewQ0} ->
+ NewSize = Size - 1,
+ {{value, X, 0},
+ {if NewSize == 0 -> empty; true -> 0 end,
+ NewSize,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ NewQ0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}}
+ end;
+?OUT_CURRENT_P_Qp16(1,
+ Qp1, NewQp1,
+ {NewQp1, Qp2, Qp3, Qp4, Qp5,
+ Qp6, Qp7, Qp8, Qp9, Qp10, Qp11,
+ Qp12, Qp13, Qp14, Qp15, Qp16});
+?OUT_CURRENT_P_Qp16(2,
+ Qp2, NewQp2,
+ {Qp1, NewQp2, Qp3, Qp4, Qp5,
+ Qp6, Qp7, Qp8, Qp9, Qp10, Qp11,
+ Qp12, Qp13, Qp14, Qp15, Qp16});
+?OUT_CURRENT_P_Qp16(3,
+ Qp3, NewQp3,
+ {Qp1, Qp2, NewQp3, Qp4, Qp5,
+ Qp6, Qp7, Qp8, Qp9, Qp10, Qp11,
+ Qp12, Qp13, Qp14, Qp15, Qp16});
+?OUT_CURRENT_P_Qp16(4,
+ Qp4, NewQp4,
+ {Qp1, Qp2, Qp3, NewQp4, Qp5,
+ Qp6, Qp7, Qp8, Qp9, Qp10, Qp11,
+ Qp12, Qp13, Qp14, Qp15, Qp16});
+?OUT_CURRENT_P_Qp16(5,
+ Qp5, NewQp5,
+ {Qp1, Qp2, Qp3, Qp4, NewQp5,
+ Qp6, Qp7, Qp8, Qp9, Qp10, Qp11,
+ Qp12, Qp13, Qp14, Qp15, Qp16});
+?OUT_CURRENT_P_Qp16(6,
+ Qp6, NewQp6,
+ {Qp1, Qp2, Qp3, Qp4, Qp5,
+ NewQp6, Qp7, Qp8, Qp9, Qp10, Qp11,
+ Qp12, Qp13, Qp14, Qp15, Qp16});
+?OUT_CURRENT_P_Qp16(7,
+ Qp7, NewQp7,
+ {Qp1, Qp2, Qp3, Qp4, Qp5,
+ Qp6, NewQp7, Qp8, Qp9, Qp10, Qp11,
+ Qp12, Qp13, Qp14, Qp15, Qp16});
+?OUT_CURRENT_P_Qp16(8,
+ Qp8, NewQp8,
+ {Qp1, Qp2, Qp3, Qp4, Qp5,
+ Qp6, Qp7, NewQp8, Qp9, Qp10, Qp11,
+ Qp12, Qp13, Qp14, Qp15, Qp16});
+?OUT_CURRENT_P_Qp16(9,
+ Qp9, NewQp9,
+ {Qp1, Qp2, Qp3, Qp4, Qp5,
+ Qp6, Qp7, Qp8, NewQp9, Qp10, Qp11,
+ Qp12, Qp13, Qp14, Qp15, Qp16});
+?OUT_CURRENT_P_Qp16(10,
+ Qp10, NewQp10,
+ {Qp1, Qp2, Qp3, Qp4, Qp5,
+ Qp6, Qp7, Qp8, Qp9, NewQp10, Qp11,
+ Qp12, Qp13, Qp14, Qp15, Qp16});
+?OUT_CURRENT_P_Qp16(11,
+ Qp11, NewQp11,
+ {Qp1, Qp2, Qp3, Qp4, Qp5,
+ Qp6, Qp7, Qp8, Qp9, Qp10, NewQp11,
+ Qp12, Qp13, Qp14, Qp15, Qp16});
+?OUT_CURRENT_P_Qp16(12,
+ Qp12, NewQp12,
+ {Qp1, Qp2, Qp3, Qp4, Qp5,
+ Qp6, Qp7, Qp8, Qp9, Qp10, Qp11,
+ NewQp12, Qp13, Qp14, Qp15, Qp16});
+?OUT_CURRENT_P_Qp16(13,
+ Qp13, NewQp13,
+ {Qp1, Qp2, Qp3, Qp4, Qp5,
+ Qp6, Qp7, Qp8, Qp9, Qp10, Qp11,
+ Qp12, NewQp13, Qp14, Qp15, Qp16});
+?OUT_CURRENT_P_Qp16(14,
+ Qp14, NewQp14,
+ {Qp1, Qp2, Qp3, Qp4, Qp5,
+ Qp6, Qp7, Qp8, Qp9, Qp10, Qp11,
+ Qp12, Qp13, NewQp14, Qp15, Qp16});
+?OUT_CURRENT_P_Qp16(15,
+ Qp15, NewQp15,
+ {Qp1, Qp2, Qp3, Qp4, Qp5,
+ Qp6, Qp7, Qp8, Qp9, Qp10, Qp11,
+ Qp12, Qp13, Qp14, NewQp15, Qp16});
+?OUT_CURRENT_P_Qp16(16,
+ Qp16, NewQp16,
+ {Qp1, Qp2, Qp3, Qp4, Qp5,
+ Qp6, Qp7, Qp8, Qp9, Qp10, Qp11,
+ Qp12, Qp13, Qp14, Qp15, NewQp16});
+?OUT_CURRENT_P_Qp32(17,
+ Qp17, NewQp17,
+ {NewQp17, Qp18, Qp19, Qp20, Qp21,
+ Qp22, Qp23, Qp24, Qp25, Qp26, Qp27,
+ Qp28, Qp29, Qp30, Qp31, Qp32});
+?OUT_CURRENT_P_Qp32(18,
+ Qp18, NewQp18,
+ {Qp17, NewQp18, Qp19, Qp20, Qp21,
+ Qp22, Qp23, Qp24, Qp25, Qp26, Qp27,
+ Qp28, Qp29, Qp30, Qp31, Qp32});
+?OUT_CURRENT_P_Qp32(19,
+ Qp19, NewQp19,
+ {Qp17, Qp18, NewQp19, Qp20, Qp21,
+ Qp22, Qp23, Qp24, Qp25, Qp26, Qp27,
+ Qp28, Qp29, Qp30, Qp31, Qp32});
+?OUT_CURRENT_P_Qp32(20,
+ Qp20, NewQp20,
+ {Qp17, Qp18, Qp19, NewQp20, Qp21,
+ Qp22, Qp23, Qp24, Qp25, Qp26, Qp27,
+ Qp28, Qp29, Qp30, Qp31, Qp32});
+?OUT_CURRENT_P_Qp32(21,
+ Qp21, NewQp21,
+ {Qp17, Qp18, Qp19, Qp20, NewQp21,
+ Qp22, Qp23, Qp24, Qp25, Qp26, Qp27,
+ Qp28, Qp29, Qp30, Qp31, Qp32});
+?OUT_CURRENT_P_Qp32(22,
+ Qp22, NewQp22,
+ {Qp17, Qp18, Qp19, Qp20, Qp21,
+ NewQp22, Qp23, Qp24, Qp25, Qp26, Qp27,
+ Qp28, Qp29, Qp30, Qp31, Qp32});
+?OUT_CURRENT_P_Qp32(23,
+ Qp23, NewQp23,
+ {Qp17, Qp18, Qp19, Qp20, Qp21,
+ Qp22, NewQp23, Qp24, Qp25, Qp26, Qp27,
+ Qp28, Qp29, Qp30, Qp31, Qp32});
+?OUT_CURRENT_P_Qp32(24,
+ Qp24, NewQp24,
+ {Qp17, Qp18, Qp19, Qp20, Qp21,
+ Qp22, Qp23, NewQp24, Qp25, Qp26, Qp27,
+ Qp28, Qp29, Qp30, Qp31, Qp32});
+?OUT_CURRENT_P_Qp32(25,
+ Qp25, NewQp25,
+ {Qp17, Qp18, Qp19, Qp20, Qp21,
+ Qp22, Qp23, Qp24, NewQp25, Qp26, Qp27,
+ Qp28, Qp29, Qp30, Qp31, Qp32});
+?OUT_CURRENT_P_Qp32(26,
+ Qp26, NewQp26,
+ {Qp17, Qp18, Qp19, Qp20, Qp21,
+ Qp22, Qp23, Qp24, Qp25, NewQp26, Qp27,
+ Qp28, Qp29, Qp30, Qp31, Qp32});
+?OUT_CURRENT_P_Qp32(27,
+ Qp27, NewQp27,
+ {Qp17, Qp18, Qp19, Qp20, Qp21,
+ Qp22, Qp23, Qp24, Qp25, Qp26, NewQp27,
+ Qp28, Qp29, Qp30, Qp31, Qp32});
+?OUT_CURRENT_P_Qp32(28,
+ Qp28, NewQp28,
+ {Qp17, Qp18, Qp19, Qp20, Qp21,
+ Qp22, Qp23, Qp24, Qp25, Qp26, Qp27,
+ NewQp28, Qp29, Qp30, Qp31, Qp32});
+?OUT_CURRENT_P_Qp32(29,
+ Qp29, NewQp29,
+ {Qp17, Qp18, Qp19, Qp20, Qp21,
+ Qp22, Qp23, Qp24, Qp25, Qp26, Qp27,
+ Qp28, NewQp29, Qp30, Qp31, Qp32});
+?OUT_CURRENT_P_Qp32(30,
+ Qp30, NewQp30,
+ {Qp17, Qp18, Qp19, Qp20, Qp21,
+ Qp22, Qp23, Qp24, Qp25, Qp26, Qp27,
+ Qp28, Qp29, NewQp30, Qp31, Qp32});
+?OUT_CURRENT_P_Qp32(31,
+ Qp31, NewQp31,
+ {Qp17, Qp18, Qp19, Qp20, Qp21,
+ Qp22, Qp23, Qp24, Qp25, Qp26, Qp27,
+ Qp28, Qp29, Qp30, NewQp31, Qp32});
+?OUT_CURRENT_P_Qp32(32,
+ Qp32, NewQp32,
+ {Qp17, Qp18, Qp19, Qp20, Qp21,
+ Qp22, Qp23, Qp24, Qp25, Qp26, Qp27,
+ Qp28, Qp29, Qp30, Qp31, NewQp32});
+?OUT_CURRENT_P_Qp48(33,
+ Qp33, NewQp33,
+ {NewQp33, Qp34, Qp35, Qp36, Qp37,
+ Qp38, Qp39, Qp40, Qp41, Qp42, Qp43,
+ Qp44, Qp45, Qp46, Qp47, Qp48});
+?OUT_CURRENT_P_Qp48(34,
+ Qp34, NewQp34,
+ {Qp33, NewQp34, Qp35, Qp36, Qp37,
+ Qp38, Qp39, Qp40, Qp41, Qp42, Qp43,
+ Qp44, Qp45, Qp46, Qp47, Qp48});
+?OUT_CURRENT_P_Qp48(35,
+ Qp35, NewQp35,
+ {Qp33, Qp34, NewQp35, Qp36, Qp37,
+ Qp38, Qp39, Qp40, Qp41, Qp42, Qp43,
+ Qp44, Qp45, Qp46, Qp47, Qp48});
+?OUT_CURRENT_P_Qp48(36,
+ Qp36, NewQp36,
+ {Qp33, Qp34, Qp35, NewQp36, Qp37,
+ Qp38, Qp39, Qp40, Qp41, Qp42, Qp43,
+ Qp44, Qp45, Qp46, Qp47, Qp48});
+?OUT_CURRENT_P_Qp48(37,
+ Qp37, NewQp37,
+ {Qp33, Qp34, Qp35, Qp36, NewQp37,
+ Qp38, Qp39, Qp40, Qp41, Qp42, Qp43,
+ Qp44, Qp45, Qp46, Qp47, Qp48});
+?OUT_CURRENT_P_Qp48(38,
+ Qp38, NewQp38,
+ {Qp33, Qp34, Qp35, Qp36, Qp37,
+ NewQp38, Qp39, Qp40, Qp41, Qp42, Qp43,
+ Qp44, Qp45, Qp46, Qp47, Qp48});
+?OUT_CURRENT_P_Qp48(39,
+ Qp39, NewQp39,
+ {Qp33, Qp34, Qp35, Qp36, Qp37,
+ Qp38, NewQp39, Qp40, Qp41, Qp42, Qp43,
+ Qp44, Qp45, Qp46, Qp47, Qp48});
+?OUT_CURRENT_P_Qp48(40,
+ Qp40, NewQp40,
+ {Qp33, Qp34, Qp35, Qp36, Qp37,
+ Qp38, Qp39, NewQp40, Qp41, Qp42, Qp43,
+ Qp44, Qp45, Qp46, Qp47, Qp48});
+?OUT_CURRENT_P_Qp48(41,
+ Qp41, NewQp41,
+ {Qp33, Qp34, Qp35, Qp36, Qp37,
+ Qp38, Qp39, Qp40, NewQp41, Qp42, Qp43,
+ Qp44, Qp45, Qp46, Qp47, Qp48});
+?OUT_CURRENT_P_Qp48(42,
+ Qp42, NewQp42,
+ {Qp33, Qp34, Qp35, Qp36, Qp37,
+ Qp38, Qp39, Qp40, Qp41, NewQp42, Qp43,
+ Qp44, Qp45, Qp46, Qp47, Qp48});
+?OUT_CURRENT_P_Qp48(43,
+ Qp43, NewQp43,
+ {Qp33, Qp34, Qp35, Qp36, Qp37,
+ Qp38, Qp39, Qp40, Qp41, Qp42, NewQp43,
+ Qp44, Qp45, Qp46, Qp47, Qp48});
+?OUT_CURRENT_P_Qp48(44,
+ Qp44, NewQp44,
+ {Qp33, Qp34, Qp35, Qp36, Qp37,
+ Qp38, Qp39, Qp40, Qp41, Qp42, Qp43,
+ NewQp44, Qp45, Qp46, Qp47, Qp48});
+?OUT_CURRENT_P_Qp48(45,
+ Qp45, NewQp45,
+ {Qp33, Qp34, Qp35, Qp36, Qp37,
+ Qp38, Qp39, Qp40, Qp41, Qp42, Qp43,
+ Qp44, NewQp45, Qp46, Qp47, Qp48});
+?OUT_CURRENT_P_Qp48(46,
+ Qp46, NewQp46,
+ {Qp33, Qp34, Qp35, Qp36, Qp37,
+ Qp38, Qp39, Qp40, Qp41, Qp42, Qp43,
+ Qp44, Qp45, NewQp46, Qp47, Qp48});
+?OUT_CURRENT_P_Qp48(47,
+ Qp47, NewQp47,
+ {Qp33, Qp34, Qp35, Qp36, Qp37,
+ Qp38, Qp39, Qp40, Qp41, Qp42, Qp43,
+ Qp44, Qp45, Qp46, NewQp47, Qp48});
+?OUT_CURRENT_P_Qp48(48,
+ Qp48, NewQp48,
+ {Qp33, Qp34, Qp35, Qp36, Qp37,
+ Qp38, Qp39, Qp40, Qp41, Qp42, Qp43,
+ Qp44, Qp45, Qp46, Qp47, NewQp48});
+?OUT_CURRENT_P_Qp64(49,
+ Qp49, NewQp49,
+ {NewQp49, Qp50, Qp51, Qp52, Qp53,
+ Qp54, Qp55, Qp56, Qp57, Qp58, Qp59,
+ Qp60, Qp61, Qp62, Qp63, Qp64});
+?OUT_CURRENT_P_Qp64(50,
+ Qp50, NewQp50,
+ {Qp49, NewQp50, Qp51, Qp52, Qp53,
+ Qp54, Qp55, Qp56, Qp57, Qp58, Qp59,
+ Qp60, Qp61, Qp62, Qp63, Qp64});
+?OUT_CURRENT_P_Qp64(51,
+ Qp51, NewQp51,
+ {Qp49, Qp50, NewQp51, Qp52, Qp53,
+ Qp54, Qp55, Qp56, Qp57, Qp58, Qp59,
+ Qp60, Qp61, Qp62, Qp63, Qp64});
+?OUT_CURRENT_P_Qp64(52,
+ Qp52, NewQp52,
+ {Qp49, Qp50, Qp51, NewQp52, Qp53,
+ Qp54, Qp55, Qp56, Qp57, Qp58, Qp59,
+ Qp60, Qp61, Qp62, Qp63, Qp64});
+?OUT_CURRENT_P_Qp64(53,
+ Qp53, NewQp53,
+ {Qp49, Qp50, Qp51, Qp52, NewQp53,
+ Qp54, Qp55, Qp56, Qp57, Qp58, Qp59,
+ Qp60, Qp61, Qp62, Qp63, Qp64});
+?OUT_CURRENT_P_Qp64(54,
+ Qp54, NewQp54,
+ {Qp49, Qp50, Qp51, Qp52, Qp53,
+ NewQp54, Qp55, Qp56, Qp57, Qp58, Qp59,
+ Qp60, Qp61, Qp62, Qp63, Qp64});
+?OUT_CURRENT_P_Qp64(55,
+ Qp55, NewQp55,
+ {Qp49, Qp50, Qp51, Qp52, Qp53,
+ Qp54, NewQp55, Qp56, Qp57, Qp58, Qp59,
+ Qp60, Qp61, Qp62, Qp63, Qp64});
+?OUT_CURRENT_P_Qp64(56,
+ Qp56, NewQp56,
+ {Qp49, Qp50, Qp51, Qp52, Qp53,
+ Qp54, Qp55, NewQp56, Qp57, Qp58, Qp59,
+ Qp60, Qp61, Qp62, Qp63, Qp64});
+?OUT_CURRENT_P_Qp64(57,
+ Qp57, NewQp57,
+ {Qp49, Qp50, Qp51, Qp52, Qp53,
+ Qp54, Qp55, Qp56, NewQp57, Qp58, Qp59,
+ Qp60, Qp61, Qp62, Qp63, Qp64});
+?OUT_CURRENT_P_Qp64(58,
+ Qp58, NewQp58,
+ {Qp49, Qp50, Qp51, Qp52, Qp53,
+ Qp54, Qp55, Qp56, Qp57, NewQp58, Qp59,
+ Qp60, Qp61, Qp62, Qp63, Qp64});
+?OUT_CURRENT_P_Qp64(59,
+ Qp59, NewQp59,
+ {Qp49, Qp50, Qp51, Qp52, Qp53,
+ Qp54, Qp55, Qp56, Qp57, Qp58, NewQp59,
+ Qp60, Qp61, Qp62, Qp63, Qp64});
+?OUT_CURRENT_P_Qp64(60,
+ Qp60, NewQp60,
+ {Qp49, Qp50, Qp51, Qp52, Qp53,
+ Qp54, Qp55, Qp56, Qp57, Qp58, Qp59,
+ NewQp60, Qp61, Qp62, Qp63, Qp64});
+?OUT_CURRENT_P_Qp64(61,
+ Qp61, NewQp61,
+ {Qp49, Qp50, Qp51, Qp52, Qp53,
+ Qp54, Qp55, Qp56, Qp57, Qp58, Qp59,
+ Qp60, NewQp61, Qp62, Qp63, Qp64});
+?OUT_CURRENT_P_Qp64(62,
+ Qp62, NewQp62,
+ {Qp49, Qp50, Qp51, Qp52, Qp53,
+ Qp54, Qp55, Qp56, Qp57, Qp58, Qp59,
+ Qp60, Qp61, NewQp62, Qp63, Qp64});
+?OUT_CURRENT_P_Qp64(63,
+ Qp63, NewQp63,
+ {Qp49, Qp50, Qp51, Qp52, Qp53,
+ Qp54, Qp55, Qp56, Qp57, Qp58, Qp59,
+ Qp60, Qp61, Qp62, NewQp63, Qp64});
+?OUT_CURRENT_P_Qp64(64,
+ Qp64, NewQp64,
+ {Qp49, Qp50, Qp51, Qp52, Qp53,
+ Qp54, Qp55, Qp56, Qp57, Qp58, Qp59,
+ Qp60, Qp61, Qp62, Qp63, NewQp64});
+?OUT_CURRENT_P_Qp80(65,
+ Qp65, NewQp65,
+ {NewQp65, Qp66, Qp67, Qp68, Qp69,
+ Qp70, Qp71, Qp72, Qp73, Qp74, Qp75,
+ Qp76, Qp77, Qp78, Qp79, Qp80});
+?OUT_CURRENT_P_Qp80(66,
+ Qp66, NewQp66,
+ {Qp65, NewQp66, Qp67, Qp68, Qp69,
+ Qp70, Qp71, Qp72, Qp73, Qp74, Qp75,
+ Qp76, Qp77, Qp78, Qp79, Qp80});
+?OUT_CURRENT_P_Qp80(67,
+ Qp67, NewQp67,
+ {Qp65, Qp66, NewQp67, Qp68, Qp69,
+ Qp70, Qp71, Qp72, Qp73, Qp74, Qp75,
+ Qp76, Qp77, Qp78, Qp79, Qp80});
+?OUT_CURRENT_P_Qp80(68,
+ Qp68, NewQp68,
+ {Qp65, Qp66, Qp67, NewQp68, Qp69,
+ Qp70, Qp71, Qp72, Qp73, Qp74, Qp75,
+ Qp76, Qp77, Qp78, Qp79, Qp80});
+?OUT_CURRENT_P_Qp80(69,
+ Qp69, NewQp69,
+ {Qp65, Qp66, Qp67, Qp68, NewQp69,
+ Qp70, Qp71, Qp72, Qp73, Qp74, Qp75,
+ Qp76, Qp77, Qp78, Qp79, Qp80});
+?OUT_CURRENT_P_Qp80(70,
+ Qp70, NewQp70,
+ {Qp65, Qp66, Qp67, Qp68, Qp69,
+ NewQp70, Qp71, Qp72, Qp73, Qp74, Qp75,
+ Qp76, Qp77, Qp78, Qp79, Qp80});
+?OUT_CURRENT_P_Qp80(71,
+ Qp71, NewQp71,
+ {Qp65, Qp66, Qp67, Qp68, Qp69,
+ Qp70, NewQp71, Qp72, Qp73, Qp74, Qp75,
+ Qp76, Qp77, Qp78, Qp79, Qp80});
+?OUT_CURRENT_P_Qp80(72,
+ Qp72, NewQp72,
+ {Qp65, Qp66, Qp67, Qp68, Qp69,
+ Qp70, Qp71, NewQp72, Qp73, Qp74, Qp75,
+ Qp76, Qp77, Qp78, Qp79, Qp80});
+?OUT_CURRENT_P_Qp80(73,
+ Qp73, NewQp73,
+ {Qp65, Qp66, Qp67, Qp68, Qp69,
+ Qp70, Qp71, Qp72, NewQp73, Qp74, Qp75,
+ Qp76, Qp77, Qp78, Qp79, Qp80});
+?OUT_CURRENT_P_Qp80(74,
+ Qp74, NewQp74,
+ {Qp65, Qp66, Qp67, Qp68, Qp69,
+ Qp70, Qp71, Qp72, Qp73, NewQp74, Qp75,
+ Qp76, Qp77, Qp78, Qp79, Qp80});
+?OUT_CURRENT_P_Qp80(75,
+ Qp75, NewQp75,
+ {Qp65, Qp66, Qp67, Qp68, Qp69,
+ Qp70, Qp71, Qp72, Qp73, Qp74, NewQp75,
+ Qp76, Qp77, Qp78, Qp79, Qp80});
+?OUT_CURRENT_P_Qp80(76,
+ Qp76, NewQp76,
+ {Qp65, Qp66, Qp67, Qp68, Qp69,
+ Qp70, Qp71, Qp72, Qp73, Qp74, Qp75,
+ NewQp76, Qp77, Qp78, Qp79, Qp80});
+?OUT_CURRENT_P_Qp80(77,
+ Qp77, NewQp77,
+ {Qp65, Qp66, Qp67, Qp68, Qp69,
+ Qp70, Qp71, Qp72, Qp73, Qp74, Qp75,
+ Qp76, NewQp77, Qp78, Qp79, Qp80});
+?OUT_CURRENT_P_Qp80(78,
+ Qp78, NewQp78,
+ {Qp65, Qp66, Qp67, Qp68, Qp69,
+ Qp70, Qp71, Qp72, Qp73, Qp74, Qp75,
+ Qp76, Qp77, NewQp78, Qp79, Qp80});
+?OUT_CURRENT_P_Qp80(79,
+ Qp79, NewQp79,
+ {Qp65, Qp66, Qp67, Qp68, Qp69,
+ Qp70, Qp71, Qp72, Qp73, Qp74, Qp75,
+ Qp76, Qp77, Qp78, NewQp79, Qp80});
+?OUT_CURRENT_P_Qp80(80,
+ Qp80, NewQp80,
+ {Qp65, Qp66, Qp67, Qp68, Qp69,
+ Qp70, Qp71, Qp72, Qp73, Qp74, Qp75,
+ Qp76, Qp77, Qp78, Qp79, NewQp80});
+?OUT_CURRENT_P_Qp96(81,
+ Qp81, NewQp81,
+ {NewQp81, Qp82, Qp83, Qp84, Qp85,
+ Qp86, Qp87, Qp88, Qp89, Qp90, Qp91,
+ Qp92, Qp93, Qp94, Qp95, Qp96});
+?OUT_CURRENT_P_Qp96(82,
+ Qp82, NewQp82,
+ {Qp81, NewQp82, Qp83, Qp84, Qp85,
+ Qp86, Qp87, Qp88, Qp89, Qp90, Qp91,
+ Qp92, Qp93, Qp94, Qp95, Qp96});
+?OUT_CURRENT_P_Qp96(83,
+ Qp83, NewQp83,
+ {Qp81, Qp82, NewQp83, Qp84, Qp85,
+ Qp86, Qp87, Qp88, Qp89, Qp90, Qp91,
+ Qp92, Qp93, Qp94, Qp95, Qp96});
+?OUT_CURRENT_P_Qp96(84,
+ Qp84, NewQp84,
+ {Qp81, Qp82, Qp83, NewQp84, Qp85,
+ Qp86, Qp87, Qp88, Qp89, Qp90, Qp91,
+ Qp92, Qp93, Qp94, Qp95, Qp96});
+?OUT_CURRENT_P_Qp96(85,
+ Qp85, NewQp85,
+ {Qp81, Qp82, Qp83, Qp84, NewQp85,
+ Qp86, Qp87, Qp88, Qp89, Qp90, Qp91,
+ Qp92, Qp93, Qp94, Qp95, Qp96});
+?OUT_CURRENT_P_Qp96(86,
+ Qp86, NewQp86,
+ {Qp81, Qp82, Qp83, Qp84, Qp85,
+ NewQp86, Qp87, Qp88, Qp89, Qp90, Qp91,
+ Qp92, Qp93, Qp94, Qp95, Qp96});
+?OUT_CURRENT_P_Qp96(87,
+ Qp87, NewQp87,
+ {Qp81, Qp82, Qp83, Qp84, Qp85,
+ Qp86, NewQp87, Qp88, Qp89, Qp90, Qp91,
+ Qp92, Qp93, Qp94, Qp95, Qp96});
+?OUT_CURRENT_P_Qp96(88,
+ Qp88, NewQp88,
+ {Qp81, Qp82, Qp83, Qp84, Qp85,
+ Qp86, Qp87, NewQp88, Qp89, Qp90, Qp91,
+ Qp92, Qp93, Qp94, Qp95, Qp96});
+?OUT_CURRENT_P_Qp96(89,
+ Qp89, NewQp89,
+ {Qp81, Qp82, Qp83, Qp84, Qp85,
+ Qp86, Qp87, Qp88, NewQp89, Qp90, Qp91,
+ Qp92, Qp93, Qp94, Qp95, Qp96});
+?OUT_CURRENT_P_Qp96(90,
+ Qp90, NewQp90,
+ {Qp81, Qp82, Qp83, Qp84, Qp85,
+ Qp86, Qp87, Qp88, Qp89, NewQp90, Qp91,
+ Qp92, Qp93, Qp94, Qp95, Qp96});
+?OUT_CURRENT_P_Qp96(91,
+ Qp91, NewQp91,
+ {Qp81, Qp82, Qp83, Qp84, Qp85,
+ Qp86, Qp87, Qp88, Qp89, Qp90, NewQp91,
+ Qp92, Qp93, Qp94, Qp95, Qp96});
+?OUT_CURRENT_P_Qp96(92,
+ Qp92, NewQp92,
+ {Qp81, Qp82, Qp83, Qp84, Qp85,
+ Qp86, Qp87, Qp88, Qp89, Qp90, Qp91,
+ NewQp92, Qp93, Qp94, Qp95, Qp96});
+?OUT_CURRENT_P_Qp96(93,
+ Qp93, NewQp93,
+ {Qp81, Qp82, Qp83, Qp84, Qp85,
+ Qp86, Qp87, Qp88, Qp89, Qp90, Qp91,
+ Qp92, NewQp93, Qp94, Qp95, Qp96});
+?OUT_CURRENT_P_Qp96(94,
+ Qp94, NewQp94,
+ {Qp81, Qp82, Qp83, Qp84, Qp85,
+ Qp86, Qp87, Qp88, Qp89, Qp90, Qp91,
+ Qp92, Qp93, NewQp94, Qp95, Qp96});
+?OUT_CURRENT_P_Qp96(95,
+ Qp95, NewQp95,
+ {Qp81, Qp82, Qp83, Qp84, Qp85,
+ Qp86, Qp87, Qp88, Qp89, Qp90, Qp91,
+ Qp92, Qp93, Qp94, NewQp95, Qp96});
+?OUT_CURRENT_P_Qp96(96,
+ Qp96, NewQp96,
+ {Qp81, Qp82, Qp83, Qp84, Qp85,
+ Qp86, Qp87, Qp88, Qp89, Qp90, Qp91,
+ Qp92, Qp93, Qp94, Qp95, NewQp96});
+?OUT_CURRENT_P_Qp112(97,
+ Qp97, NewQp97,
+ {NewQp97, Qp98, Qp99, Qp100, Qp101,
+ Qp102, Qp103, Qp104, Qp105, Qp106, Qp107,
+ Qp108, Qp109, Qp110, Qp111, Qp112});
+?OUT_CURRENT_P_Qp112(98,
+ Qp98, NewQp98,
+ {Qp97, NewQp98, Qp99, Qp100, Qp101,
+ Qp102, Qp103, Qp104, Qp105, Qp106, Qp107,
+ Qp108, Qp109, Qp110, Qp111, Qp112});
+?OUT_CURRENT_P_Qp112(99,
+ Qp99, NewQp99,
+ {Qp97, Qp98, NewQp99, Qp100, Qp101,
+ Qp102, Qp103, Qp104, Qp105, Qp106, Qp107,
+ Qp108, Qp109, Qp110, Qp111, Qp112});
+?OUT_CURRENT_P_Qp112(100,
+ Qp100, NewQp100,
+ {Qp97, Qp98, Qp99, NewQp100, Qp101,
+ Qp102, Qp103, Qp104, Qp105, Qp106, Qp107,
+ Qp108, Qp109, Qp110, Qp111, Qp112});
+?OUT_CURRENT_P_Qp112(101,
+ Qp101, NewQp101,
+ {Qp97, Qp98, Qp99, Qp100, NewQp101,
+ Qp102, Qp103, Qp104, Qp105, Qp106, Qp107,
+ Qp108, Qp109, Qp110, Qp111, Qp112});
+?OUT_CURRENT_P_Qp112(102,
+ Qp102, NewQp102,
+ {Qp97, Qp98, Qp99, Qp100, Qp101,
+ NewQp102, Qp103, Qp104, Qp105, Qp106, Qp107,
+ Qp108, Qp109, Qp110, Qp111, Qp112});
+?OUT_CURRENT_P_Qp112(103,
+ Qp103, NewQp103,
+ {Qp97, Qp98, Qp99, Qp100, Qp101,
+ Qp102, NewQp103, Qp104, Qp105, Qp106, Qp107,
+ Qp108, Qp109, Qp110, Qp111, Qp112});
+?OUT_CURRENT_P_Qp112(104,
+ Qp104, NewQp104,
+ {Qp97, Qp98, Qp99, Qp100, Qp101,
+ Qp102, Qp103, NewQp104, Qp105, Qp106, Qp107,
+ Qp108, Qp109, Qp110, Qp111, Qp112});
+?OUT_CURRENT_P_Qp112(105,
+ Qp105, NewQp105,
+ {Qp97, Qp98, Qp99, Qp100, Qp101,
+ Qp102, Qp103, Qp104, NewQp105, Qp106, Qp107,
+ Qp108, Qp109, Qp110, Qp111, Qp112});
+?OUT_CURRENT_P_Qp112(106,
+ Qp106, NewQp106,
+ {Qp97, Qp98, Qp99, Qp100, Qp101,
+ Qp102, Qp103, Qp104, Qp105, NewQp106, Qp107,
+ Qp108, Qp109, Qp110, Qp111, Qp112});
+?OUT_CURRENT_P_Qp112(107,
+ Qp107, NewQp107,
+ {Qp97, Qp98, Qp99, Qp100, Qp101,
+ Qp102, Qp103, Qp104, Qp105, Qp106, NewQp107,
+ Qp108, Qp109, Qp110, Qp111, Qp112});
+?OUT_CURRENT_P_Qp112(108,
+ Qp108, NewQp108,
+ {Qp97, Qp98, Qp99, Qp100, Qp101,
+ Qp102, Qp103, Qp104, Qp105, Qp106, Qp107,
+ NewQp108, Qp109, Qp110, Qp111, Qp112});
+?OUT_CURRENT_P_Qp112(109,
+ Qp109, NewQp109,
+ {Qp97, Qp98, Qp99, Qp100, Qp101,
+ Qp102, Qp103, Qp104, Qp105, Qp106, Qp107,
+ Qp108, NewQp109, Qp110, Qp111, Qp112});
+?OUT_CURRENT_P_Qp112(110,
+ Qp110, NewQp110,
+ {Qp97, Qp98, Qp99, Qp100, Qp101,
+ Qp102, Qp103, Qp104, Qp105, Qp106, Qp107,
+ Qp108, Qp109, NewQp110, Qp111, Qp112});
+?OUT_CURRENT_P_Qp112(111,
+ Qp111, NewQp111,
+ {Qp97, Qp98, Qp99, Qp100, Qp101,
+ Qp102, Qp103, Qp104, Qp105, Qp106, Qp107,
+ Qp108, Qp109, Qp110, NewQp111, Qp112});
+?OUT_CURRENT_P_Qp112(112,
+ Qp112, NewQp112,
+ {Qp97, Qp98, Qp99, Qp100, Qp101,
+ Qp102, Qp103, Qp104, Qp105, Qp106, Qp107,
+ Qp108, Qp109, Qp110, Qp111, NewQp112});
+?OUT_CURRENT_P_Qp128(113,
+ Qp113, NewQp113,
+ {NewQp113, Qp114, Qp115, Qp116, Qp117,
+ Qp118, Qp119, Qp120, Qp121, Qp122, Qp123,
+ Qp124, Qp125, Qp126, Qp127, Qp128});
+?OUT_CURRENT_P_Qp128(114,
+ Qp114, NewQp114,
+ {Qp113, NewQp114, Qp115, Qp116, Qp117,
+ Qp118, Qp119, Qp120, Qp121, Qp122, Qp123,
+ Qp124, Qp125, Qp126, Qp127, Qp128});
+?OUT_CURRENT_P_Qp128(115,
+ Qp115, NewQp115,
+ {Qp113, Qp114, NewQp115, Qp116, Qp117,
+ Qp118, Qp119, Qp120, Qp121, Qp122, Qp123,
+ Qp124, Qp125, Qp126, Qp127, Qp128});
+?OUT_CURRENT_P_Qp128(116,
+ Qp116, NewQp116,
+ {Qp113, Qp114, Qp115, NewQp116, Qp117,
+ Qp118, Qp119, Qp120, Qp121, Qp122, Qp123,
+ Qp124, Qp125, Qp126, Qp127, Qp128});
+?OUT_CURRENT_P_Qp128(117,
+ Qp117, NewQp117,
+ {Qp113, Qp114, Qp115, Qp116, NewQp117,
+ Qp118, Qp119, Qp120, Qp121, Qp122, Qp123,
+ Qp124, Qp125, Qp126, Qp127, Qp128});
+?OUT_CURRENT_P_Qp128(118,
+ Qp118, NewQp118,
+ {Qp113, Qp114, Qp115, Qp116, Qp117,
+ NewQp118, Qp119, Qp120, Qp121, Qp122, Qp123,
+ Qp124, Qp125, Qp126, Qp127, Qp128});
+?OUT_CURRENT_P_Qp128(119,
+ Qp119, NewQp119,
+ {Qp113, Qp114, Qp115, Qp116, Qp117,
+ Qp118, NewQp119, Qp120, Qp121, Qp122, Qp123,
+ Qp124, Qp125, Qp126, Qp127, Qp128});
+?OUT_CURRENT_P_Qp128(120,
+ Qp120, NewQp120,
+ {Qp113, Qp114, Qp115, Qp116, Qp117,
+ Qp118, Qp119, NewQp120, Qp121, Qp122, Qp123,
+ Qp124, Qp125, Qp126, Qp127, Qp128});
+?OUT_CURRENT_P_Qp128(121,
+ Qp121, NewQp121,
+ {Qp113, Qp114, Qp115, Qp116, Qp117,
+ Qp118, Qp119, Qp120, NewQp121, Qp122, Qp123,
+ Qp124, Qp125, Qp126, Qp127, Qp128});
+?OUT_CURRENT_P_Qp128(122,
+ Qp122, NewQp122,
+ {Qp113, Qp114, Qp115, Qp116, Qp117,
+ Qp118, Qp119, Qp120, Qp121, NewQp122, Qp123,
+ Qp124, Qp125, Qp126, Qp127, Qp128});
+?OUT_CURRENT_P_Qp128(123,
+ Qp123, NewQp123,
+ {Qp113, Qp114, Qp115, Qp116, Qp117,
+ Qp118, Qp119, Qp120, Qp121, Qp122, NewQp123,
+ Qp124, Qp125, Qp126, Qp127, Qp128});
+?OUT_CURRENT_P_Qp128(124,
+ Qp124, NewQp124,
+ {Qp113, Qp114, Qp115, Qp116, Qp117,
+ Qp118, Qp119, Qp120, Qp121, Qp122, Qp123,
+ NewQp124, Qp125, Qp126, Qp127, Qp128});
+?OUT_CURRENT_P_Qp128(125,
+ Qp125, NewQp125,
+ {Qp113, Qp114, Qp115, Qp116, Qp117,
+ Qp118, Qp119, Qp120, Qp121, Qp122, Qp123,
+ Qp124, NewQp125, Qp126, Qp127, Qp128});
+?OUT_CURRENT_P_Qp128(126,
+ Qp126, NewQp126,
+ {Qp113, Qp114, Qp115, Qp116, Qp117,
+ Qp118, Qp119, Qp120, Qp121, Qp122, Qp123,
+ Qp124, Qp125, NewQp126, Qp127, Qp128});
+?OUT_CURRENT_P_Qp128(127,
+ Qp127, NewQp127,
+ {Qp113, Qp114, Qp115, Qp116, Qp117,
+ Qp118, Qp119, Qp120, Qp121, Qp122, Qp123,
+ Qp124, Qp125, Qp126, NewQp127, Qp128});
+out_current_p(128,
+ {_,
+ Size,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112,
+ {Qp113, Qp114, Qp115, Qp116, Qp117, Qp118, Qp119, Qp120,
+ Qp121, Qp122, Qp123, Qp124, Qp125, Qp126, Qp127, Qp128}}) ->
+ case queue:out(Qp128) of
+ {empty, _} ->
+ {empty,
+ {empty,
+ 0,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112,
+ {Qp113, Qp114, Qp115, Qp116, Qp117, Qp118, Qp119, Qp120,
+ Qp121, Qp122, Qp123, Qp124, Qp125, Qp126, Qp127, Qp128}}};
+ {{value, X}, NewQp128} ->
+ NewSize = Size - 1,
+ {{value, X, 128},
+ {if NewSize == 0 -> empty; true -> 128 end,
+ NewSize,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112,
+ {Qp113, Qp114, Qp115, Qp116, Qp117, Qp118, Qp119, Qp120,
+ Qp121, Qp122, Qp123, Qp124, Qp125, Qp126, Qp127, NewQp128}}}
+ end.
+
+%% @hidden
+-define(OUT_SPECIFIC_Qn128(P, V1, V2, V3),
+out_specific(P,
+ {Pc,
+ Size,
+ {Qn128, Qn127, Qn126, Qn125, Qn124, Qn123, Qn122, Qn121,
+ Qn120, Qn119, Qn118, Qn117, Qn116, Qn115, Qn114, Qn113},
+ Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}) ->
+ {Value, V2} = queue:out(V1),
+ NewSize = if Value =/= empty -> Size - 1; true -> Size end,
+ {Value,
+ {if NewSize == 0 -> empty; true -> Pc end,
+ NewSize,
+ V3,
+ Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}}).
+-define(OUT_SPECIFIC_Qn112(P, V1, V2, V3),
+out_specific(P,
+ {Pc,
+ Size,
+ Qn128,
+ {Qn112, Qn111, Qn110, Qn109, Qn108, Qn107, Qn106, Qn105,
+ Qn104, Qn103, Qn102, Qn101, Qn100, Qn99, Qn98, Qn97},
+ Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}) ->
+ {Value, V2} = queue:out(V1),
+ NewSize = if Value =/= empty -> Size - 1; true -> Size end,
+ {Value,
+ {if NewSize == 0 -> empty; true -> Pc end,
+ NewSize,
+ Qn128,
+ V3,
+ Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}}).
+-define(OUT_SPECIFIC_Qn96(P, V1, V2, V3),
+out_specific(P,
+ {Pc,
+ Size,
+ Qn128, Qn112,
+ {Qn96, Qn95, Qn94, Qn93, Qn92, Qn91, Qn90, Qn89,
+ Qn88, Qn87, Qn86, Qn85, Qn84, Qn83, Qn82, Qn81},
+ Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}) ->
+ {Value, V2} = queue:out(V1),
+ NewSize = if Value =/= empty -> Size - 1; true -> Size end,
+ {Value,
+ {if NewSize == 0 -> empty; true -> Pc end,
+ NewSize,
+ Qn128, Qn112,
+ V3,
+ Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}}).
+-define(OUT_SPECIFIC_Qn80(P, V1, V2, V3),
+out_specific(P,
+ {Pc,
+ Size,
+ Qn128, Qn112, Qn96,
+ {Qn80, Qn79, Qn78, Qn77, Qn76, Qn75, Qn74, Qn73,
+ Qn72, Qn71, Qn70, Qn69, Qn68, Qn67, Qn66, Qn65},
+ Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}) ->
+ {Value, V2} = queue:out(V1),
+ NewSize = if Value =/= empty -> Size - 1; true -> Size end,
+ {Value,
+ {if NewSize == 0 -> empty; true -> Pc end,
+ NewSize,
+ Qn128, Qn112, Qn96,
+ V3,
+ Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}}).
+-define(OUT_SPECIFIC_Qn64(P, V1, V2, V3),
+out_specific(P,
+ {Pc,
+ Size,
+ Qn128, Qn112, Qn96, Qn80,
+ {Qn64, Qn63, Qn62, Qn61, Qn60, Qn59, Qn58, Qn57,
+ Qn56, Qn55, Qn54, Qn53, Qn52, Qn51, Qn50, Qn49},
+ Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}) ->
+ {Value, V2} = queue:out(V1),
+ NewSize = if Value =/= empty -> Size - 1; true -> Size end,
+ {Value,
+ {if NewSize == 0 -> empty; true -> Pc end,
+ NewSize,
+ Qn128, Qn112, Qn96, Qn80,
+ V3,
+ Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}}).
+-define(OUT_SPECIFIC_Qn48(P, V1, V2, V3),
+out_specific(P,
+ {Pc,
+ Size,
+ Qn128, Qn112, Qn96, Qn80, Qn64,
+ {Qn48, Qn47, Qn46, Qn45, Qn44, Qn43, Qn42, Qn41,
+ Qn40, Qn39, Qn38, Qn37, Qn36, Qn35, Qn34, Qn33},
+ Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}) ->
+ {Value, V2} = queue:out(V1),
+ NewSize = if Value =/= empty -> Size - 1; true -> Size end,
+ {Value,
+ {if NewSize == 0 -> empty; true -> Pc end,
+ NewSize,
+ Qn128, Qn112, Qn96, Qn80, Qn64,
+ V3,
+ Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}}).
+-define(OUT_SPECIFIC_Qn32(P, V1, V2, V3),
+out_specific(P,
+ {Pc,
+ Size,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48,
+ {Qn32, Qn31, Qn30, Qn29, Qn28, Qn27, Qn26, Qn25,
+ Qn24, Qn23, Qn22, Qn21, Qn20, Qn19, Qn18, Qn17},
+ Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}) ->
+ {Value, V2} = queue:out(V1),
+ NewSize = if Value =/= empty -> Size - 1; true -> Size end,
+ {Value,
+ {if NewSize == 0 -> empty; true -> Pc end,
+ NewSize,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48,
+ V3,
+ Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}}).
+-define(OUT_SPECIFIC_Qn16(P, V1, V2, V3),
+out_specific(P,
+ {Pc,
+ Size,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32,
+ {Qn16, Qn15, Qn14, Qn13, Qn12, Qn11, Qn10, Qn9,
+ Qn8, Qn7, Qn6, Qn5, Qn4, Qn3, Qn2, Qn1},
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}) ->
+ {Value, V2} = queue:out(V1),
+ NewSize = if Value =/= empty -> Size - 1; true -> Size end,
+ {Value,
+ {if NewSize == 0 -> empty; true -> Pc end,
+ NewSize,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32,
+ V3,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}}).
+-define(OUT_SPECIFIC_Qp16(P, V1, V2, V3),
+out_specific(P,
+ {Pc,
+ Size,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ {Qp1, Qp2, Qp3, Qp4, Qp5, Qp6, Qp7, Qp8,
+ Qp9, Qp10, Qp11, Qp12, Qp13, Qp14, Qp15, Qp16},
+ Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}) ->
+ {Value, V2} = queue:out(V1),
+ NewSize = if Value =/= empty -> Size - 1; true -> Size end,
+ {Value,
+ {if NewSize == 0 -> empty; true -> Pc end,
+ NewSize,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ V3,
+ Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}}).
+-define(OUT_SPECIFIC_Qp32(P, V1, V2, V3),
+out_specific(P,
+ {Pc,
+ Size,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16,
+ {Qp17, Qp18, Qp19, Qp20, Qp21, Qp22, Qp23, Qp24,
+ Qp25, Qp26, Qp27, Qp28, Qp29, Qp30, Qp31, Qp32},
+ Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}) ->
+ {Value, V2} = queue:out(V1),
+ NewSize = if Value =/= empty -> Size - 1; true -> Size end,
+ {Value,
+ {if NewSize == 0 -> empty; true -> Pc end,
+ NewSize,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16,
+ V3,
+ Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}}).
+-define(OUT_SPECIFIC_Qp48(P, V1, V2, V3),
+out_specific(P,
+ {Pc,
+ Size,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32,
+ {Qp33, Qp34, Qp35, Qp36, Qp37, Qp38, Qp39, Qp40,
+ Qp41, Qp42, Qp43, Qp44, Qp45, Qp46, Qp47, Qp48},
+ Qp64, Qp80, Qp96, Qp112, Qp128}) ->
+ {Value, V2} = queue:out(V1),
+ NewSize = if Value =/= empty -> Size - 1; true -> Size end,
+ {Value,
+ {if NewSize == 0 -> empty; true -> Pc end,
+ NewSize,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32,
+ V3,
+ Qp64, Qp80, Qp96, Qp112, Qp128}}).
+-define(OUT_SPECIFIC_Qp64(P, V1, V2, V3),
+out_specific(P,
+ {Pc,
+ Size,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48,
+ {Qp49, Qp50, Qp51, Qp52, Qp53, Qp54, Qp55, Qp56,
+ Qp57, Qp58, Qp59, Qp60, Qp61, Qp62, Qp63, Qp64},
+ Qp80, Qp96, Qp112, Qp128}) ->
+ {Value, V2} = queue:out(V1),
+ NewSize = if Value =/= empty -> Size - 1; true -> Size end,
+ {Value,
+ {if NewSize == 0 -> empty; true -> Pc end,
+ NewSize,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48,
+ V3,
+ Qp80, Qp96, Qp112, Qp128}}).
+-define(OUT_SPECIFIC_Qp80(P, V1, V2, V3),
+out_specific(P,
+ {Pc,
+ Size,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64,
+ {Qp65, Qp66, Qp67, Qp68, Qp69, Qp70, Qp71, Qp72,
+ Qp73, Qp74, Qp75, Qp76, Qp77, Qp78, Qp79, Qp80},
+ Qp96, Qp112, Qp128}) ->
+ {Value, V2} = queue:out(V1),
+ NewSize = if Value =/= empty -> Size - 1; true -> Size end,
+ {Value,
+ {if NewSize == 0 -> empty; true -> Pc end,
+ NewSize,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64,
+ V3,
+ Qp96, Qp112, Qp128}}).
+-define(OUT_SPECIFIC_Qp96(P, V1, V2, V3),
+out_specific(P,
+ {Pc,
+ Size,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80,
+ {Qp81, Qp82, Qp83, Qp84, Qp85, Qp86, Qp87, Qp88,
+ Qp89, Qp90, Qp91, Qp92, Qp93, Qp94, Qp95, Qp96},
+ Qp112, Qp128}) ->
+ {Value, V2} = queue:out(V1),
+ NewSize = if Value =/= empty -> Size - 1; true -> Size end,
+ {Value,
+ {if NewSize == 0 -> empty; true -> Pc end,
+ NewSize,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80,
+ V3,
+ Qp112, Qp128}}).
+-define(OUT_SPECIFIC_Qp112(P, V1, V2, V3),
+out_specific(P,
+ {Pc,
+ Size,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96,
+ {Qp97, Qp98, Qp99, Qp100, Qp101, Qp102, Qp103, Qp104,
+ Qp105, Qp106, Qp107, Qp108, Qp109, Qp110, Qp111, Qp112},
+ Qp128}) ->
+ {Value, V2} = queue:out(V1),
+ NewSize = if Value =/= empty -> Size - 1; true -> Size end,
+ {Value,
+ {if NewSize == 0 -> empty; true -> Pc end,
+ NewSize,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96,
+ V3,
+ Qp128}}).
+-define(OUT_SPECIFIC_Qp128(P, V1, V2, V3),
+out_specific(P,
+ {Pc,
+ Size,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112,
+ {Qp113, Qp114, Qp115, Qp116, Qp117, Qp118, Qp119, Qp120,
+ Qp121, Qp122, Qp123, Qp124, Qp125, Qp126, Qp127, Qp128}}) ->
+ {Value, V2} = queue:out(V1),
+ NewSize = if Value =/= empty -> Size - 1; true -> Size end,
+ {Value,
+ {if NewSize == 0 -> empty; true -> Pc end,
+ NewSize,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112,
+ V3}}).
+
+?OUT_SPECIFIC_Qn128(-128,
+ Qn128, NewQn128,
+ {NewQn128, Qn127, Qn126, Qn125, Qn124,
+ Qn123, Qn122, Qn121, Qn120, Qn119, Qn118,
+ Qn117, Qn116, Qn115, Qn114, Qn113});
+?OUT_SPECIFIC_Qn128(-127,
+ Qn127, NewQn127,
+ {Qn128, NewQn127, Qn126, Qn125, Qn124,
+ Qn123, Qn122, Qn121, Qn120, Qn119, Qn118,
+ Qn117, Qn116, Qn115, Qn114, Qn113});
+?OUT_SPECIFIC_Qn128(-126,
+ Qn126, NewQn126,
+ {Qn128, Qn127, NewQn126, Qn125, Qn124,
+ Qn123, Qn122, Qn121, Qn120, Qn119, Qn118,
+ Qn117, Qn116, Qn115, Qn114, Qn113});
+?OUT_SPECIFIC_Qn128(-125,
+ Qn125, NewQn125,
+ {Qn128, Qn127, Qn126, NewQn125, Qn124,
+ Qn123, Qn122, Qn121, Qn120, Qn119, Qn118,
+ Qn117, Qn116, Qn115, Qn114, Qn113});
+?OUT_SPECIFIC_Qn128(-124,
+ Qn124, NewQn124,
+ {Qn128, Qn127, Qn126, Qn125, NewQn124,
+ Qn123, Qn122, Qn121, Qn120, Qn119, Qn118,
+ Qn117, Qn116, Qn115, Qn114, Qn113});
+?OUT_SPECIFIC_Qn128(-123,
+ Qn123, NewQn123,
+ {Qn128, Qn127, Qn126, Qn125, Qn124,
+ NewQn123, Qn122, Qn121, Qn120, Qn119, Qn118,
+ Qn117, Qn116, Qn115, Qn114, Qn113});
+?OUT_SPECIFIC_Qn128(-122,
+ Qn122, NewQn122,
+ {Qn128, Qn127, Qn126, Qn125, Qn124,
+ Qn123, NewQn122, Qn121, Qn120, Qn119, Qn118,
+ Qn117, Qn116, Qn115, Qn114, Qn113});
+?OUT_SPECIFIC_Qn128(-121,
+ Qn121, NewQn121,
+ {Qn128, Qn127, Qn126, Qn125, Qn124,
+ Qn123, Qn122, NewQn121, Qn120, Qn119, Qn118,
+ Qn117, Qn116, Qn115, Qn114, Qn113});
+?OUT_SPECIFIC_Qn128(-120,
+ Qn120, NewQn120,
+ {Qn128, Qn127, Qn126, Qn125, Qn124,
+ Qn123, Qn122, Qn121, NewQn120, Qn119, Qn118,
+ Qn117, Qn116, Qn115, Qn114, Qn113});
+?OUT_SPECIFIC_Qn128(-119,
+ Qn119, NewQn119,
+ {Qn128, Qn127, Qn126, Qn125, Qn124,
+ Qn123, Qn122, Qn121, Qn120, NewQn119, Qn118,
+ Qn117, Qn116, Qn115, Qn114, Qn113});
+?OUT_SPECIFIC_Qn128(-118,
+ Qn118, NewQn118,
+ {Qn128, Qn127, Qn126, Qn125, Qn124,
+ Qn123, Qn122, Qn121, Qn120, Qn119, NewQn118,
+ Qn117, Qn116, Qn115, Qn114, Qn113});
+?OUT_SPECIFIC_Qn128(-117,
+ Qn117, NewQn117,
+ {Qn128, Qn127, Qn126, Qn125, Qn124,
+ Qn123, Qn122, Qn121, Qn120, Qn119, Qn118,
+ NewQn117, Qn116, Qn115, Qn114, Qn113});
+?OUT_SPECIFIC_Qn128(-116,
+ Qn116, NewQn116,
+ {Qn128, Qn127, Qn126, Qn125, Qn124,
+ Qn123, Qn122, Qn121, Qn120, Qn119, Qn118,
+ Qn117, NewQn116, Qn115, Qn114, Qn113});
+?OUT_SPECIFIC_Qn128(-115,
+ Qn115, NewQn115,
+ {Qn128, Qn127, Qn126, Qn125, Qn124,
+ Qn123, Qn122, Qn121, Qn120, Qn119, Qn118,
+ Qn117, Qn116, NewQn115, Qn114, Qn113});
+?OUT_SPECIFIC_Qn128(-114,
+ Qn114, NewQn114,
+ {Qn128, Qn127, Qn126, Qn125, Qn124,
+ Qn123, Qn122, Qn121, Qn120, Qn119, Qn118,
+ Qn117, Qn116, Qn115, NewQn114, Qn113});
+?OUT_SPECIFIC_Qn128(-113,
+ Qn113, NewQn113,
+ {Qn128, Qn127, Qn126, Qn125, Qn124,
+ Qn123, Qn122, Qn121, Qn120, Qn119, Qn118,
+ Qn117, Qn116, Qn115, Qn114, NewQn113});
+?OUT_SPECIFIC_Qn112(-112,
+ Qn112, NewQn112,
+ {NewQn112, Qn111, Qn110, Qn109, Qn108,
+ Qn107, Qn106, Qn105, Qn104, Qn103, Qn102,
+ Qn101, Qn100, Qn99, Qn98, Qn97});
+?OUT_SPECIFIC_Qn112(-111,
+ Qn111, NewQn111,
+ {Qn112, NewQn111, Qn110, Qn109, Qn108,
+ Qn107, Qn106, Qn105, Qn104, Qn103, Qn102,
+ Qn101, Qn100, Qn99, Qn98, Qn97});
+?OUT_SPECIFIC_Qn112(-110,
+ Qn110, NewQn110,
+ {Qn112, Qn111, NewQn110, Qn109, Qn108,
+ Qn107, Qn106, Qn105, Qn104, Qn103, Qn102,
+ Qn101, Qn100, Qn99, Qn98, Qn97});
+?OUT_SPECIFIC_Qn112(-109,
+ Qn109, NewQn109,
+ {Qn112, Qn111, Qn110, NewQn109, Qn108,
+ Qn107, Qn106, Qn105, Qn104, Qn103, Qn102,
+ Qn101, Qn100, Qn99, Qn98, Qn97});
+?OUT_SPECIFIC_Qn112(-108,
+ Qn108, NewQn108,
+ {Qn112, Qn111, Qn110, Qn109, NewQn108,
+ Qn107, Qn106, Qn105, Qn104, Qn103, Qn102,
+ Qn101, Qn100, Qn99, Qn98, Qn97});
+?OUT_SPECIFIC_Qn112(-107,
+ Qn107, NewQn107,
+ {Qn112, Qn111, Qn110, Qn109, Qn108,
+ NewQn107, Qn106, Qn105, Qn104, Qn103, Qn102,
+ Qn101, Qn100, Qn99, Qn98, Qn97});
+?OUT_SPECIFIC_Qn112(-106,
+ Qn106, NewQn106,
+ {Qn112, Qn111, Qn110, Qn109, Qn108,
+ Qn107, NewQn106, Qn105, Qn104, Qn103, Qn102,
+ Qn101, Qn100, Qn99, Qn98, Qn97});
+?OUT_SPECIFIC_Qn112(-105,
+ Qn105, NewQn105,
+ {Qn112, Qn111, Qn110, Qn109, Qn108,
+ Qn107, Qn106, NewQn105, Qn104, Qn103, Qn102,
+ Qn101, Qn100, Qn99, Qn98, Qn97});
+?OUT_SPECIFIC_Qn112(-104,
+ Qn104, NewQn104,
+ {Qn112, Qn111, Qn110, Qn109, Qn108,
+ Qn107, Qn106, Qn105, NewQn104, Qn103, Qn102,
+ Qn101, Qn100, Qn99, Qn98, Qn97});
+?OUT_SPECIFIC_Qn112(-103,
+ Qn103, NewQn103,
+ {Qn112, Qn111, Qn110, Qn109, Qn108,
+ Qn107, Qn106, Qn105, Qn104, NewQn103, Qn102,
+ Qn101, Qn100, Qn99, Qn98, Qn97});
+?OUT_SPECIFIC_Qn112(-102,
+ Qn102, NewQn102,
+ {Qn112, Qn111, Qn110, Qn109, Qn108,
+ Qn107, Qn106, Qn105, Qn104, Qn103, NewQn102,
+ Qn101, Qn100, Qn99, Qn98, Qn97});
+?OUT_SPECIFIC_Qn112(-101,
+ Qn101, NewQn101,
+ {Qn112, Qn111, Qn110, Qn109, Qn108,
+ Qn107, Qn106, Qn105, Qn104, Qn103, Qn102,
+ NewQn101, Qn100, Qn99, Qn98, Qn97});
+?OUT_SPECIFIC_Qn112(-100,
+ Qn100, NewQn100,
+ {Qn112, Qn111, Qn110, Qn109, Qn108,
+ Qn107, Qn106, Qn105, Qn104, Qn103, Qn102,
+ Qn101, NewQn100, Qn99, Qn98, Qn97});
+?OUT_SPECIFIC_Qn112(-99,
+ Qn99, NewQn99,
+ {Qn112, Qn111, Qn110, Qn109, Qn108,
+ Qn107, Qn106, Qn105, Qn104, Qn103, Qn102,
+ Qn101, Qn100, NewQn99, Qn98, Qn97});
+?OUT_SPECIFIC_Qn112(-98,
+ Qn98, NewQn98,
+ {Qn112, Qn111, Qn110, Qn109, Qn108,
+ Qn107, Qn106, Qn105, Qn104, Qn103, Qn102,
+ Qn101, Qn100, Qn99, NewQn98, Qn97});
+?OUT_SPECIFIC_Qn112(-97,
+ Qn97, NewQn97,
+ {Qn112, Qn111, Qn110, Qn109, Qn108,
+ Qn107, Qn106, Qn105, Qn104, Qn103, Qn102,
+ Qn101, Qn100, Qn99, Qn98, NewQn97});
+?OUT_SPECIFIC_Qn96(-96,
+ Qn96, NewQn96,
+ {NewQn96, Qn95, Qn94, Qn93, Qn92,
+ Qn91, Qn90, Qn89, Qn88, Qn87, Qn86,
+ Qn85, Qn84, Qn83, Qn82, Qn81});
+?OUT_SPECIFIC_Qn96(-95,
+ Qn95, NewQn95,
+ {Qn96, NewQn95, Qn94, Qn93, Qn92,
+ Qn91, Qn90, Qn89, Qn88, Qn87, Qn86,
+ Qn85, Qn84, Qn83, Qn82, Qn81});
+?OUT_SPECIFIC_Qn96(-94,
+ Qn94, NewQn94,
+ {Qn96, Qn95, NewQn94, Qn93, Qn92,
+ Qn91, Qn90, Qn89, Qn88, Qn87, Qn86,
+ Qn85, Qn84, Qn83, Qn82, Qn81});
+?OUT_SPECIFIC_Qn96(-93,
+ Qn93, NewQn93,
+ {Qn96, Qn95, Qn94, NewQn93, Qn92,
+ Qn91, Qn90, Qn89, Qn88, Qn87, Qn86,
+ Qn85, Qn84, Qn83, Qn82, Qn81});
+?OUT_SPECIFIC_Qn96(-92,
+ Qn92, NewQn92,
+ {Qn96, Qn95, Qn94, Qn93, NewQn92,
+ Qn91, Qn90, Qn89, Qn88, Qn87, Qn86,
+ Qn85, Qn84, Qn83, Qn82, Qn81});
+?OUT_SPECIFIC_Qn96(-91,
+ Qn91, NewQn91,
+ {Qn96, Qn95, Qn94, Qn93, Qn92,
+ NewQn91, Qn90, Qn89, Qn88, Qn87, Qn86,
+ Qn85, Qn84, Qn83, Qn82, Qn81});
+?OUT_SPECIFIC_Qn96(-90,
+ Qn90, NewQn90,
+ {Qn96, Qn95, Qn94, Qn93, Qn92,
+ Qn91, NewQn90, Qn89, Qn88, Qn87, Qn86,
+ Qn85, Qn84, Qn83, Qn82, Qn81});
+?OUT_SPECIFIC_Qn96(-89,
+ Qn89, NewQn89,
+ {Qn96, Qn95, Qn94, Qn93, Qn92,
+ Qn91, Qn90, NewQn89, Qn88, Qn87, Qn86,
+ Qn85, Qn84, Qn83, Qn82, Qn81});
+?OUT_SPECIFIC_Qn96(-88,
+ Qn88, NewQn88,
+ {Qn96, Qn95, Qn94, Qn93, Qn92,
+ Qn91, Qn90, Qn89, NewQn88, Qn87, Qn86,
+ Qn85, Qn84, Qn83, Qn82, Qn81});
+?OUT_SPECIFIC_Qn96(-87,
+ Qn87, NewQn87,
+ {Qn96, Qn95, Qn94, Qn93, Qn92,
+ Qn91, Qn90, Qn89, Qn88, NewQn87, Qn86,
+ Qn85, Qn84, Qn83, Qn82, Qn81});
+?OUT_SPECIFIC_Qn96(-86,
+ Qn86, NewQn86,
+ {Qn96, Qn95, Qn94, Qn93, Qn92,
+ Qn91, Qn90, Qn89, Qn88, Qn87, NewQn86,
+ Qn85, Qn84, Qn83, Qn82, Qn81});
+?OUT_SPECIFIC_Qn96(-85,
+ Qn85, NewQn85,
+ {Qn96, Qn95, Qn94, Qn93, Qn92,
+ Qn91, Qn90, Qn89, Qn88, Qn87, Qn86,
+ NewQn85, Qn84, Qn83, Qn82, Qn81});
+?OUT_SPECIFIC_Qn96(-84,
+ Qn84, NewQn84,
+ {Qn96, Qn95, Qn94, Qn93, Qn92,
+ Qn91, Qn90, Qn89, Qn88, Qn87, Qn86,
+ Qn85, NewQn84, Qn83, Qn82, Qn81});
+?OUT_SPECIFIC_Qn96(-83,
+ Qn83, NewQn83,
+ {Qn96, Qn95, Qn94, Qn93, Qn92,
+ Qn91, Qn90, Qn89, Qn88, Qn87, Qn86,
+ Qn85, Qn84, NewQn83, Qn82, Qn81});
+?OUT_SPECIFIC_Qn96(-82,
+ Qn82, NewQn82,
+ {Qn96, Qn95, Qn94, Qn93, Qn92,
+ Qn91, Qn90, Qn89, Qn88, Qn87, Qn86,
+ Qn85, Qn84, Qn83, NewQn82, Qn81});
+?OUT_SPECIFIC_Qn96(-81,
+ Qn81, NewQn81,
+ {Qn96, Qn95, Qn94, Qn93, Qn92,
+ Qn91, Qn90, Qn89, Qn88, Qn87, Qn86,
+ Qn85, Qn84, Qn83, Qn82, NewQn81});
+?OUT_SPECIFIC_Qn80(-80,
+ Qn80, NewQn80,
+ {NewQn80, Qn79, Qn78, Qn77, Qn76,
+ Qn75, Qn74, Qn73, Qn72, Qn71, Qn70,
+ Qn69, Qn68, Qn67, Qn66, Qn65});
+?OUT_SPECIFIC_Qn80(-79,
+ Qn79, NewQn79,
+ {Qn80, NewQn79, Qn78, Qn77, Qn76,
+ Qn75, Qn74, Qn73, Qn72, Qn71, Qn70,
+ Qn69, Qn68, Qn67, Qn66, Qn65});
+?OUT_SPECIFIC_Qn80(-78,
+ Qn78, NewQn78,
+ {Qn80, Qn79, NewQn78, Qn77, Qn76,
+ Qn75, Qn74, Qn73, Qn72, Qn71, Qn70,
+ Qn69, Qn68, Qn67, Qn66, Qn65});
+?OUT_SPECIFIC_Qn80(-77,
+ Qn77, NewQn77,
+ {Qn80, Qn79, Qn78, NewQn77, Qn76,
+ Qn75, Qn74, Qn73, Qn72, Qn71, Qn70,
+ Qn69, Qn68, Qn67, Qn66, Qn65});
+?OUT_SPECIFIC_Qn80(-76,
+ Qn76, NewQn76,
+ {Qn80, Qn79, Qn78, Qn77, NewQn76,
+ Qn75, Qn74, Qn73, Qn72, Qn71, Qn70,
+ Qn69, Qn68, Qn67, Qn66, Qn65});
+?OUT_SPECIFIC_Qn80(-75,
+ Qn75, NewQn75,
+ {Qn80, Qn79, Qn78, Qn77, Qn76,
+ NewQn75, Qn74, Qn73, Qn72, Qn71, Qn70,
+ Qn69, Qn68, Qn67, Qn66, Qn65});
+?OUT_SPECIFIC_Qn80(-74,
+ Qn74, NewQn74,
+ {Qn80, Qn79, Qn78, Qn77, Qn76,
+ Qn75, NewQn74, Qn73, Qn72, Qn71, Qn70,
+ Qn69, Qn68, Qn67, Qn66, Qn65});
+?OUT_SPECIFIC_Qn80(-73,
+ Qn73, NewQn73,
+ {Qn80, Qn79, Qn78, Qn77, Qn76,
+ Qn75, Qn74, NewQn73, Qn72, Qn71, Qn70,
+ Qn69, Qn68, Qn67, Qn66, Qn65});
+?OUT_SPECIFIC_Qn80(-72,
+ Qn72, NewQn72,
+ {Qn80, Qn79, Qn78, Qn77, Qn76,
+ Qn75, Qn74, Qn73, NewQn72, Qn71, Qn70,
+ Qn69, Qn68, Qn67, Qn66, Qn65});
+?OUT_SPECIFIC_Qn80(-71,
+ Qn71, NewQn71,
+ {Qn80, Qn79, Qn78, Qn77, Qn76,
+ Qn75, Qn74, Qn73, Qn72, NewQn71, Qn70,
+ Qn69, Qn68, Qn67, Qn66, Qn65});
+?OUT_SPECIFIC_Qn80(-70,
+ Qn70, NewQn70,
+ {Qn80, Qn79, Qn78, Qn77, Qn76,
+ Qn75, Qn74, Qn73, Qn72, Qn71, NewQn70,
+ Qn69, Qn68, Qn67, Qn66, Qn65});
+?OUT_SPECIFIC_Qn80(-69,
+ Qn69, NewQn69,
+ {Qn80, Qn79, Qn78, Qn77, Qn76,
+ Qn75, Qn74, Qn73, Qn72, Qn71, Qn70,
+ NewQn69, Qn68, Qn67, Qn66, Qn65});
+?OUT_SPECIFIC_Qn80(-68,
+ Qn68, NewQn68,
+ {Qn80, Qn79, Qn78, Qn77, Qn76,
+ Qn75, Qn74, Qn73, Qn72, Qn71, Qn70,
+ Qn69, NewQn68, Qn67, Qn66, Qn65});
+?OUT_SPECIFIC_Qn80(-67,
+ Qn67, NewQn67,
+ {Qn80, Qn79, Qn78, Qn77, Qn76,
+ Qn75, Qn74, Qn73, Qn72, Qn71, Qn70,
+ Qn69, Qn68, NewQn67, Qn66, Qn65});
+?OUT_SPECIFIC_Qn80(-66,
+ Qn66, NewQn66,
+ {Qn80, Qn79, Qn78, Qn77, Qn76,
+ Qn75, Qn74, Qn73, Qn72, Qn71, Qn70,
+ Qn69, Qn68, Qn67, NewQn66, Qn65});
+?OUT_SPECIFIC_Qn80(-65,
+ Qn65, NewQn65,
+ {Qn80, Qn79, Qn78, Qn77, Qn76,
+ Qn75, Qn74, Qn73, Qn72, Qn71, Qn70,
+ Qn69, Qn68, Qn67, Qn66, NewQn65});
+?OUT_SPECIFIC_Qn64(-64,
+ Qn64, NewQn64,
+ {NewQn64, Qn63, Qn62, Qn61, Qn60,
+ Qn59, Qn58, Qn57, Qn56, Qn55, Qn54,
+ Qn53, Qn52, Qn51, Qn50, Qn49});
+?OUT_SPECIFIC_Qn64(-63,
+ Qn63, NewQn63,
+ {Qn64, NewQn63, Qn62, Qn61, Qn60,
+ Qn59, Qn58, Qn57, Qn56, Qn55, Qn54,
+ Qn53, Qn52, Qn51, Qn50, Qn49});
+?OUT_SPECIFIC_Qn64(-62,
+ Qn62, NewQn62,
+ {Qn64, Qn63, NewQn62, Qn61, Qn60,
+ Qn59, Qn58, Qn57, Qn56, Qn55, Qn54,
+ Qn53, Qn52, Qn51, Qn50, Qn49});
+?OUT_SPECIFIC_Qn64(-61,
+ Qn61, NewQn61,
+ {Qn64, Qn63, Qn62, NewQn61, Qn60,
+ Qn59, Qn58, Qn57, Qn56, Qn55, Qn54,
+ Qn53, Qn52, Qn51, Qn50, Qn49});
+?OUT_SPECIFIC_Qn64(-60,
+ Qn60, NewQn60,
+ {Qn64, Qn63, Qn62, Qn61, NewQn60,
+ Qn59, Qn58, Qn57, Qn56, Qn55, Qn54,
+ Qn53, Qn52, Qn51, Qn50, Qn49});
+?OUT_SPECIFIC_Qn64(-59,
+ Qn59, NewQn59,
+ {Qn64, Qn63, Qn62, Qn61, Qn60,
+ NewQn59, Qn58, Qn57, Qn56, Qn55, Qn54,
+ Qn53, Qn52, Qn51, Qn50, Qn49});
+?OUT_SPECIFIC_Qn64(-58,
+ Qn58, NewQn58,
+ {Qn64, Qn63, Qn62, Qn61, Qn60,
+ Qn59, NewQn58, Qn57, Qn56, Qn55, Qn54,
+ Qn53, Qn52, Qn51, Qn50, Qn49});
+?OUT_SPECIFIC_Qn64(-57,
+ Qn57, NewQn57,
+ {Qn64, Qn63, Qn62, Qn61, Qn60,
+ Qn59, Qn58, NewQn57, Qn56, Qn55, Qn54,
+ Qn53, Qn52, Qn51, Qn50, Qn49});
+?OUT_SPECIFIC_Qn64(-56,
+ Qn56, NewQn56,
+ {Qn64, Qn63, Qn62, Qn61, Qn60,
+ Qn59, Qn58, Qn57, NewQn56, Qn55, Qn54,
+ Qn53, Qn52, Qn51, Qn50, Qn49});
+?OUT_SPECIFIC_Qn64(-55,
+ Qn55, NewQn55,
+ {Qn64, Qn63, Qn62, Qn61, Qn60,
+ Qn59, Qn58, Qn57, Qn56, NewQn55, Qn54,
+ Qn53, Qn52, Qn51, Qn50, Qn49});
+?OUT_SPECIFIC_Qn64(-54,
+ Qn54, NewQn54,
+ {Qn64, Qn63, Qn62, Qn61, Qn60,
+ Qn59, Qn58, Qn57, Qn56, Qn55, NewQn54,
+ Qn53, Qn52, Qn51, Qn50, Qn49});
+?OUT_SPECIFIC_Qn64(-53,
+ Qn53, NewQn53,
+ {Qn64, Qn63, Qn62, Qn61, Qn60,
+ Qn59, Qn58, Qn57, Qn56, Qn55, Qn54,
+ NewQn53, Qn52, Qn51, Qn50, Qn49});
+?OUT_SPECIFIC_Qn64(-52,
+ Qn52, NewQn52,
+ {Qn64, Qn63, Qn62, Qn61, Qn60,
+ Qn59, Qn58, Qn57, Qn56, Qn55, Qn54,
+ Qn53, NewQn52, Qn51, Qn50, Qn49});
+?OUT_SPECIFIC_Qn64(-51,
+ Qn51, NewQn51,
+ {Qn64, Qn63, Qn62, Qn61, Qn60,
+ Qn59, Qn58, Qn57, Qn56, Qn55, Qn54,
+ Qn53, Qn52, NewQn51, Qn50, Qn49});
+?OUT_SPECIFIC_Qn64(-50,
+ Qn50, NewQn50,
+ {Qn64, Qn63, Qn62, Qn61, Qn60,
+ Qn59, Qn58, Qn57, Qn56, Qn55, Qn54,
+ Qn53, Qn52, Qn51, NewQn50, Qn49});
+?OUT_SPECIFIC_Qn64(-49,
+ Qn49, NewQn49,
+ {Qn64, Qn63, Qn62, Qn61, Qn60,
+ Qn59, Qn58, Qn57, Qn56, Qn55, Qn54,
+ Qn53, Qn52, Qn51, Qn50, NewQn49});
+?OUT_SPECIFIC_Qn48(-48,
+ Qn48, NewQn48,
+ {NewQn48, Qn47, Qn46, Qn45, Qn44,
+ Qn43, Qn42, Qn41, Qn40, Qn39, Qn38,
+ Qn37, Qn36, Qn35, Qn34, Qn33});
+?OUT_SPECIFIC_Qn48(-47,
+ Qn47, NewQn47,
+ {Qn48, NewQn47, Qn46, Qn45, Qn44,
+ Qn43, Qn42, Qn41, Qn40, Qn39, Qn38,
+ Qn37, Qn36, Qn35, Qn34, Qn33});
+?OUT_SPECIFIC_Qn48(-46,
+ Qn46, NewQn46,
+ {Qn48, Qn47, NewQn46, Qn45, Qn44,
+ Qn43, Qn42, Qn41, Qn40, Qn39, Qn38,
+ Qn37, Qn36, Qn35, Qn34, Qn33});
+?OUT_SPECIFIC_Qn48(-45,
+ Qn45, NewQn45,
+ {Qn48, Qn47, Qn46, NewQn45, Qn44,
+ Qn43, Qn42, Qn41, Qn40, Qn39, Qn38,
+ Qn37, Qn36, Qn35, Qn34, Qn33});
+?OUT_SPECIFIC_Qn48(-44,
+ Qn44, NewQn44,
+ {Qn48, Qn47, Qn46, Qn45, NewQn44,
+ Qn43, Qn42, Qn41, Qn40, Qn39, Qn38,
+ Qn37, Qn36, Qn35, Qn34, Qn33});
+?OUT_SPECIFIC_Qn48(-43,
+ Qn43, NewQn43,
+ {Qn48, Qn47, Qn46, Qn45, Qn44,
+ NewQn43, Qn42, Qn41, Qn40, Qn39, Qn38,
+ Qn37, Qn36, Qn35, Qn34, Qn33});
+?OUT_SPECIFIC_Qn48(-42,
+ Qn42, NewQn42,
+ {Qn48, Qn47, Qn46, Qn45, Qn44,
+ Qn43, NewQn42, Qn41, Qn40, Qn39, Qn38,
+ Qn37, Qn36, Qn35, Qn34, Qn33});
+?OUT_SPECIFIC_Qn48(-41,
+ Qn41, NewQn41,
+ {Qn48, Qn47, Qn46, Qn45, Qn44,
+ Qn43, Qn42, NewQn41, Qn40, Qn39, Qn38,
+ Qn37, Qn36, Qn35, Qn34, Qn33});
+?OUT_SPECIFIC_Qn48(-40,
+ Qn40, NewQn40,
+ {Qn48, Qn47, Qn46, Qn45, Qn44,
+ Qn43, Qn42, Qn41, NewQn40, Qn39, Qn38,
+ Qn37, Qn36, Qn35, Qn34, Qn33});
+?OUT_SPECIFIC_Qn48(-39,
+ Qn39, NewQn39,
+ {Qn48, Qn47, Qn46, Qn45, Qn44,
+ Qn43, Qn42, Qn41, Qn40, NewQn39, Qn38,
+ Qn37, Qn36, Qn35, Qn34, Qn33});
+?OUT_SPECIFIC_Qn48(-38,
+ Qn38, NewQn38,
+ {Qn48, Qn47, Qn46, Qn45, Qn44,
+ Qn43, Qn42, Qn41, Qn40, Qn39, NewQn38,
+ Qn37, Qn36, Qn35, Qn34, Qn33});
+?OUT_SPECIFIC_Qn48(-37,
+ Qn37, NewQn37,
+ {Qn48, Qn47, Qn46, Qn45, Qn44,
+ Qn43, Qn42, Qn41, Qn40, Qn39, Qn38,
+ NewQn37, Qn36, Qn35, Qn34, Qn33});
+?OUT_SPECIFIC_Qn48(-36,
+ Qn36, NewQn36,
+ {Qn48, Qn47, Qn46, Qn45, Qn44,
+ Qn43, Qn42, Qn41, Qn40, Qn39, Qn38,
+ Qn37, NewQn36, Qn35, Qn34, Qn33});
+?OUT_SPECIFIC_Qn48(-35,
+ Qn35, NewQn35,
+ {Qn48, Qn47, Qn46, Qn45, Qn44,
+ Qn43, Qn42, Qn41, Qn40, Qn39, Qn38,
+ Qn37, Qn36, NewQn35, Qn34, Qn33});
+?OUT_SPECIFIC_Qn48(-34,
+ Qn34, NewQn34,
+ {Qn48, Qn47, Qn46, Qn45, Qn44,
+ Qn43, Qn42, Qn41, Qn40, Qn39, Qn38,
+ Qn37, Qn36, Qn35, NewQn34, Qn33});
+?OUT_SPECIFIC_Qn48(-33,
+ Qn33, NewQn33,
+ {Qn48, Qn47, Qn46, Qn45, Qn44,
+ Qn43, Qn42, Qn41, Qn40, Qn39, Qn38,
+ Qn37, Qn36, Qn35, Qn34, NewQn33});
+?OUT_SPECIFIC_Qn32(-32,
+ Qn32, NewQn32,
+ {NewQn32, Qn31, Qn30, Qn29, Qn28,
+ Qn27, Qn26, Qn25, Qn24, Qn23, Qn22,
+ Qn21, Qn20, Qn19, Qn18, Qn17});
+?OUT_SPECIFIC_Qn32(-31,
+ Qn31, NewQn31,
+ {Qn32, NewQn31, Qn30, Qn29, Qn28,
+ Qn27, Qn26, Qn25, Qn24, Qn23, Qn22,
+ Qn21, Qn20, Qn19, Qn18, Qn17});
+?OUT_SPECIFIC_Qn32(-30,
+ Qn30, NewQn30,
+ {Qn32, Qn31, NewQn30, Qn29, Qn28,
+ Qn27, Qn26, Qn25, Qn24, Qn23, Qn22,
+ Qn21, Qn20, Qn19, Qn18, Qn17});
+?OUT_SPECIFIC_Qn32(-29,
+ Qn29, NewQn29,
+ {Qn32, Qn31, Qn30, NewQn29, Qn28,
+ Qn27, Qn26, Qn25, Qn24, Qn23, Qn22,
+ Qn21, Qn20, Qn19, Qn18, Qn17});
+?OUT_SPECIFIC_Qn32(-28,
+ Qn28, NewQn28,
+ {Qn32, Qn31, Qn30, Qn29, NewQn28,
+ Qn27, Qn26, Qn25, Qn24, Qn23, Qn22,
+ Qn21, Qn20, Qn19, Qn18, Qn17});
+?OUT_SPECIFIC_Qn32(-27,
+ Qn27, NewQn27,
+ {Qn32, Qn31, Qn30, Qn29, Qn28,
+ NewQn27, Qn26, Qn25, Qn24, Qn23, Qn22,
+ Qn21, Qn20, Qn19, Qn18, Qn17});
+?OUT_SPECIFIC_Qn32(-26,
+ Qn26, NewQn26,
+ {Qn32, Qn31, Qn30, Qn29, Qn28,
+ Qn27, NewQn26, Qn25, Qn24, Qn23, Qn22,
+ Qn21, Qn20, Qn19, Qn18, Qn17});
+?OUT_SPECIFIC_Qn32(-25,
+ Qn25, NewQn25,
+ {Qn32, Qn31, Qn30, Qn29, Qn28,
+ Qn27, Qn26, NewQn25, Qn24, Qn23, Qn22,
+ Qn21, Qn20, Qn19, Qn18, Qn17});
+?OUT_SPECIFIC_Qn32(-24,
+ Qn24, NewQn24,
+ {Qn32, Qn31, Qn30, Qn29, Qn28,
+ Qn27, Qn26, Qn25, NewQn24, Qn23, Qn22,
+ Qn21, Qn20, Qn19, Qn18, Qn17});
+?OUT_SPECIFIC_Qn32(-23,
+ Qn23, NewQn23,
+ {Qn32, Qn31, Qn30, Qn29, Qn28,
+ Qn27, Qn26, Qn25, Qn24, NewQn23, Qn22,
+ Qn21, Qn20, Qn19, Qn18, Qn17});
+?OUT_SPECIFIC_Qn32(-22,
+ Qn22, NewQn22,
+ {Qn32, Qn31, Qn30, Qn29, Qn28,
+ Qn27, Qn26, Qn25, Qn24, Qn23, NewQn22,
+ Qn21, Qn20, Qn19, Qn18, Qn17});
+?OUT_SPECIFIC_Qn32(-21,
+ Qn21, NewQn21,
+ {Qn32, Qn31, Qn30, Qn29, Qn28,
+ Qn27, Qn26, Qn25, Qn24, Qn23, Qn22,
+ NewQn21, Qn20, Qn19, Qn18, Qn17});
+?OUT_SPECIFIC_Qn32(-20,
+ Qn20, NewQn20,
+ {Qn32, Qn31, Qn30, Qn29, Qn28,
+ Qn27, Qn26, Qn25, Qn24, Qn23, Qn22,
+ Qn21, NewQn20, Qn19, Qn18, Qn17});
+?OUT_SPECIFIC_Qn32(-19,
+ Qn19, NewQn19,
+ {Qn32, Qn31, Qn30, Qn29, Qn28,
+ Qn27, Qn26, Qn25, Qn24, Qn23, Qn22,
+ Qn21, Qn20, NewQn19, Qn18, Qn17});
+?OUT_SPECIFIC_Qn32(-18,
+ Qn18, NewQn18,
+ {Qn32, Qn31, Qn30, Qn29, Qn28,
+ Qn27, Qn26, Qn25, Qn24, Qn23, Qn22,
+ Qn21, Qn20, Qn19, NewQn18, Qn17});
+?OUT_SPECIFIC_Qn32(-17,
+ Qn17, NewQn17,
+ {Qn32, Qn31, Qn30, Qn29, Qn28,
+ Qn27, Qn26, Qn25, Qn24, Qn23, Qn22,
+ Qn21, Qn20, Qn19, Qn18, NewQn17});
+?OUT_SPECIFIC_Qn16(-16,
+ Qn16, NewQn16,
+ {NewQn16, Qn15, Qn14, Qn13, Qn12,
+ Qn11, Qn10, Qn9, Qn8, Qn7, Qn6,
+ Qn5, Qn4, Qn3, Qn2, Qn1});
+?OUT_SPECIFIC_Qn16(-15,
+ Qn15, NewQn15,
+ {Qn16, NewQn15, Qn14, Qn13, Qn12,
+ Qn11, Qn10, Qn9, Qn8, Qn7, Qn6,
+ Qn5, Qn4, Qn3, Qn2, Qn1});
+?OUT_SPECIFIC_Qn16(-14,
+ Qn14, NewQn14,
+ {Qn16, Qn15, NewQn14, Qn13, Qn12,
+ Qn11, Qn10, Qn9, Qn8, Qn7, Qn6,
+ Qn5, Qn4, Qn3, Qn2, Qn1});
+?OUT_SPECIFIC_Qn16(-13,
+ Qn13, NewQn13,
+ {Qn16, Qn15, Qn14, NewQn13, Qn12,
+ Qn11, Qn10, Qn9, Qn8, Qn7, Qn6,
+ Qn5, Qn4, Qn3, Qn2, Qn1});
+?OUT_SPECIFIC_Qn16(-12,
+ Qn12, NewQn12,
+ {Qn16, Qn15, Qn14, Qn13, NewQn12,
+ Qn11, Qn10, Qn9, Qn8, Qn7, Qn6,
+ Qn5, Qn4, Qn3, Qn2, Qn1});
+?OUT_SPECIFIC_Qn16(-11,
+ Qn11, NewQn11,
+ {Qn16, Qn15, Qn14, Qn13, Qn12,
+ NewQn11, Qn10, Qn9, Qn8, Qn7, Qn6,
+ Qn5, Qn4, Qn3, Qn2, Qn1});
+?OUT_SPECIFIC_Qn16(-10,
+ Qn10, NewQn10,
+ {Qn16, Qn15, Qn14, Qn13, Qn12,
+ Qn11, NewQn10, Qn9, Qn8, Qn7, Qn6,
+ Qn5, Qn4, Qn3, Qn2, Qn1});
+?OUT_SPECIFIC_Qn16(-9,
+ Qn9, NewQn9,
+ {Qn16, Qn15, Qn14, Qn13, Qn12,
+ Qn11, Qn10, NewQn9, Qn8, Qn7, Qn6,
+ Qn5, Qn4, Qn3, Qn2, Qn1});
+?OUT_SPECIFIC_Qn16(-8,
+ Qn8, NewQn8,
+ {Qn16, Qn15, Qn14, Qn13, Qn12,
+ Qn11, Qn10, Qn9, NewQn8, Qn7, Qn6,
+ Qn5, Qn4, Qn3, Qn2, Qn1});
+?OUT_SPECIFIC_Qn16(-7,
+ Qn7, NewQn7,
+ {Qn16, Qn15, Qn14, Qn13, Qn12,
+ Qn11, Qn10, Qn9, Qn8, NewQn7, Qn6,
+ Qn5, Qn4, Qn3, Qn2, Qn1});
+?OUT_SPECIFIC_Qn16(-6,
+ Qn6, NewQn6,
+ {Qn16, Qn15, Qn14, Qn13, Qn12,
+ Qn11, Qn10, Qn9, Qn8, Qn7, NewQn6,
+ Qn5, Qn4, Qn3, Qn2, Qn1});
+?OUT_SPECIFIC_Qn16(-5,
+ Qn5, NewQn5,
+ {Qn16, Qn15, Qn14, Qn13, Qn12,
+ Qn11, Qn10, Qn9, Qn8, Qn7, Qn6,
+ NewQn5, Qn4, Qn3, Qn2, Qn1});
+?OUT_SPECIFIC_Qn16(-4,
+ Qn4, NewQn4,
+ {Qn16, Qn15, Qn14, Qn13, Qn12,
+ Qn11, Qn10, Qn9, Qn8, Qn7, Qn6,
+ Qn5, NewQn4, Qn3, Qn2, Qn1});
+?OUT_SPECIFIC_Qn16(-3,
+ Qn3, NewQn3,
+ {Qn16, Qn15, Qn14, Qn13, Qn12,
+ Qn11, Qn10, Qn9, Qn8, Qn7, Qn6,
+ Qn5, Qn4, NewQn3, Qn2, Qn1});
+?OUT_SPECIFIC_Qn16(-2,
+ Qn2, NewQn2,
+ {Qn16, Qn15, Qn14, Qn13, Qn12,
+ Qn11, Qn10, Qn9, Qn8, Qn7, Qn6,
+ Qn5, Qn4, Qn3, NewQn2, Qn1});
+?OUT_SPECIFIC_Qn16(-1,
+ Qn1, NewQn1,
+ {Qn16, Qn15, Qn14, Qn13, Qn12,
+ Qn11, Qn10, Qn9, Qn8, Qn7, Qn6,
+ Qn5, Qn4, Qn3, Qn2, NewQn1});
+out_specific(0,
+ {Pc,
+ Size,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}) ->
+ {Value, NewQ0} = queue:out(Q0),
+ NewSize = if Value =/= empty -> Size - 1; true -> Size end,
+ {Value,
+ {if NewSize == 0 -> empty; true -> Pc end,
+ NewSize,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ NewQ0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}};
+?OUT_SPECIFIC_Qp16(1,
+ Qp1, NewQp1,
+ {NewQp1, Qp2, Qp3, Qp4, Qp5,
+ Qp6, Qp7, Qp8, Qp9, Qp10, Qp11,
+ Qp12, Qp13, Qp14, Qp15, Qp16});
+?OUT_SPECIFIC_Qp16(2,
+ Qp2, NewQp2,
+ {Qp1, NewQp2, Qp3, Qp4, Qp5,
+ Qp6, Qp7, Qp8, Qp9, Qp10, Qp11,
+ Qp12, Qp13, Qp14, Qp15, Qp16});
+?OUT_SPECIFIC_Qp16(3,
+ Qp3, NewQp3,
+ {Qp1, Qp2, NewQp3, Qp4, Qp5,
+ Qp6, Qp7, Qp8, Qp9, Qp10, Qp11,
+ Qp12, Qp13, Qp14, Qp15, Qp16});
+?OUT_SPECIFIC_Qp16(4,
+ Qp4, NewQp4,
+ {Qp1, Qp2, Qp3, NewQp4, Qp5,
+ Qp6, Qp7, Qp8, Qp9, Qp10, Qp11,
+ Qp12, Qp13, Qp14, Qp15, Qp16});
+?OUT_SPECIFIC_Qp16(5,
+ Qp5, NewQp5,
+ {Qp1, Qp2, Qp3, Qp4, NewQp5,
+ Qp6, Qp7, Qp8, Qp9, Qp10, Qp11,
+ Qp12, Qp13, Qp14, Qp15, Qp16});
+?OUT_SPECIFIC_Qp16(6,
+ Qp6, NewQp6,
+ {Qp1, Qp2, Qp3, Qp4, Qp5,
+ NewQp6, Qp7, Qp8, Qp9, Qp10, Qp11,
+ Qp12, Qp13, Qp14, Qp15, Qp16});
+?OUT_SPECIFIC_Qp16(7,
+ Qp7, NewQp7,
+ {Qp1, Qp2, Qp3, Qp4, Qp5,
+ Qp6, NewQp7, Qp8, Qp9, Qp10, Qp11,
+ Qp12, Qp13, Qp14, Qp15, Qp16});
+?OUT_SPECIFIC_Qp16(8,
+ Qp8, NewQp8,
+ {Qp1, Qp2, Qp3, Qp4, Qp5,
+ Qp6, Qp7, NewQp8, Qp9, Qp10, Qp11,
+ Qp12, Qp13, Qp14, Qp15, Qp16});
+?OUT_SPECIFIC_Qp16(9,
+ Qp9, NewQp9,
+ {Qp1, Qp2, Qp3, Qp4, Qp5,
+ Qp6, Qp7, Qp8, NewQp9, Qp10, Qp11,
+ Qp12, Qp13, Qp14, Qp15, Qp16});
+?OUT_SPECIFIC_Qp16(10,
+ Qp10, NewQp10,
+ {Qp1, Qp2, Qp3, Qp4, Qp5,
+ Qp6, Qp7, Qp8, Qp9, NewQp10, Qp11,
+ Qp12, Qp13, Qp14, Qp15, Qp16});
+?OUT_SPECIFIC_Qp16(11,
+ Qp11, NewQp11,
+ {Qp1, Qp2, Qp3, Qp4, Qp5,
+ Qp6, Qp7, Qp8, Qp9, Qp10, NewQp11,
+ Qp12, Qp13, Qp14, Qp15, Qp16});
+?OUT_SPECIFIC_Qp16(12,
+ Qp12, NewQp12,
+ {Qp1, Qp2, Qp3, Qp4, Qp5,
+ Qp6, Qp7, Qp8, Qp9, Qp10, Qp11,
+ NewQp12, Qp13, Qp14, Qp15, Qp16});
+?OUT_SPECIFIC_Qp16(13,
+ Qp13, NewQp13,
+ {Qp1, Qp2, Qp3, Qp4, Qp5,
+ Qp6, Qp7, Qp8, Qp9, Qp10, Qp11,
+ Qp12, NewQp13, Qp14, Qp15, Qp16});
+?OUT_SPECIFIC_Qp16(14,
+ Qp14, NewQp14,
+ {Qp1, Qp2, Qp3, Qp4, Qp5,
+ Qp6, Qp7, Qp8, Qp9, Qp10, Qp11,
+ Qp12, Qp13, NewQp14, Qp15, Qp16});
+?OUT_SPECIFIC_Qp16(15,
+ Qp15, NewQp15,
+ {Qp1, Qp2, Qp3, Qp4, Qp5,
+ Qp6, Qp7, Qp8, Qp9, Qp10, Qp11,
+ Qp12, Qp13, Qp14, NewQp15, Qp16});
+?OUT_SPECIFIC_Qp16(16,
+ Qp16, NewQp16,
+ {Qp1, Qp2, Qp3, Qp4, Qp5,
+ Qp6, Qp7, Qp8, Qp9, Qp10, Qp11,
+ Qp12, Qp13, Qp14, Qp15, NewQp16});
+?OUT_SPECIFIC_Qp32(17,
+ Qp17, NewQp17,
+ {NewQp17, Qp18, Qp19, Qp20, Qp21,
+ Qp22, Qp23, Qp24, Qp25, Qp26, Qp27,
+ Qp28, Qp29, Qp30, Qp31, Qp32});
+?OUT_SPECIFIC_Qp32(18,
+ Qp18, NewQp18,
+ {Qp17, NewQp18, Qp19, Qp20, Qp21,
+ Qp22, Qp23, Qp24, Qp25, Qp26, Qp27,
+ Qp28, Qp29, Qp30, Qp31, Qp32});
+?OUT_SPECIFIC_Qp32(19,
+ Qp19, NewQp19,
+ {Qp17, Qp18, NewQp19, Qp20, Qp21,
+ Qp22, Qp23, Qp24, Qp25, Qp26, Qp27,
+ Qp28, Qp29, Qp30, Qp31, Qp32});
+?OUT_SPECIFIC_Qp32(20,
+ Qp20, NewQp20,
+ {Qp17, Qp18, Qp19, NewQp20, Qp21,
+ Qp22, Qp23, Qp24, Qp25, Qp26, Qp27,
+ Qp28, Qp29, Qp30, Qp31, Qp32});
+?OUT_SPECIFIC_Qp32(21,
+ Qp21, NewQp21,
+ {Qp17, Qp18, Qp19, Qp20, NewQp21,
+ Qp22, Qp23, Qp24, Qp25, Qp26, Qp27,
+ Qp28, Qp29, Qp30, Qp31, Qp32});
+?OUT_SPECIFIC_Qp32(22,
+ Qp22, NewQp22,
+ {Qp17, Qp18, Qp19, Qp20, Qp21,
+ NewQp22, Qp23, Qp24, Qp25, Qp26, Qp27,
+ Qp28, Qp29, Qp30, Qp31, Qp32});
+?OUT_SPECIFIC_Qp32(23,
+ Qp23, NewQp23,
+ {Qp17, Qp18, Qp19, Qp20, Qp21,
+ Qp22, NewQp23, Qp24, Qp25, Qp26, Qp27,
+ Qp28, Qp29, Qp30, Qp31, Qp32});
+?OUT_SPECIFIC_Qp32(24,
+ Qp24, NewQp24,
+ {Qp17, Qp18, Qp19, Qp20, Qp21,
+ Qp22, Qp23, NewQp24, Qp25, Qp26, Qp27,
+ Qp28, Qp29, Qp30, Qp31, Qp32});
+?OUT_SPECIFIC_Qp32(25,
+ Qp25, NewQp25,
+ {Qp17, Qp18, Qp19, Qp20, Qp21,
+ Qp22, Qp23, Qp24, NewQp25, Qp26, Qp27,
+ Qp28, Qp29, Qp30, Qp31, Qp32});
+?OUT_SPECIFIC_Qp32(26,
+ Qp26, NewQp26,
+ {Qp17, Qp18, Qp19, Qp20, Qp21,
+ Qp22, Qp23, Qp24, Qp25, NewQp26, Qp27,
+ Qp28, Qp29, Qp30, Qp31, Qp32});
+?OUT_SPECIFIC_Qp32(27,
+ Qp27, NewQp27,
+ {Qp17, Qp18, Qp19, Qp20, Qp21,
+ Qp22, Qp23, Qp24, Qp25, Qp26, NewQp27,
+ Qp28, Qp29, Qp30, Qp31, Qp32});
+?OUT_SPECIFIC_Qp32(28,
+ Qp28, NewQp28,
+ {Qp17, Qp18, Qp19, Qp20, Qp21,
+ Qp22, Qp23, Qp24, Qp25, Qp26, Qp27,
+ NewQp28, Qp29, Qp30, Qp31, Qp32});
+?OUT_SPECIFIC_Qp32(29,
+ Qp29, NewQp29,
+ {Qp17, Qp18, Qp19, Qp20, Qp21,
+ Qp22, Qp23, Qp24, Qp25, Qp26, Qp27,
+ Qp28, NewQp29, Qp30, Qp31, Qp32});
+?OUT_SPECIFIC_Qp32(30,
+ Qp30, NewQp30,
+ {Qp17, Qp18, Qp19, Qp20, Qp21,
+ Qp22, Qp23, Qp24, Qp25, Qp26, Qp27,
+ Qp28, Qp29, NewQp30, Qp31, Qp32});
+?OUT_SPECIFIC_Qp32(31,
+ Qp31, NewQp31,
+ {Qp17, Qp18, Qp19, Qp20, Qp21,
+ Qp22, Qp23, Qp24, Qp25, Qp26, Qp27,
+ Qp28, Qp29, Qp30, NewQp31, Qp32});
+?OUT_SPECIFIC_Qp32(32,
+ Qp32, NewQp32,
+ {Qp17, Qp18, Qp19, Qp20, Qp21,
+ Qp22, Qp23, Qp24, Qp25, Qp26, Qp27,
+ Qp28, Qp29, Qp30, Qp31, NewQp32});
+?OUT_SPECIFIC_Qp48(33,
+ Qp33, NewQp33,
+ {NewQp33, Qp34, Qp35, Qp36, Qp37,
+ Qp38, Qp39, Qp40, Qp41, Qp42, Qp43,
+ Qp44, Qp45, Qp46, Qp47, Qp48});
+?OUT_SPECIFIC_Qp48(34,
+ Qp34, NewQp34,
+ {Qp33, NewQp34, Qp35, Qp36, Qp37,
+ Qp38, Qp39, Qp40, Qp41, Qp42, Qp43,
+ Qp44, Qp45, Qp46, Qp47, Qp48});
+?OUT_SPECIFIC_Qp48(35,
+ Qp35, NewQp35,
+ {Qp33, Qp34, NewQp35, Qp36, Qp37,
+ Qp38, Qp39, Qp40, Qp41, Qp42, Qp43,
+ Qp44, Qp45, Qp46, Qp47, Qp48});
+?OUT_SPECIFIC_Qp48(36,
+ Qp36, NewQp36,
+ {Qp33, Qp34, Qp35, NewQp36, Qp37,
+ Qp38, Qp39, Qp40, Qp41, Qp42, Qp43,
+ Qp44, Qp45, Qp46, Qp47, Qp48});
+?OUT_SPECIFIC_Qp48(37,
+ Qp37, NewQp37,
+ {Qp33, Qp34, Qp35, Qp36, NewQp37,
+ Qp38, Qp39, Qp40, Qp41, Qp42, Qp43,
+ Qp44, Qp45, Qp46, Qp47, Qp48});
+?OUT_SPECIFIC_Qp48(38,
+ Qp38, NewQp38,
+ {Qp33, Qp34, Qp35, Qp36, Qp37,
+ NewQp38, Qp39, Qp40, Qp41, Qp42, Qp43,
+ Qp44, Qp45, Qp46, Qp47, Qp48});
+?OUT_SPECIFIC_Qp48(39,
+ Qp39, NewQp39,
+ {Qp33, Qp34, Qp35, Qp36, Qp37,
+ Qp38, NewQp39, Qp40, Qp41, Qp42, Qp43,
+ Qp44, Qp45, Qp46, Qp47, Qp48});
+?OUT_SPECIFIC_Qp48(40,
+ Qp40, NewQp40,
+ {Qp33, Qp34, Qp35, Qp36, Qp37,
+ Qp38, Qp39, NewQp40, Qp41, Qp42, Qp43,
+ Qp44, Qp45, Qp46, Qp47, Qp48});
+?OUT_SPECIFIC_Qp48(41,
+ Qp41, NewQp41,
+ {Qp33, Qp34, Qp35, Qp36, Qp37,
+ Qp38, Qp39, Qp40, NewQp41, Qp42, Qp43,
+ Qp44, Qp45, Qp46, Qp47, Qp48});
+?OUT_SPECIFIC_Qp48(42,
+ Qp42, NewQp42,
+ {Qp33, Qp34, Qp35, Qp36, Qp37,
+ Qp38, Qp39, Qp40, Qp41, NewQp42, Qp43,
+ Qp44, Qp45, Qp46, Qp47, Qp48});
+?OUT_SPECIFIC_Qp48(43,
+ Qp43, NewQp43,
+ {Qp33, Qp34, Qp35, Qp36, Qp37,
+ Qp38, Qp39, Qp40, Qp41, Qp42, NewQp43,
+ Qp44, Qp45, Qp46, Qp47, Qp48});
+?OUT_SPECIFIC_Qp48(44,
+ Qp44, NewQp44,
+ {Qp33, Qp34, Qp35, Qp36, Qp37,
+ Qp38, Qp39, Qp40, Qp41, Qp42, Qp43,
+ NewQp44, Qp45, Qp46, Qp47, Qp48});
+?OUT_SPECIFIC_Qp48(45,
+ Qp45, NewQp45,
+ {Qp33, Qp34, Qp35, Qp36, Qp37,
+ Qp38, Qp39, Qp40, Qp41, Qp42, Qp43,
+ Qp44, NewQp45, Qp46, Qp47, Qp48});
+?OUT_SPECIFIC_Qp48(46,
+ Qp46, NewQp46,
+ {Qp33, Qp34, Qp35, Qp36, Qp37,
+ Qp38, Qp39, Qp40, Qp41, Qp42, Qp43,
+ Qp44, Qp45, NewQp46, Qp47, Qp48});
+?OUT_SPECIFIC_Qp48(47,
+ Qp47, NewQp47,
+ {Qp33, Qp34, Qp35, Qp36, Qp37,
+ Qp38, Qp39, Qp40, Qp41, Qp42, Qp43,
+ Qp44, Qp45, Qp46, NewQp47, Qp48});
+?OUT_SPECIFIC_Qp48(48,
+ Qp48, NewQp48,
+ {Qp33, Qp34, Qp35, Qp36, Qp37,
+ Qp38, Qp39, Qp40, Qp41, Qp42, Qp43,
+ Qp44, Qp45, Qp46, Qp47, NewQp48});
+?OUT_SPECIFIC_Qp64(49,
+ Qp49, NewQp49,
+ {NewQp49, Qp50, Qp51, Qp52, Qp53,
+ Qp54, Qp55, Qp56, Qp57, Qp58, Qp59,
+ Qp60, Qp61, Qp62, Qp63, Qp64});
+?OUT_SPECIFIC_Qp64(50,
+ Qp50, NewQp50,
+ {Qp49, NewQp50, Qp51, Qp52, Qp53,
+ Qp54, Qp55, Qp56, Qp57, Qp58, Qp59,
+ Qp60, Qp61, Qp62, Qp63, Qp64});
+?OUT_SPECIFIC_Qp64(51,
+ Qp51, NewQp51,
+ {Qp49, Qp50, NewQp51, Qp52, Qp53,
+ Qp54, Qp55, Qp56, Qp57, Qp58, Qp59,
+ Qp60, Qp61, Qp62, Qp63, Qp64});
+?OUT_SPECIFIC_Qp64(52,
+ Qp52, NewQp52,
+ {Qp49, Qp50, Qp51, NewQp52, Qp53,
+ Qp54, Qp55, Qp56, Qp57, Qp58, Qp59,
+ Qp60, Qp61, Qp62, Qp63, Qp64});
+?OUT_SPECIFIC_Qp64(53,
+ Qp53, NewQp53,
+ {Qp49, Qp50, Qp51, Qp52, NewQp53,
+ Qp54, Qp55, Qp56, Qp57, Qp58, Qp59,
+ Qp60, Qp61, Qp62, Qp63, Qp64});
+?OUT_SPECIFIC_Qp64(54,
+ Qp54, NewQp54,
+ {Qp49, Qp50, Qp51, Qp52, Qp53,
+ NewQp54, Qp55, Qp56, Qp57, Qp58, Qp59,
+ Qp60, Qp61, Qp62, Qp63, Qp64});
+?OUT_SPECIFIC_Qp64(55,
+ Qp55, NewQp55,
+ {Qp49, Qp50, Qp51, Qp52, Qp53,
+ Qp54, NewQp55, Qp56, Qp57, Qp58, Qp59,
+ Qp60, Qp61, Qp62, Qp63, Qp64});
+?OUT_SPECIFIC_Qp64(56,
+ Qp56, NewQp56,
+ {Qp49, Qp50, Qp51, Qp52, Qp53,
+ Qp54, Qp55, NewQp56, Qp57, Qp58, Qp59,
+ Qp60, Qp61, Qp62, Qp63, Qp64});
+?OUT_SPECIFIC_Qp64(57,
+ Qp57, NewQp57,
+ {Qp49, Qp50, Qp51, Qp52, Qp53,
+ Qp54, Qp55, Qp56, NewQp57, Qp58, Qp59,
+ Qp60, Qp61, Qp62, Qp63, Qp64});
+?OUT_SPECIFIC_Qp64(58,
+ Qp58, NewQp58,
+ {Qp49, Qp50, Qp51, Qp52, Qp53,
+ Qp54, Qp55, Qp56, Qp57, NewQp58, Qp59,
+ Qp60, Qp61, Qp62, Qp63, Qp64});
+?OUT_SPECIFIC_Qp64(59,
+ Qp59, NewQp59,
+ {Qp49, Qp50, Qp51, Qp52, Qp53,
+ Qp54, Qp55, Qp56, Qp57, Qp58, NewQp59,
+ Qp60, Qp61, Qp62, Qp63, Qp64});
+?OUT_SPECIFIC_Qp64(60,
+ Qp60, NewQp60,
+ {Qp49, Qp50, Qp51, Qp52, Qp53,
+ Qp54, Qp55, Qp56, Qp57, Qp58, Qp59,
+ NewQp60, Qp61, Qp62, Qp63, Qp64});
+?OUT_SPECIFIC_Qp64(61,
+ Qp61, NewQp61,
+ {Qp49, Qp50, Qp51, Qp52, Qp53,
+ Qp54, Qp55, Qp56, Qp57, Qp58, Qp59,
+ Qp60, NewQp61, Qp62, Qp63, Qp64});
+?OUT_SPECIFIC_Qp64(62,
+ Qp62, NewQp62,
+ {Qp49, Qp50, Qp51, Qp52, Qp53,
+ Qp54, Qp55, Qp56, Qp57, Qp58, Qp59,
+ Qp60, Qp61, NewQp62, Qp63, Qp64});
+?OUT_SPECIFIC_Qp64(63,
+ Qp63, NewQp63,
+ {Qp49, Qp50, Qp51, Qp52, Qp53,
+ Qp54, Qp55, Qp56, Qp57, Qp58, Qp59,
+ Qp60, Qp61, Qp62, NewQp63, Qp64});
+?OUT_SPECIFIC_Qp64(64,
+ Qp64, NewQp64,
+ {Qp49, Qp50, Qp51, Qp52, Qp53,
+ Qp54, Qp55, Qp56, Qp57, Qp58, Qp59,
+ Qp60, Qp61, Qp62, Qp63, NewQp64});
+?OUT_SPECIFIC_Qp80(65,
+ Qp65, NewQp65,
+ {NewQp65, Qp66, Qp67, Qp68, Qp69,
+ Qp70, Qp71, Qp72, Qp73, Qp74, Qp75,
+ Qp76, Qp77, Qp78, Qp79, Qp80});
+?OUT_SPECIFIC_Qp80(66,
+ Qp66, NewQp66,
+ {Qp65, NewQp66, Qp67, Qp68, Qp69,
+ Qp70, Qp71, Qp72, Qp73, Qp74, Qp75,
+ Qp76, Qp77, Qp78, Qp79, Qp80});
+?OUT_SPECIFIC_Qp80(67,
+ Qp67, NewQp67,
+ {Qp65, Qp66, NewQp67, Qp68, Qp69,
+ Qp70, Qp71, Qp72, Qp73, Qp74, Qp75,
+ Qp76, Qp77, Qp78, Qp79, Qp80});
+?OUT_SPECIFIC_Qp80(68,
+ Qp68, NewQp68,
+ {Qp65, Qp66, Qp67, NewQp68, Qp69,
+ Qp70, Qp71, Qp72, Qp73, Qp74, Qp75,
+ Qp76, Qp77, Qp78, Qp79, Qp80});
+?OUT_SPECIFIC_Qp80(69,
+ Qp69, NewQp69,
+ {Qp65, Qp66, Qp67, Qp68, NewQp69,
+ Qp70, Qp71, Qp72, Qp73, Qp74, Qp75,
+ Qp76, Qp77, Qp78, Qp79, Qp80});
+?OUT_SPECIFIC_Qp80(70,
+ Qp70, NewQp70,
+ {Qp65, Qp66, Qp67, Qp68, Qp69,
+ NewQp70, Qp71, Qp72, Qp73, Qp74, Qp75,
+ Qp76, Qp77, Qp78, Qp79, Qp80});
+?OUT_SPECIFIC_Qp80(71,
+ Qp71, NewQp71,
+ {Qp65, Qp66, Qp67, Qp68, Qp69,
+ Qp70, NewQp71, Qp72, Qp73, Qp74, Qp75,
+ Qp76, Qp77, Qp78, Qp79, Qp80});
+?OUT_SPECIFIC_Qp80(72,
+ Qp72, NewQp72,
+ {Qp65, Qp66, Qp67, Qp68, Qp69,
+ Qp70, Qp71, NewQp72, Qp73, Qp74, Qp75,
+ Qp76, Qp77, Qp78, Qp79, Qp80});
+?OUT_SPECIFIC_Qp80(73,
+ Qp73, NewQp73,
+ {Qp65, Qp66, Qp67, Qp68, Qp69,
+ Qp70, Qp71, Qp72, NewQp73, Qp74, Qp75,
+ Qp76, Qp77, Qp78, Qp79, Qp80});
+?OUT_SPECIFIC_Qp80(74,
+ Qp74, NewQp74,
+ {Qp65, Qp66, Qp67, Qp68, Qp69,
+ Qp70, Qp71, Qp72, Qp73, NewQp74, Qp75,
+ Qp76, Qp77, Qp78, Qp79, Qp80});
+?OUT_SPECIFIC_Qp80(75,
+ Qp75, NewQp75,
+ {Qp65, Qp66, Qp67, Qp68, Qp69,
+ Qp70, Qp71, Qp72, Qp73, Qp74, NewQp75,
+ Qp76, Qp77, Qp78, Qp79, Qp80});
+?OUT_SPECIFIC_Qp80(76,
+ Qp76, NewQp76,
+ {Qp65, Qp66, Qp67, Qp68, Qp69,
+ Qp70, Qp71, Qp72, Qp73, Qp74, Qp75,
+ NewQp76, Qp77, Qp78, Qp79, Qp80});
+?OUT_SPECIFIC_Qp80(77,
+ Qp77, NewQp77,
+ {Qp65, Qp66, Qp67, Qp68, Qp69,
+ Qp70, Qp71, Qp72, Qp73, Qp74, Qp75,
+ Qp76, NewQp77, Qp78, Qp79, Qp80});
+?OUT_SPECIFIC_Qp80(78,
+ Qp78, NewQp78,
+ {Qp65, Qp66, Qp67, Qp68, Qp69,
+ Qp70, Qp71, Qp72, Qp73, Qp74, Qp75,
+ Qp76, Qp77, NewQp78, Qp79, Qp80});
+?OUT_SPECIFIC_Qp80(79,
+ Qp79, NewQp79,
+ {Qp65, Qp66, Qp67, Qp68, Qp69,
+ Qp70, Qp71, Qp72, Qp73, Qp74, Qp75,
+ Qp76, Qp77, Qp78, NewQp79, Qp80});
+?OUT_SPECIFIC_Qp80(80,
+ Qp80, NewQp80,
+ {Qp65, Qp66, Qp67, Qp68, Qp69,
+ Qp70, Qp71, Qp72, Qp73, Qp74, Qp75,
+ Qp76, Qp77, Qp78, Qp79, NewQp80});
+?OUT_SPECIFIC_Qp96(81,
+ Qp81, NewQp81,
+ {NewQp81, Qp82, Qp83, Qp84, Qp85,
+ Qp86, Qp87, Qp88, Qp89, Qp90, Qp91,
+ Qp92, Qp93, Qp94, Qp95, Qp96});
+?OUT_SPECIFIC_Qp96(82,
+ Qp82, NewQp82,
+ {Qp81, NewQp82, Qp83, Qp84, Qp85,
+ Qp86, Qp87, Qp88, Qp89, Qp90, Qp91,
+ Qp92, Qp93, Qp94, Qp95, Qp96});
+?OUT_SPECIFIC_Qp96(83,
+ Qp83, NewQp83,
+ {Qp81, Qp82, NewQp83, Qp84, Qp85,
+ Qp86, Qp87, Qp88, Qp89, Qp90, Qp91,
+ Qp92, Qp93, Qp94, Qp95, Qp96});
+?OUT_SPECIFIC_Qp96(84,
+ Qp84, NewQp84,
+ {Qp81, Qp82, Qp83, NewQp84, Qp85,
+ Qp86, Qp87, Qp88, Qp89, Qp90, Qp91,
+ Qp92, Qp93, Qp94, Qp95, Qp96});
+?OUT_SPECIFIC_Qp96(85,
+ Qp85, NewQp85,
+ {Qp81, Qp82, Qp83, Qp84, NewQp85,
+ Qp86, Qp87, Qp88, Qp89, Qp90, Qp91,
+ Qp92, Qp93, Qp94, Qp95, Qp96});
+?OUT_SPECIFIC_Qp96(86,
+ Qp86, NewQp86,
+ {Qp81, Qp82, Qp83, Qp84, Qp85,
+ NewQp86, Qp87, Qp88, Qp89, Qp90, Qp91,
+ Qp92, Qp93, Qp94, Qp95, Qp96});
+?OUT_SPECIFIC_Qp96(87,
+ Qp87, NewQp87,
+ {Qp81, Qp82, Qp83, Qp84, Qp85,
+ Qp86, NewQp87, Qp88, Qp89, Qp90, Qp91,
+ Qp92, Qp93, Qp94, Qp95, Qp96});
+?OUT_SPECIFIC_Qp96(88,
+ Qp88, NewQp88,
+ {Qp81, Qp82, Qp83, Qp84, Qp85,
+ Qp86, Qp87, NewQp88, Qp89, Qp90, Qp91,
+ Qp92, Qp93, Qp94, Qp95, Qp96});
+?OUT_SPECIFIC_Qp96(89,
+ Qp89, NewQp89,
+ {Qp81, Qp82, Qp83, Qp84, Qp85,
+ Qp86, Qp87, Qp88, NewQp89, Qp90, Qp91,
+ Qp92, Qp93, Qp94, Qp95, Qp96});
+?OUT_SPECIFIC_Qp96(90,
+ Qp90, NewQp90,
+ {Qp81, Qp82, Qp83, Qp84, Qp85,
+ Qp86, Qp87, Qp88, Qp89, NewQp90, Qp91,
+ Qp92, Qp93, Qp94, Qp95, Qp96});
+?OUT_SPECIFIC_Qp96(91,
+ Qp91, NewQp91,
+ {Qp81, Qp82, Qp83, Qp84, Qp85,
+ Qp86, Qp87, Qp88, Qp89, Qp90, NewQp91,
+ Qp92, Qp93, Qp94, Qp95, Qp96});
+?OUT_SPECIFIC_Qp96(92,
+ Qp92, NewQp92,
+ {Qp81, Qp82, Qp83, Qp84, Qp85,
+ Qp86, Qp87, Qp88, Qp89, Qp90, Qp91,
+ NewQp92, Qp93, Qp94, Qp95, Qp96});
+?OUT_SPECIFIC_Qp96(93,
+ Qp93, NewQp93,
+ {Qp81, Qp82, Qp83, Qp84, Qp85,
+ Qp86, Qp87, Qp88, Qp89, Qp90, Qp91,
+ Qp92, NewQp93, Qp94, Qp95, Qp96});
+?OUT_SPECIFIC_Qp96(94,
+ Qp94, NewQp94,
+ {Qp81, Qp82, Qp83, Qp84, Qp85,
+ Qp86, Qp87, Qp88, Qp89, Qp90, Qp91,
+ Qp92, Qp93, NewQp94, Qp95, Qp96});
+?OUT_SPECIFIC_Qp96(95,
+ Qp95, NewQp95,
+ {Qp81, Qp82, Qp83, Qp84, Qp85,
+ Qp86, Qp87, Qp88, Qp89, Qp90, Qp91,
+ Qp92, Qp93, Qp94, NewQp95, Qp96});
+?OUT_SPECIFIC_Qp96(96,
+ Qp96, NewQp96,
+ {Qp81, Qp82, Qp83, Qp84, Qp85,
+ Qp86, Qp87, Qp88, Qp89, Qp90, Qp91,
+ Qp92, Qp93, Qp94, Qp95, NewQp96});
+?OUT_SPECIFIC_Qp112(97,
+ Qp97, NewQp97,
+ {NewQp97, Qp98, Qp99, Qp100, Qp101,
+ Qp102, Qp103, Qp104, Qp105, Qp106, Qp107,
+ Qp108, Qp109, Qp110, Qp111, Qp112});
+?OUT_SPECIFIC_Qp112(98,
+ Qp98, NewQp98,
+ {Qp97, NewQp98, Qp99, Qp100, Qp101,
+ Qp102, Qp103, Qp104, Qp105, Qp106, Qp107,
+ Qp108, Qp109, Qp110, Qp111, Qp112});
+?OUT_SPECIFIC_Qp112(99,
+ Qp99, NewQp99,
+ {Qp97, Qp98, NewQp99, Qp100, Qp101,
+ Qp102, Qp103, Qp104, Qp105, Qp106, Qp107,
+ Qp108, Qp109, Qp110, Qp111, Qp112});
+?OUT_SPECIFIC_Qp112(100,
+ Qp100, NewQp100,
+ {Qp97, Qp98, Qp99, NewQp100, Qp101,
+ Qp102, Qp103, Qp104, Qp105, Qp106, Qp107,
+ Qp108, Qp109, Qp110, Qp111, Qp112});
+?OUT_SPECIFIC_Qp112(101,
+ Qp101, NewQp101,
+ {Qp97, Qp98, Qp99, Qp100, NewQp101,
+ Qp102, Qp103, Qp104, Qp105, Qp106, Qp107,
+ Qp108, Qp109, Qp110, Qp111, Qp112});
+?OUT_SPECIFIC_Qp112(102,
+ Qp102, NewQp102,
+ {Qp97, Qp98, Qp99, Qp100, Qp101,
+ NewQp102, Qp103, Qp104, Qp105, Qp106, Qp107,
+ Qp108, Qp109, Qp110, Qp111, Qp112});
+?OUT_SPECIFIC_Qp112(103,
+ Qp103, NewQp103,
+ {Qp97, Qp98, Qp99, Qp100, Qp101,
+ Qp102, NewQp103, Qp104, Qp105, Qp106, Qp107,
+ Qp108, Qp109, Qp110, Qp111, Qp112});
+?OUT_SPECIFIC_Qp112(104,
+ Qp104, NewQp104,
+ {Qp97, Qp98, Qp99, Qp100, Qp101,
+ Qp102, Qp103, NewQp104, Qp105, Qp106, Qp107,
+ Qp108, Qp109, Qp110, Qp111, Qp112});
+?OUT_SPECIFIC_Qp112(105,
+ Qp105, NewQp105,
+ {Qp97, Qp98, Qp99, Qp100, Qp101,
+ Qp102, Qp103, Qp104, NewQp105, Qp106, Qp107,
+ Qp108, Qp109, Qp110, Qp111, Qp112});
+?OUT_SPECIFIC_Qp112(106,
+ Qp106, NewQp106,
+ {Qp97, Qp98, Qp99, Qp100, Qp101,
+ Qp102, Qp103, Qp104, Qp105, NewQp106, Qp107,
+ Qp108, Qp109, Qp110, Qp111, Qp112});
+?OUT_SPECIFIC_Qp112(107,
+ Qp107, NewQp107,
+ {Qp97, Qp98, Qp99, Qp100, Qp101,
+ Qp102, Qp103, Qp104, Qp105, Qp106, NewQp107,
+ Qp108, Qp109, Qp110, Qp111, Qp112});
+?OUT_SPECIFIC_Qp112(108,
+ Qp108, NewQp108,
+ {Qp97, Qp98, Qp99, Qp100, Qp101,
+ Qp102, Qp103, Qp104, Qp105, Qp106, Qp107,
+ NewQp108, Qp109, Qp110, Qp111, Qp112});
+?OUT_SPECIFIC_Qp112(109,
+ Qp109, NewQp109,
+ {Qp97, Qp98, Qp99, Qp100, Qp101,
+ Qp102, Qp103, Qp104, Qp105, Qp106, Qp107,
+ Qp108, NewQp109, Qp110, Qp111, Qp112});
+?OUT_SPECIFIC_Qp112(110,
+ Qp110, NewQp110,
+ {Qp97, Qp98, Qp99, Qp100, Qp101,
+ Qp102, Qp103, Qp104, Qp105, Qp106, Qp107,
+ Qp108, Qp109, NewQp110, Qp111, Qp112});
+?OUT_SPECIFIC_Qp112(111,
+ Qp111, NewQp111,
+ {Qp97, Qp98, Qp99, Qp100, Qp101,
+ Qp102, Qp103, Qp104, Qp105, Qp106, Qp107,
+ Qp108, Qp109, Qp110, NewQp111, Qp112});
+?OUT_SPECIFIC_Qp112(112,
+ Qp112, NewQp112,
+ {Qp97, Qp98, Qp99, Qp100, Qp101,
+ Qp102, Qp103, Qp104, Qp105, Qp106, Qp107,
+ Qp108, Qp109, Qp110, Qp111, NewQp112});
+?OUT_SPECIFIC_Qp128(113,
+ Qp113, NewQp113,
+ {NewQp113, Qp114, Qp115, Qp116, Qp117,
+ Qp118, Qp119, Qp120, Qp121, Qp122, Qp123,
+ Qp124, Qp125, Qp126, Qp127, Qp128});
+?OUT_SPECIFIC_Qp128(114,
+ Qp114, NewQp114,
+ {Qp113, NewQp114, Qp115, Qp116, Qp117,
+ Qp118, Qp119, Qp120, Qp121, Qp122, Qp123,
+ Qp124, Qp125, Qp126, Qp127, Qp128});
+?OUT_SPECIFIC_Qp128(115,
+ Qp115, NewQp115,
+ {Qp113, Qp114, NewQp115, Qp116, Qp117,
+ Qp118, Qp119, Qp120, Qp121, Qp122, Qp123,
+ Qp124, Qp125, Qp126, Qp127, Qp128});
+?OUT_SPECIFIC_Qp128(116,
+ Qp116, NewQp116,
+ {Qp113, Qp114, Qp115, NewQp116, Qp117,
+ Qp118, Qp119, Qp120, Qp121, Qp122, Qp123,
+ Qp124, Qp125, Qp126, Qp127, Qp128});
+?OUT_SPECIFIC_Qp128(117,
+ Qp117, NewQp117,
+ {Qp113, Qp114, Qp115, Qp116, NewQp117,
+ Qp118, Qp119, Qp120, Qp121, Qp122, Qp123,
+ Qp124, Qp125, Qp126, Qp127, Qp128});
+?OUT_SPECIFIC_Qp128(118,
+ Qp118, NewQp118,
+ {Qp113, Qp114, Qp115, Qp116, Qp117,
+ NewQp118, Qp119, Qp120, Qp121, Qp122, Qp123,
+ Qp124, Qp125, Qp126, Qp127, Qp128});
+?OUT_SPECIFIC_Qp128(119,
+ Qp119, NewQp119,
+ {Qp113, Qp114, Qp115, Qp116, Qp117,
+ Qp118, NewQp119, Qp120, Qp121, Qp122, Qp123,
+ Qp124, Qp125, Qp126, Qp127, Qp128});
+?OUT_SPECIFIC_Qp128(120,
+ Qp120, NewQp120,
+ {Qp113, Qp114, Qp115, Qp116, Qp117,
+ Qp118, Qp119, NewQp120, Qp121, Qp122, Qp123,
+ Qp124, Qp125, Qp126, Qp127, Qp128});
+?OUT_SPECIFIC_Qp128(121,
+ Qp121, NewQp121,
+ {Qp113, Qp114, Qp115, Qp116, Qp117,
+ Qp118, Qp119, Qp120, NewQp121, Qp122, Qp123,
+ Qp124, Qp125, Qp126, Qp127, Qp128});
+?OUT_SPECIFIC_Qp128(122,
+ Qp122, NewQp122,
+ {Qp113, Qp114, Qp115, Qp116, Qp117,
+ Qp118, Qp119, Qp120, Qp121, NewQp122, Qp123,
+ Qp124, Qp125, Qp126, Qp127, Qp128});
+?OUT_SPECIFIC_Qp128(123,
+ Qp123, NewQp123,
+ {Qp113, Qp114, Qp115, Qp116, Qp117,
+ Qp118, Qp119, Qp120, Qp121, Qp122, NewQp123,
+ Qp124, Qp125, Qp126, Qp127, Qp128});
+?OUT_SPECIFIC_Qp128(124,
+ Qp124, NewQp124,
+ {Qp113, Qp114, Qp115, Qp116, Qp117,
+ Qp118, Qp119, Qp120, Qp121, Qp122, Qp123,
+ NewQp124, Qp125, Qp126, Qp127, Qp128});
+?OUT_SPECIFIC_Qp128(125,
+ Qp125, NewQp125,
+ {Qp113, Qp114, Qp115, Qp116, Qp117,
+ Qp118, Qp119, Qp120, Qp121, Qp122, Qp123,
+ Qp124, NewQp125, Qp126, Qp127, Qp128});
+?OUT_SPECIFIC_Qp128(126,
+ Qp126, NewQp126,
+ {Qp113, Qp114, Qp115, Qp116, Qp117,
+ Qp118, Qp119, Qp120, Qp121, Qp122, Qp123,
+ Qp124, Qp125, NewQp126, Qp127, Qp128});
+?OUT_SPECIFIC_Qp128(127,
+ Qp127, NewQp127,
+ {Qp113, Qp114, Qp115, Qp116, Qp117,
+ Qp118, Qp119, Qp120, Qp121, Qp122, Qp123,
+ Qp124, Qp125, Qp126, NewQp127, Qp128});
+?OUT_SPECIFIC_Qp128(128,
+ Qp128, NewQp128,
+ {Qp113, Qp114, Qp115, Qp116, Qp117,
+ Qp118, Qp119, Qp120, Qp121, Qp122, Qp123,
+ Qp124, Qp125, Qp126, Qp127, NewQp128}).
+
+%% @hidden
+-define(REMOVE_UNIQ_P_Qn128(P, V1, V2, V3),
+remove_unique_p(P, F,
+ {Pc,
+ Size,
+ {Qn128, Qn127, Qn126, Qn125, Qn124, Qn123, Qn122, Qn121,
+ Qn120, Qn119, Qn118, Qn117, Qn116, Qn115, Qn114, Qn113},
+ Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}) ->
+ {Value, V2} = queue_remove_unique(F, V1),
+ NewSize = if Value =:= true -> Size - 1; Value =:= false -> Size end,
+ {Value,
+ {if NewSize == 0 -> empty; true -> Pc end,
+ NewSize,
+ V3,
+ Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}}).
+-define(REMOVE_UNIQ_P_Qn112(P, V1, V2, V3),
+remove_unique_p(P, F,
+ {Pc,
+ Size,
+ Qn128,
+ {Qn112, Qn111, Qn110, Qn109, Qn108, Qn107, Qn106, Qn105,
+ Qn104, Qn103, Qn102, Qn101, Qn100, Qn99, Qn98, Qn97},
+ Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}) ->
+ {Value, V2} = queue_remove_unique(F, V1),
+ NewSize = if Value =:= true -> Size - 1; Value =:= false -> Size end,
+ {Value,
+ {if NewSize == 0 -> empty; true -> Pc end,
+ NewSize,
+ Qn128,
+ V3,
+ Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}}).
+-define(REMOVE_UNIQ_P_Qn96(P, V1, V2, V3),
+remove_unique_p(P, F,
+ {Pc,
+ Size,
+ Qn128, Qn112,
+ {Qn96, Qn95, Qn94, Qn93, Qn92, Qn91, Qn90, Qn89,
+ Qn88, Qn87, Qn86, Qn85, Qn84, Qn83, Qn82, Qn81},
+ Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}) ->
+ {Value, V2} = queue_remove_unique(F, V1),
+ NewSize = if Value =:= true -> Size - 1; Value =:= false -> Size end,
+ {Value,
+ {if NewSize == 0 -> empty; true -> Pc end,
+ NewSize,
+ Qn128, Qn112,
+ V3,
+ Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}}).
+-define(REMOVE_UNIQ_P_Qn80(P, V1, V2, V3),
+remove_unique_p(P, F,
+ {Pc,
+ Size,
+ Qn128, Qn112, Qn96,
+ {Qn80, Qn79, Qn78, Qn77, Qn76, Qn75, Qn74, Qn73,
+ Qn72, Qn71, Qn70, Qn69, Qn68, Qn67, Qn66, Qn65},
+ Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}) ->
+ {Value, V2} = queue_remove_unique(F, V1),
+ NewSize = if Value =:= true -> Size - 1; Value =:= false -> Size end,
+ {Value,
+ {if NewSize == 0 -> empty; true -> Pc end,
+ NewSize,
+ Qn128, Qn112, Qn96,
+ V3,
+ Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}}).
+-define(REMOVE_UNIQ_P_Qn64(P, V1, V2, V3),
+remove_unique_p(P, F,
+ {Pc,
+ Size,
+ Qn128, Qn112, Qn96, Qn80,
+ {Qn64, Qn63, Qn62, Qn61, Qn60, Qn59, Qn58, Qn57,
+ Qn56, Qn55, Qn54, Qn53, Qn52, Qn51, Qn50, Qn49},
+ Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}) ->
+ {Value, V2} = queue_remove_unique(F, V1),
+ NewSize = if Value =:= true -> Size - 1; Value =:= false -> Size end,
+ {Value,
+ {if NewSize == 0 -> empty; true -> Pc end,
+ NewSize,
+ Qn128, Qn112, Qn96, Qn80,
+ V3,
+ Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}}).
+-define(REMOVE_UNIQ_P_Qn48(P, V1, V2, V3),
+remove_unique_p(P, F,
+ {Pc,
+ Size,
+ Qn128, Qn112, Qn96, Qn80, Qn64,
+ {Qn48, Qn47, Qn46, Qn45, Qn44, Qn43, Qn42, Qn41,
+ Qn40, Qn39, Qn38, Qn37, Qn36, Qn35, Qn34, Qn33},
+ Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}) ->
+ {Value, V2} = queue_remove_unique(F, V1),
+ NewSize = if Value =:= true -> Size - 1; Value =:= false -> Size end,
+ {Value,
+ {if NewSize == 0 -> empty; true -> Pc end,
+ NewSize,
+ Qn128, Qn112, Qn96, Qn80, Qn64,
+ V3,
+ Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}}).
+-define(REMOVE_UNIQ_P_Qn32(P, V1, V2, V3),
+remove_unique_p(P, F,
+ {Pc,
+ Size,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48,
+ {Qn32, Qn31, Qn30, Qn29, Qn28, Qn27, Qn26, Qn25,
+ Qn24, Qn23, Qn22, Qn21, Qn20, Qn19, Qn18, Qn17},
+ Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}) ->
+ {Value, V2} = queue_remove_unique(F, V1),
+ NewSize = if Value =:= true -> Size - 1; Value =:= false -> Size end,
+ {Value,
+ {if NewSize == 0 -> empty; true -> Pc end,
+ NewSize,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48,
+ V3,
+ Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}}).
+-define(REMOVE_UNIQ_P_Qn16(P, V1, V2, V3),
+remove_unique_p(P, F,
+ {Pc,
+ Size,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32,
+ {Qn16, Qn15, Qn14, Qn13, Qn12, Qn11, Qn10, Qn9,
+ Qn8, Qn7, Qn6, Qn5, Qn4, Qn3, Qn2, Qn1},
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}) ->
+ {Value, V2} = queue_remove_unique(F, V1),
+ NewSize = if Value =:= true -> Size - 1; Value =:= false -> Size end,
+ {Value,
+ {if NewSize == 0 -> empty; true -> Pc end,
+ NewSize,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32,
+ V3,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}}).
+-define(REMOVE_UNIQ_P_Qp16(P, V1, V2, V3),
+remove_unique_p(P, F,
+ {Pc,
+ Size,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ {Qp1, Qp2, Qp3, Qp4, Qp5, Qp6, Qp7, Qp8,
+ Qp9, Qp10, Qp11, Qp12, Qp13, Qp14, Qp15, Qp16},
+ Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}) ->
+ {Value, V2} = queue_remove_unique(F, V1),
+ NewSize = if Value =:= true -> Size - 1; Value =:= false -> Size end,
+ {Value,
+ {if NewSize == 0 -> empty; true -> Pc end,
+ NewSize,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ V3,
+ Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}}).
+-define(REMOVE_UNIQ_P_Qp32(P, V1, V2, V3),
+remove_unique_p(P, F,
+ {Pc,
+ Size,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16,
+ {Qp17, Qp18, Qp19, Qp20, Qp21, Qp22, Qp23, Qp24,
+ Qp25, Qp26, Qp27, Qp28, Qp29, Qp30, Qp31, Qp32},
+ Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}) ->
+ {Value, V2} = queue_remove_unique(F, V1),
+ NewSize = if Value =:= true -> Size - 1; Value =:= false -> Size end,
+ {Value,
+ {if NewSize == 0 -> empty; true -> Pc end,
+ NewSize,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16,
+ V3,
+ Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}}).
+-define(REMOVE_UNIQ_P_Qp48(P, V1, V2, V3),
+remove_unique_p(P, F,
+ {Pc,
+ Size,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32,
+ {Qp33, Qp34, Qp35, Qp36, Qp37, Qp38, Qp39, Qp40,
+ Qp41, Qp42, Qp43, Qp44, Qp45, Qp46, Qp47, Qp48},
+ Qp64, Qp80, Qp96, Qp112, Qp128}) ->
+ {Value, V2} = queue_remove_unique(F, V1),
+ NewSize = if Value =:= true -> Size - 1; Value =:= false -> Size end,
+ {Value,
+ {if NewSize == 0 -> empty; true -> Pc end,
+ NewSize,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32,
+ V3,
+ Qp64, Qp80, Qp96, Qp112, Qp128}}).
+-define(REMOVE_UNIQ_P_Qp64(P, V1, V2, V3),
+remove_unique_p(P, F,
+ {Pc,
+ Size,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48,
+ {Qp49, Qp50, Qp51, Qp52, Qp53, Qp54, Qp55, Qp56,
+ Qp57, Qp58, Qp59, Qp60, Qp61, Qp62, Qp63, Qp64},
+ Qp80, Qp96, Qp112, Qp128}) ->
+ {Value, V2} = queue_remove_unique(F, V1),
+ NewSize = if Value =:= true -> Size - 1; Value =:= false -> Size end,
+ {Value,
+ {if NewSize == 0 -> empty; true -> Pc end,
+ NewSize,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48,
+ V3,
+ Qp80, Qp96, Qp112, Qp128}}).
+-define(REMOVE_UNIQ_P_Qp80(P, V1, V2, V3),
+remove_unique_p(P, F,
+ {Pc,
+ Size,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64,
+ {Qp65, Qp66, Qp67, Qp68, Qp69, Qp70, Qp71, Qp72,
+ Qp73, Qp74, Qp75, Qp76, Qp77, Qp78, Qp79, Qp80},
+ Qp96, Qp112, Qp128}) ->
+ {Value, V2} = queue_remove_unique(F, V1),
+ NewSize = if Value =:= true -> Size - 1; Value =:= false -> Size end,
+ {Value,
+ {if NewSize == 0 -> empty; true -> Pc end,
+ NewSize,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64,
+ V3,
+ Qp96, Qp112, Qp128}}).
+-define(REMOVE_UNIQ_P_Qp96(P, V1, V2, V3),
+remove_unique_p(P, F,
+ {Pc,
+ Size,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80,
+ {Qp81, Qp82, Qp83, Qp84, Qp85, Qp86, Qp87, Qp88,
+ Qp89, Qp90, Qp91, Qp92, Qp93, Qp94, Qp95, Qp96},
+ Qp112, Qp128}) ->
+ {Value, V2} = queue_remove_unique(F, V1),
+ NewSize = if Value =:= true -> Size - 1; Value =:= false -> Size end,
+ {Value,
+ {if NewSize == 0 -> empty; true -> Pc end,
+ NewSize,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80,
+ V3,
+ Qp112, Qp128}}).
+-define(REMOVE_UNIQ_P_Qp112(P, V1, V2, V3),
+remove_unique_p(P, F,
+ {Pc,
+ Size,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96,
+ {Qp97, Qp98, Qp99, Qp100, Qp101, Qp102, Qp103, Qp104,
+ Qp105, Qp106, Qp107, Qp108, Qp109, Qp110, Qp111, Qp112},
+ Qp128}) ->
+ {Value, V2} = queue_remove_unique(F, V1),
+ NewSize = if Value =:= true -> Size - 1; Value =:= false -> Size end,
+ {Value,
+ {if NewSize == 0 -> empty; true -> Pc end,
+ NewSize,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96,
+ V3,
+ Qp128}}).
+-define(REMOVE_UNIQ_P_Qp128(P, V1, V2, V3),
+remove_unique_p(P, F,
+ {Pc,
+ Size,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112,
+ {Qp113, Qp114, Qp115, Qp116, Qp117, Qp118, Qp119, Qp120,
+ Qp121, Qp122, Qp123, Qp124, Qp125, Qp126, Qp127, Qp128}}) ->
+ {Value, V2} = queue_remove_unique(F, V1),
+ NewSize = if Value =:= true -> Size - 1; Value =:= false -> Size end,
+ {Value,
+ {if NewSize == 0 -> empty; true -> Pc end,
+ NewSize,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112,
+ V3}}).
+
+?REMOVE_UNIQ_P_Qn128(-128,
+ Qn128, NewQn128,
+ {NewQn128, Qn127, Qn126, Qn125, Qn124,
+ Qn123, Qn122, Qn121, Qn120, Qn119, Qn118,
+ Qn117, Qn116, Qn115, Qn114, Qn113});
+?REMOVE_UNIQ_P_Qn128(-127,
+ Qn127, NewQn127,
+ {Qn128, NewQn127, Qn126, Qn125, Qn124,
+ Qn123, Qn122, Qn121, Qn120, Qn119, Qn118,
+ Qn117, Qn116, Qn115, Qn114, Qn113});
+?REMOVE_UNIQ_P_Qn128(-126,
+ Qn126, NewQn126,
+ {Qn128, Qn127, NewQn126, Qn125, Qn124,
+ Qn123, Qn122, Qn121, Qn120, Qn119, Qn118,
+ Qn117, Qn116, Qn115, Qn114, Qn113});
+?REMOVE_UNIQ_P_Qn128(-125,
+ Qn125, NewQn125,
+ {Qn128, Qn127, Qn126, NewQn125, Qn124,
+ Qn123, Qn122, Qn121, Qn120, Qn119, Qn118,
+ Qn117, Qn116, Qn115, Qn114, Qn113});
+?REMOVE_UNIQ_P_Qn128(-124,
+ Qn124, NewQn124,
+ {Qn128, Qn127, Qn126, Qn125, NewQn124,
+ Qn123, Qn122, Qn121, Qn120, Qn119, Qn118,
+ Qn117, Qn116, Qn115, Qn114, Qn113});
+?REMOVE_UNIQ_P_Qn128(-123,
+ Qn123, NewQn123,
+ {Qn128, Qn127, Qn126, Qn125, Qn124,
+ NewQn123, Qn122, Qn121, Qn120, Qn119, Qn118,
+ Qn117, Qn116, Qn115, Qn114, Qn113});
+?REMOVE_UNIQ_P_Qn128(-122,
+ Qn122, NewQn122,
+ {Qn128, Qn127, Qn126, Qn125, Qn124,
+ Qn123, NewQn122, Qn121, Qn120, Qn119, Qn118,
+ Qn117, Qn116, Qn115, Qn114, Qn113});
+?REMOVE_UNIQ_P_Qn128(-121,
+ Qn121, NewQn121,
+ {Qn128, Qn127, Qn126, Qn125, Qn124,
+ Qn123, Qn122, NewQn121, Qn120, Qn119, Qn118,
+ Qn117, Qn116, Qn115, Qn114, Qn113});
+?REMOVE_UNIQ_P_Qn128(-120,
+ Qn120, NewQn120,
+ {Qn128, Qn127, Qn126, Qn125, Qn124,
+ Qn123, Qn122, Qn121, NewQn120, Qn119, Qn118,
+ Qn117, Qn116, Qn115, Qn114, Qn113});
+?REMOVE_UNIQ_P_Qn128(-119,
+ Qn119, NewQn119,
+ {Qn128, Qn127, Qn126, Qn125, Qn124,
+ Qn123, Qn122, Qn121, Qn120, NewQn119, Qn118,
+ Qn117, Qn116, Qn115, Qn114, Qn113});
+?REMOVE_UNIQ_P_Qn128(-118,
+ Qn118, NewQn118,
+ {Qn128, Qn127, Qn126, Qn125, Qn124,
+ Qn123, Qn122, Qn121, Qn120, Qn119, NewQn118,
+ Qn117, Qn116, Qn115, Qn114, Qn113});
+?REMOVE_UNIQ_P_Qn128(-117,
+ Qn117, NewQn117,
+ {Qn128, Qn127, Qn126, Qn125, Qn124,
+ Qn123, Qn122, Qn121, Qn120, Qn119, Qn118,
+ NewQn117, Qn116, Qn115, Qn114, Qn113});
+?REMOVE_UNIQ_P_Qn128(-116,
+ Qn116, NewQn116,
+ {Qn128, Qn127, Qn126, Qn125, Qn124,
+ Qn123, Qn122, Qn121, Qn120, Qn119, Qn118,
+ Qn117, NewQn116, Qn115, Qn114, Qn113});
+?REMOVE_UNIQ_P_Qn128(-115,
+ Qn115, NewQn115,
+ {Qn128, Qn127, Qn126, Qn125, Qn124,
+ Qn123, Qn122, Qn121, Qn120, Qn119, Qn118,
+ Qn117, Qn116, NewQn115, Qn114, Qn113});
+?REMOVE_UNIQ_P_Qn128(-114,
+ Qn114, NewQn114,
+ {Qn128, Qn127, Qn126, Qn125, Qn124,
+ Qn123, Qn122, Qn121, Qn120, Qn119, Qn118,
+ Qn117, Qn116, Qn115, NewQn114, Qn113});
+?REMOVE_UNIQ_P_Qn128(-113,
+ Qn113, NewQn113,
+ {Qn128, Qn127, Qn126, Qn125, Qn124,
+ Qn123, Qn122, Qn121, Qn120, Qn119, Qn118,
+ Qn117, Qn116, Qn115, Qn114, NewQn113});
+?REMOVE_UNIQ_P_Qn112(-112,
+ Qn112, NewQn112,
+ {NewQn112, Qn111, Qn110, Qn109, Qn108,
+ Qn107, Qn106, Qn105, Qn104, Qn103, Qn102,
+ Qn101, Qn100, Qn99, Qn98, Qn97});
+?REMOVE_UNIQ_P_Qn112(-111,
+ Qn111, NewQn111,
+ {Qn112, NewQn111, Qn110, Qn109, Qn108,
+ Qn107, Qn106, Qn105, Qn104, Qn103, Qn102,
+ Qn101, Qn100, Qn99, Qn98, Qn97});
+?REMOVE_UNIQ_P_Qn112(-110,
+ Qn110, NewQn110,
+ {Qn112, Qn111, NewQn110, Qn109, Qn108,
+ Qn107, Qn106, Qn105, Qn104, Qn103, Qn102,
+ Qn101, Qn100, Qn99, Qn98, Qn97});
+?REMOVE_UNIQ_P_Qn112(-109,
+ Qn109, NewQn109,
+ {Qn112, Qn111, Qn110, NewQn109, Qn108,
+ Qn107, Qn106, Qn105, Qn104, Qn103, Qn102,
+ Qn101, Qn100, Qn99, Qn98, Qn97});
+?REMOVE_UNIQ_P_Qn112(-108,
+ Qn108, NewQn108,
+ {Qn112, Qn111, Qn110, Qn109, NewQn108,
+ Qn107, Qn106, Qn105, Qn104, Qn103, Qn102,
+ Qn101, Qn100, Qn99, Qn98, Qn97});
+?REMOVE_UNIQ_P_Qn112(-107,
+ Qn107, NewQn107,
+ {Qn112, Qn111, Qn110, Qn109, Qn108,
+ NewQn107, Qn106, Qn105, Qn104, Qn103, Qn102,
+ Qn101, Qn100, Qn99, Qn98, Qn97});
+?REMOVE_UNIQ_P_Qn112(-106,
+ Qn106, NewQn106,
+ {Qn112, Qn111, Qn110, Qn109, Qn108,
+ Qn107, NewQn106, Qn105, Qn104, Qn103, Qn102,
+ Qn101, Qn100, Qn99, Qn98, Qn97});
+?REMOVE_UNIQ_P_Qn112(-105,
+ Qn105, NewQn105,
+ {Qn112, Qn111, Qn110, Qn109, Qn108,
+ Qn107, Qn106, NewQn105, Qn104, Qn103, Qn102,
+ Qn101, Qn100, Qn99, Qn98, Qn97});
+?REMOVE_UNIQ_P_Qn112(-104,
+ Qn104, NewQn104,
+ {Qn112, Qn111, Qn110, Qn109, Qn108,
+ Qn107, Qn106, Qn105, NewQn104, Qn103, Qn102,
+ Qn101, Qn100, Qn99, Qn98, Qn97});
+?REMOVE_UNIQ_P_Qn112(-103,
+ Qn103, NewQn103,
+ {Qn112, Qn111, Qn110, Qn109, Qn108,
+ Qn107, Qn106, Qn105, Qn104, NewQn103, Qn102,
+ Qn101, Qn100, Qn99, Qn98, Qn97});
+?REMOVE_UNIQ_P_Qn112(-102,
+ Qn102, NewQn102,
+ {Qn112, Qn111, Qn110, Qn109, Qn108,
+ Qn107, Qn106, Qn105, Qn104, Qn103, NewQn102,
+ Qn101, Qn100, Qn99, Qn98, Qn97});
+?REMOVE_UNIQ_P_Qn112(-101,
+ Qn101, NewQn101,
+ {Qn112, Qn111, Qn110, Qn109, Qn108,
+ Qn107, Qn106, Qn105, Qn104, Qn103, Qn102,
+ NewQn101, Qn100, Qn99, Qn98, Qn97});
+?REMOVE_UNIQ_P_Qn112(-100,
+ Qn100, NewQn100,
+ {Qn112, Qn111, Qn110, Qn109, Qn108,
+ Qn107, Qn106, Qn105, Qn104, Qn103, Qn102,
+ Qn101, NewQn100, Qn99, Qn98, Qn97});
+?REMOVE_UNIQ_P_Qn112(-99,
+ Qn99, NewQn99,
+ {Qn112, Qn111, Qn110, Qn109, Qn108,
+ Qn107, Qn106, Qn105, Qn104, Qn103, Qn102,
+ Qn101, Qn100, NewQn99, Qn98, Qn97});
+?REMOVE_UNIQ_P_Qn112(-98,
+ Qn98, NewQn98,
+ {Qn112, Qn111, Qn110, Qn109, Qn108,
+ Qn107, Qn106, Qn105, Qn104, Qn103, Qn102,
+ Qn101, Qn100, Qn99, NewQn98, Qn97});
+?REMOVE_UNIQ_P_Qn112(-97,
+ Qn97, NewQn97,
+ {Qn112, Qn111, Qn110, Qn109, Qn108,
+ Qn107, Qn106, Qn105, Qn104, Qn103, Qn102,
+ Qn101, Qn100, Qn99, Qn98, NewQn97});
+?REMOVE_UNIQ_P_Qn96(-96,
+ Qn96, NewQn96,
+ {NewQn96, Qn95, Qn94, Qn93, Qn92,
+ Qn91, Qn90, Qn89, Qn88, Qn87, Qn86,
+ Qn85, Qn84, Qn83, Qn82, Qn81});
+?REMOVE_UNIQ_P_Qn96(-95,
+ Qn95, NewQn95,
+ {Qn96, NewQn95, Qn94, Qn93, Qn92,
+ Qn91, Qn90, Qn89, Qn88, Qn87, Qn86,
+ Qn85, Qn84, Qn83, Qn82, Qn81});
+?REMOVE_UNIQ_P_Qn96(-94,
+ Qn94, NewQn94,
+ {Qn96, Qn95, NewQn94, Qn93, Qn92,
+ Qn91, Qn90, Qn89, Qn88, Qn87, Qn86,
+ Qn85, Qn84, Qn83, Qn82, Qn81});
+?REMOVE_UNIQ_P_Qn96(-93,
+ Qn93, NewQn93,
+ {Qn96, Qn95, Qn94, NewQn93, Qn92,
+ Qn91, Qn90, Qn89, Qn88, Qn87, Qn86,
+ Qn85, Qn84, Qn83, Qn82, Qn81});
+?REMOVE_UNIQ_P_Qn96(-92,
+ Qn92, NewQn92,
+ {Qn96, Qn95, Qn94, Qn93, NewQn92,
+ Qn91, Qn90, Qn89, Qn88, Qn87, Qn86,
+ Qn85, Qn84, Qn83, Qn82, Qn81});
+?REMOVE_UNIQ_P_Qn96(-91,
+ Qn91, NewQn91,
+ {Qn96, Qn95, Qn94, Qn93, Qn92,
+ NewQn91, Qn90, Qn89, Qn88, Qn87, Qn86,
+ Qn85, Qn84, Qn83, Qn82, Qn81});
+?REMOVE_UNIQ_P_Qn96(-90,
+ Qn90, NewQn90,
+ {Qn96, Qn95, Qn94, Qn93, Qn92,
+ Qn91, NewQn90, Qn89, Qn88, Qn87, Qn86,
+ Qn85, Qn84, Qn83, Qn82, Qn81});
+?REMOVE_UNIQ_P_Qn96(-89,
+ Qn89, NewQn89,
+ {Qn96, Qn95, Qn94, Qn93, Qn92,
+ Qn91, Qn90, NewQn89, Qn88, Qn87, Qn86,
+ Qn85, Qn84, Qn83, Qn82, Qn81});
+?REMOVE_UNIQ_P_Qn96(-88,
+ Qn88, NewQn88,
+ {Qn96, Qn95, Qn94, Qn93, Qn92,
+ Qn91, Qn90, Qn89, NewQn88, Qn87, Qn86,
+ Qn85, Qn84, Qn83, Qn82, Qn81});
+?REMOVE_UNIQ_P_Qn96(-87,
+ Qn87, NewQn87,
+ {Qn96, Qn95, Qn94, Qn93, Qn92,
+ Qn91, Qn90, Qn89, Qn88, NewQn87, Qn86,
+ Qn85, Qn84, Qn83, Qn82, Qn81});
+?REMOVE_UNIQ_P_Qn96(-86,
+ Qn86, NewQn86,
+ {Qn96, Qn95, Qn94, Qn93, Qn92,
+ Qn91, Qn90, Qn89, Qn88, Qn87, NewQn86,
+ Qn85, Qn84, Qn83, Qn82, Qn81});
+?REMOVE_UNIQ_P_Qn96(-85,
+ Qn85, NewQn85,
+ {Qn96, Qn95, Qn94, Qn93, Qn92,
+ Qn91, Qn90, Qn89, Qn88, Qn87, Qn86,
+ NewQn85, Qn84, Qn83, Qn82, Qn81});
+?REMOVE_UNIQ_P_Qn96(-84,
+ Qn84, NewQn84,
+ {Qn96, Qn95, Qn94, Qn93, Qn92,
+ Qn91, Qn90, Qn89, Qn88, Qn87, Qn86,
+ Qn85, NewQn84, Qn83, Qn82, Qn81});
+?REMOVE_UNIQ_P_Qn96(-83,
+ Qn83, NewQn83,
+ {Qn96, Qn95, Qn94, Qn93, Qn92,
+ Qn91, Qn90, Qn89, Qn88, Qn87, Qn86,
+ Qn85, Qn84, NewQn83, Qn82, Qn81});
+?REMOVE_UNIQ_P_Qn96(-82,
+ Qn82, NewQn82,
+ {Qn96, Qn95, Qn94, Qn93, Qn92,
+ Qn91, Qn90, Qn89, Qn88, Qn87, Qn86,
+ Qn85, Qn84, Qn83, NewQn82, Qn81});
+?REMOVE_UNIQ_P_Qn96(-81,
+ Qn81, NewQn81,
+ {Qn96, Qn95, Qn94, Qn93, Qn92,
+ Qn91, Qn90, Qn89, Qn88, Qn87, Qn86,
+ Qn85, Qn84, Qn83, Qn82, NewQn81});
+?REMOVE_UNIQ_P_Qn80(-80,
+ Qn80, NewQn80,
+ {NewQn80, Qn79, Qn78, Qn77, Qn76,
+ Qn75, Qn74, Qn73, Qn72, Qn71, Qn70,
+ Qn69, Qn68, Qn67, Qn66, Qn65});
+?REMOVE_UNIQ_P_Qn80(-79,
+ Qn79, NewQn79,
+ {Qn80, NewQn79, Qn78, Qn77, Qn76,
+ Qn75, Qn74, Qn73, Qn72, Qn71, Qn70,
+ Qn69, Qn68, Qn67, Qn66, Qn65});
+?REMOVE_UNIQ_P_Qn80(-78,
+ Qn78, NewQn78,
+ {Qn80, Qn79, NewQn78, Qn77, Qn76,
+ Qn75, Qn74, Qn73, Qn72, Qn71, Qn70,
+ Qn69, Qn68, Qn67, Qn66, Qn65});
+?REMOVE_UNIQ_P_Qn80(-77,
+ Qn77, NewQn77,
+ {Qn80, Qn79, Qn78, NewQn77, Qn76,
+ Qn75, Qn74, Qn73, Qn72, Qn71, Qn70,
+ Qn69, Qn68, Qn67, Qn66, Qn65});
+?REMOVE_UNIQ_P_Qn80(-76,
+ Qn76, NewQn76,
+ {Qn80, Qn79, Qn78, Qn77, NewQn76,
+ Qn75, Qn74, Qn73, Qn72, Qn71, Qn70,
+ Qn69, Qn68, Qn67, Qn66, Qn65});
+?REMOVE_UNIQ_P_Qn80(-75,
+ Qn75, NewQn75,
+ {Qn80, Qn79, Qn78, Qn77, Qn76,
+ NewQn75, Qn74, Qn73, Qn72, Qn71, Qn70,
+ Qn69, Qn68, Qn67, Qn66, Qn65});
+?REMOVE_UNIQ_P_Qn80(-74,
+ Qn74, NewQn74,
+ {Qn80, Qn79, Qn78, Qn77, Qn76,
+ Qn75, NewQn74, Qn73, Qn72, Qn71, Qn70,
+ Qn69, Qn68, Qn67, Qn66, Qn65});
+?REMOVE_UNIQ_P_Qn80(-73,
+ Qn73, NewQn73,
+ {Qn80, Qn79, Qn78, Qn77, Qn76,
+ Qn75, Qn74, NewQn73, Qn72, Qn71, Qn70,
+ Qn69, Qn68, Qn67, Qn66, Qn65});
+?REMOVE_UNIQ_P_Qn80(-72,
+ Qn72, NewQn72,
+ {Qn80, Qn79, Qn78, Qn77, Qn76,
+ Qn75, Qn74, Qn73, NewQn72, Qn71, Qn70,
+ Qn69, Qn68, Qn67, Qn66, Qn65});
+?REMOVE_UNIQ_P_Qn80(-71,
+ Qn71, NewQn71,
+ {Qn80, Qn79, Qn78, Qn77, Qn76,
+ Qn75, Qn74, Qn73, Qn72, NewQn71, Qn70,
+ Qn69, Qn68, Qn67, Qn66, Qn65});
+?REMOVE_UNIQ_P_Qn80(-70,
+ Qn70, NewQn70,
+ {Qn80, Qn79, Qn78, Qn77, Qn76,
+ Qn75, Qn74, Qn73, Qn72, Qn71, NewQn70,
+ Qn69, Qn68, Qn67, Qn66, Qn65});
+?REMOVE_UNIQ_P_Qn80(-69,
+ Qn69, NewQn69,
+ {Qn80, Qn79, Qn78, Qn77, Qn76,
+ Qn75, Qn74, Qn73, Qn72, Qn71, Qn70,
+ NewQn69, Qn68, Qn67, Qn66, Qn65});
+?REMOVE_UNIQ_P_Qn80(-68,
+ Qn68, NewQn68,
+ {Qn80, Qn79, Qn78, Qn77, Qn76,
+ Qn75, Qn74, Qn73, Qn72, Qn71, Qn70,
+ Qn69, NewQn68, Qn67, Qn66, Qn65});
+?REMOVE_UNIQ_P_Qn80(-67,
+ Qn67, NewQn67,
+ {Qn80, Qn79, Qn78, Qn77, Qn76,
+ Qn75, Qn74, Qn73, Qn72, Qn71, Qn70,
+ Qn69, Qn68, NewQn67, Qn66, Qn65});
+?REMOVE_UNIQ_P_Qn80(-66,
+ Qn66, NewQn66,
+ {Qn80, Qn79, Qn78, Qn77, Qn76,
+ Qn75, Qn74, Qn73, Qn72, Qn71, Qn70,
+ Qn69, Qn68, Qn67, NewQn66, Qn65});
+?REMOVE_UNIQ_P_Qn80(-65,
+ Qn65, NewQn65,
+ {Qn80, Qn79, Qn78, Qn77, Qn76,
+ Qn75, Qn74, Qn73, Qn72, Qn71, Qn70,
+ Qn69, Qn68, Qn67, Qn66, NewQn65});
+?REMOVE_UNIQ_P_Qn64(-64,
+ Qn64, NewQn64,
+ {NewQn64, Qn63, Qn62, Qn61, Qn60,
+ Qn59, Qn58, Qn57, Qn56, Qn55, Qn54,
+ Qn53, Qn52, Qn51, Qn50, Qn49});
+?REMOVE_UNIQ_P_Qn64(-63,
+ Qn63, NewQn63,
+ {Qn64, NewQn63, Qn62, Qn61, Qn60,
+ Qn59, Qn58, Qn57, Qn56, Qn55, Qn54,
+ Qn53, Qn52, Qn51, Qn50, Qn49});
+?REMOVE_UNIQ_P_Qn64(-62,
+ Qn62, NewQn62,
+ {Qn64, Qn63, NewQn62, Qn61, Qn60,
+ Qn59, Qn58, Qn57, Qn56, Qn55, Qn54,
+ Qn53, Qn52, Qn51, Qn50, Qn49});
+?REMOVE_UNIQ_P_Qn64(-61,
+ Qn61, NewQn61,
+ {Qn64, Qn63, Qn62, NewQn61, Qn60,
+ Qn59, Qn58, Qn57, Qn56, Qn55, Qn54,
+ Qn53, Qn52, Qn51, Qn50, Qn49});
+?REMOVE_UNIQ_P_Qn64(-60,
+ Qn60, NewQn60,
+ {Qn64, Qn63, Qn62, Qn61, NewQn60,
+ Qn59, Qn58, Qn57, Qn56, Qn55, Qn54,
+ Qn53, Qn52, Qn51, Qn50, Qn49});
+?REMOVE_UNIQ_P_Qn64(-59,
+ Qn59, NewQn59,
+ {Qn64, Qn63, Qn62, Qn61, Qn60,
+ NewQn59, Qn58, Qn57, Qn56, Qn55, Qn54,
+ Qn53, Qn52, Qn51, Qn50, Qn49});
+?REMOVE_UNIQ_P_Qn64(-58,
+ Qn58, NewQn58,
+ {Qn64, Qn63, Qn62, Qn61, Qn60,
+ Qn59, NewQn58, Qn57, Qn56, Qn55, Qn54,
+ Qn53, Qn52, Qn51, Qn50, Qn49});
+?REMOVE_UNIQ_P_Qn64(-57,
+ Qn57, NewQn57,
+ {Qn64, Qn63, Qn62, Qn61, Qn60,
+ Qn59, Qn58, NewQn57, Qn56, Qn55, Qn54,
+ Qn53, Qn52, Qn51, Qn50, Qn49});
+?REMOVE_UNIQ_P_Qn64(-56,
+ Qn56, NewQn56,
+ {Qn64, Qn63, Qn62, Qn61, Qn60,
+ Qn59, Qn58, Qn57, NewQn56, Qn55, Qn54,
+ Qn53, Qn52, Qn51, Qn50, Qn49});
+?REMOVE_UNIQ_P_Qn64(-55,
+ Qn55, NewQn55,
+ {Qn64, Qn63, Qn62, Qn61, Qn60,
+ Qn59, Qn58, Qn57, Qn56, NewQn55, Qn54,
+ Qn53, Qn52, Qn51, Qn50, Qn49});
+?REMOVE_UNIQ_P_Qn64(-54,
+ Qn54, NewQn54,
+ {Qn64, Qn63, Qn62, Qn61, Qn60,
+ Qn59, Qn58, Qn57, Qn56, Qn55, NewQn54,
+ Qn53, Qn52, Qn51, Qn50, Qn49});
+?REMOVE_UNIQ_P_Qn64(-53,
+ Qn53, NewQn53,
+ {Qn64, Qn63, Qn62, Qn61, Qn60,
+ Qn59, Qn58, Qn57, Qn56, Qn55, Qn54,
+ NewQn53, Qn52, Qn51, Qn50, Qn49});
+?REMOVE_UNIQ_P_Qn64(-52,
+ Qn52, NewQn52,
+ {Qn64, Qn63, Qn62, Qn61, Qn60,
+ Qn59, Qn58, Qn57, Qn56, Qn55, Qn54,
+ Qn53, NewQn52, Qn51, Qn50, Qn49});
+?REMOVE_UNIQ_P_Qn64(-51,
+ Qn51, NewQn51,
+ {Qn64, Qn63, Qn62, Qn61, Qn60,
+ Qn59, Qn58, Qn57, Qn56, Qn55, Qn54,
+ Qn53, Qn52, NewQn51, Qn50, Qn49});
+?REMOVE_UNIQ_P_Qn64(-50,
+ Qn50, NewQn50,
+ {Qn64, Qn63, Qn62, Qn61, Qn60,
+ Qn59, Qn58, Qn57, Qn56, Qn55, Qn54,
+ Qn53, Qn52, Qn51, NewQn50, Qn49});
+?REMOVE_UNIQ_P_Qn64(-49,
+ Qn49, NewQn49,
+ {Qn64, Qn63, Qn62, Qn61, Qn60,
+ Qn59, Qn58, Qn57, Qn56, Qn55, Qn54,
+ Qn53, Qn52, Qn51, Qn50, NewQn49});
+?REMOVE_UNIQ_P_Qn48(-48,
+ Qn48, NewQn48,
+ {NewQn48, Qn47, Qn46, Qn45, Qn44,
+ Qn43, Qn42, Qn41, Qn40, Qn39, Qn38,
+ Qn37, Qn36, Qn35, Qn34, Qn33});
+?REMOVE_UNIQ_P_Qn48(-47,
+ Qn47, NewQn47,
+ {Qn48, NewQn47, Qn46, Qn45, Qn44,
+ Qn43, Qn42, Qn41, Qn40, Qn39, Qn38,
+ Qn37, Qn36, Qn35, Qn34, Qn33});
+?REMOVE_UNIQ_P_Qn48(-46,
+ Qn46, NewQn46,
+ {Qn48, Qn47, NewQn46, Qn45, Qn44,
+ Qn43, Qn42, Qn41, Qn40, Qn39, Qn38,
+ Qn37, Qn36, Qn35, Qn34, Qn33});
+?REMOVE_UNIQ_P_Qn48(-45,
+ Qn45, NewQn45,
+ {Qn48, Qn47, Qn46, NewQn45, Qn44,
+ Qn43, Qn42, Qn41, Qn40, Qn39, Qn38,
+ Qn37, Qn36, Qn35, Qn34, Qn33});
+?REMOVE_UNIQ_P_Qn48(-44,
+ Qn44, NewQn44,
+ {Qn48, Qn47, Qn46, Qn45, NewQn44,
+ Qn43, Qn42, Qn41, Qn40, Qn39, Qn38,
+ Qn37, Qn36, Qn35, Qn34, Qn33});
+?REMOVE_UNIQ_P_Qn48(-43,
+ Qn43, NewQn43,
+ {Qn48, Qn47, Qn46, Qn45, Qn44,
+ NewQn43, Qn42, Qn41, Qn40, Qn39, Qn38,
+ Qn37, Qn36, Qn35, Qn34, Qn33});
+?REMOVE_UNIQ_P_Qn48(-42,
+ Qn42, NewQn42,
+ {Qn48, Qn47, Qn46, Qn45, Qn44,
+ Qn43, NewQn42, Qn41, Qn40, Qn39, Qn38,
+ Qn37, Qn36, Qn35, Qn34, Qn33});
+?REMOVE_UNIQ_P_Qn48(-41,
+ Qn41, NewQn41,
+ {Qn48, Qn47, Qn46, Qn45, Qn44,
+ Qn43, Qn42, NewQn41, Qn40, Qn39, Qn38,
+ Qn37, Qn36, Qn35, Qn34, Qn33});
+?REMOVE_UNIQ_P_Qn48(-40,
+ Qn40, NewQn40,
+ {Qn48, Qn47, Qn46, Qn45, Qn44,
+ Qn43, Qn42, Qn41, NewQn40, Qn39, Qn38,
+ Qn37, Qn36, Qn35, Qn34, Qn33});
+?REMOVE_UNIQ_P_Qn48(-39,
+ Qn39, NewQn39,
+ {Qn48, Qn47, Qn46, Qn45, Qn44,
+ Qn43, Qn42, Qn41, Qn40, NewQn39, Qn38,
+ Qn37, Qn36, Qn35, Qn34, Qn33});
+?REMOVE_UNIQ_P_Qn48(-38,
+ Qn38, NewQn38,
+ {Qn48, Qn47, Qn46, Qn45, Qn44,
+ Qn43, Qn42, Qn41, Qn40, Qn39, NewQn38,
+ Qn37, Qn36, Qn35, Qn34, Qn33});
+?REMOVE_UNIQ_P_Qn48(-37,
+ Qn37, NewQn37,
+ {Qn48, Qn47, Qn46, Qn45, Qn44,
+ Qn43, Qn42, Qn41, Qn40, Qn39, Qn38,
+ NewQn37, Qn36, Qn35, Qn34, Qn33});
+?REMOVE_UNIQ_P_Qn48(-36,
+ Qn36, NewQn36,
+ {Qn48, Qn47, Qn46, Qn45, Qn44,
+ Qn43, Qn42, Qn41, Qn40, Qn39, Qn38,
+ Qn37, NewQn36, Qn35, Qn34, Qn33});
+?REMOVE_UNIQ_P_Qn48(-35,
+ Qn35, NewQn35,
+ {Qn48, Qn47, Qn46, Qn45, Qn44,
+ Qn43, Qn42, Qn41, Qn40, Qn39, Qn38,
+ Qn37, Qn36, NewQn35, Qn34, Qn33});
+?REMOVE_UNIQ_P_Qn48(-34,
+ Qn34, NewQn34,
+ {Qn48, Qn47, Qn46, Qn45, Qn44,
+ Qn43, Qn42, Qn41, Qn40, Qn39, Qn38,
+ Qn37, Qn36, Qn35, NewQn34, Qn33});
+?REMOVE_UNIQ_P_Qn48(-33,
+ Qn33, NewQn33,
+ {Qn48, Qn47, Qn46, Qn45, Qn44,
+ Qn43, Qn42, Qn41, Qn40, Qn39, Qn38,
+ Qn37, Qn36, Qn35, Qn34, NewQn33});
+?REMOVE_UNIQ_P_Qn32(-32,
+ Qn32, NewQn32,
+ {NewQn32, Qn31, Qn30, Qn29, Qn28,
+ Qn27, Qn26, Qn25, Qn24, Qn23, Qn22,
+ Qn21, Qn20, Qn19, Qn18, Qn17});
+?REMOVE_UNIQ_P_Qn32(-31,
+ Qn31, NewQn31,
+ {Qn32, NewQn31, Qn30, Qn29, Qn28,
+ Qn27, Qn26, Qn25, Qn24, Qn23, Qn22,
+ Qn21, Qn20, Qn19, Qn18, Qn17});
+?REMOVE_UNIQ_P_Qn32(-30,
+ Qn30, NewQn30,
+ {Qn32, Qn31, NewQn30, Qn29, Qn28,
+ Qn27, Qn26, Qn25, Qn24, Qn23, Qn22,
+ Qn21, Qn20, Qn19, Qn18, Qn17});
+?REMOVE_UNIQ_P_Qn32(-29,
+ Qn29, NewQn29,
+ {Qn32, Qn31, Qn30, NewQn29, Qn28,
+ Qn27, Qn26, Qn25, Qn24, Qn23, Qn22,
+ Qn21, Qn20, Qn19, Qn18, Qn17});
+?REMOVE_UNIQ_P_Qn32(-28,
+ Qn28, NewQn28,
+ {Qn32, Qn31, Qn30, Qn29, NewQn28,
+ Qn27, Qn26, Qn25, Qn24, Qn23, Qn22,
+ Qn21, Qn20, Qn19, Qn18, Qn17});
+?REMOVE_UNIQ_P_Qn32(-27,
+ Qn27, NewQn27,
+ {Qn32, Qn31, Qn30, Qn29, Qn28,
+ NewQn27, Qn26, Qn25, Qn24, Qn23, Qn22,
+ Qn21, Qn20, Qn19, Qn18, Qn17});
+?REMOVE_UNIQ_P_Qn32(-26,
+ Qn26, NewQn26,
+ {Qn32, Qn31, Qn30, Qn29, Qn28,
+ Qn27, NewQn26, Qn25, Qn24, Qn23, Qn22,
+ Qn21, Qn20, Qn19, Qn18, Qn17});
+?REMOVE_UNIQ_P_Qn32(-25,
+ Qn25, NewQn25,
+ {Qn32, Qn31, Qn30, Qn29, Qn28,
+ Qn27, Qn26, NewQn25, Qn24, Qn23, Qn22,
+ Qn21, Qn20, Qn19, Qn18, Qn17});
+?REMOVE_UNIQ_P_Qn32(-24,
+ Qn24, NewQn24,
+ {Qn32, Qn31, Qn30, Qn29, Qn28,
+ Qn27, Qn26, Qn25, NewQn24, Qn23, Qn22,
+ Qn21, Qn20, Qn19, Qn18, Qn17});
+?REMOVE_UNIQ_P_Qn32(-23,
+ Qn23, NewQn23,
+ {Qn32, Qn31, Qn30, Qn29, Qn28,
+ Qn27, Qn26, Qn25, Qn24, NewQn23, Qn22,
+ Qn21, Qn20, Qn19, Qn18, Qn17});
+?REMOVE_UNIQ_P_Qn32(-22,
+ Qn22, NewQn22,
+ {Qn32, Qn31, Qn30, Qn29, Qn28,
+ Qn27, Qn26, Qn25, Qn24, Qn23, NewQn22,
+ Qn21, Qn20, Qn19, Qn18, Qn17});
+?REMOVE_UNIQ_P_Qn32(-21,
+ Qn21, NewQn21,
+ {Qn32, Qn31, Qn30, Qn29, Qn28,
+ Qn27, Qn26, Qn25, Qn24, Qn23, Qn22,
+ NewQn21, Qn20, Qn19, Qn18, Qn17});
+?REMOVE_UNIQ_P_Qn32(-20,
+ Qn20, NewQn20,
+ {Qn32, Qn31, Qn30, Qn29, Qn28,
+ Qn27, Qn26, Qn25, Qn24, Qn23, Qn22,
+ Qn21, NewQn20, Qn19, Qn18, Qn17});
+?REMOVE_UNIQ_P_Qn32(-19,
+ Qn19, NewQn19,
+ {Qn32, Qn31, Qn30, Qn29, Qn28,
+ Qn27, Qn26, Qn25, Qn24, Qn23, Qn22,
+ Qn21, Qn20, NewQn19, Qn18, Qn17});
+?REMOVE_UNIQ_P_Qn32(-18,
+ Qn18, NewQn18,
+ {Qn32, Qn31, Qn30, Qn29, Qn28,
+ Qn27, Qn26, Qn25, Qn24, Qn23, Qn22,
+ Qn21, Qn20, Qn19, NewQn18, Qn17});
+?REMOVE_UNIQ_P_Qn32(-17,
+ Qn17, NewQn17,
+ {Qn32, Qn31, Qn30, Qn29, Qn28,
+ Qn27, Qn26, Qn25, Qn24, Qn23, Qn22,
+ Qn21, Qn20, Qn19, Qn18, NewQn17});
+?REMOVE_UNIQ_P_Qn16(-16,
+ Qn16, NewQn16,
+ {NewQn16, Qn15, Qn14, Qn13, Qn12,
+ Qn11, Qn10, Qn9, Qn8, Qn7, Qn6,
+ Qn5, Qn4, Qn3, Qn2, Qn1});
+?REMOVE_UNIQ_P_Qn16(-15,
+ Qn15, NewQn15,
+ {Qn16, NewQn15, Qn14, Qn13, Qn12,
+ Qn11, Qn10, Qn9, Qn8, Qn7, Qn6,
+ Qn5, Qn4, Qn3, Qn2, Qn1});
+?REMOVE_UNIQ_P_Qn16(-14,
+ Qn14, NewQn14,
+ {Qn16, Qn15, NewQn14, Qn13, Qn12,
+ Qn11, Qn10, Qn9, Qn8, Qn7, Qn6,
+ Qn5, Qn4, Qn3, Qn2, Qn1});
+?REMOVE_UNIQ_P_Qn16(-13,
+ Qn13, NewQn13,
+ {Qn16, Qn15, Qn14, NewQn13, Qn12,
+ Qn11, Qn10, Qn9, Qn8, Qn7, Qn6,
+ Qn5, Qn4, Qn3, Qn2, Qn1});
+?REMOVE_UNIQ_P_Qn16(-12,
+ Qn12, NewQn12,
+ {Qn16, Qn15, Qn14, Qn13, NewQn12,
+ Qn11, Qn10, Qn9, Qn8, Qn7, Qn6,
+ Qn5, Qn4, Qn3, Qn2, Qn1});
+?REMOVE_UNIQ_P_Qn16(-11,
+ Qn11, NewQn11,
+ {Qn16, Qn15, Qn14, Qn13, Qn12,
+ NewQn11, Qn10, Qn9, Qn8, Qn7, Qn6,
+ Qn5, Qn4, Qn3, Qn2, Qn1});
+?REMOVE_UNIQ_P_Qn16(-10,
+ Qn10, NewQn10,
+ {Qn16, Qn15, Qn14, Qn13, Qn12,
+ Qn11, NewQn10, Qn9, Qn8, Qn7, Qn6,
+ Qn5, Qn4, Qn3, Qn2, Qn1});
+?REMOVE_UNIQ_P_Qn16(-9,
+ Qn9, NewQn9,
+ {Qn16, Qn15, Qn14, Qn13, Qn12,
+ Qn11, Qn10, NewQn9, Qn8, Qn7, Qn6,
+ Qn5, Qn4, Qn3, Qn2, Qn1});
+?REMOVE_UNIQ_P_Qn16(-8,
+ Qn8, NewQn8,
+ {Qn16, Qn15, Qn14, Qn13, Qn12,
+ Qn11, Qn10, Qn9, NewQn8, Qn7, Qn6,
+ Qn5, Qn4, Qn3, Qn2, Qn1});
+?REMOVE_UNIQ_P_Qn16(-7,
+ Qn7, NewQn7,
+ {Qn16, Qn15, Qn14, Qn13, Qn12,
+ Qn11, Qn10, Qn9, Qn8, NewQn7, Qn6,
+ Qn5, Qn4, Qn3, Qn2, Qn1});
+?REMOVE_UNIQ_P_Qn16(-6,
+ Qn6, NewQn6,
+ {Qn16, Qn15, Qn14, Qn13, Qn12,
+ Qn11, Qn10, Qn9, Qn8, Qn7, NewQn6,
+ Qn5, Qn4, Qn3, Qn2, Qn1});
+?REMOVE_UNIQ_P_Qn16(-5,
+ Qn5, NewQn5,
+ {Qn16, Qn15, Qn14, Qn13, Qn12,
+ Qn11, Qn10, Qn9, Qn8, Qn7, Qn6,
+ NewQn5, Qn4, Qn3, Qn2, Qn1});
+?REMOVE_UNIQ_P_Qn16(-4,
+ Qn4, NewQn4,
+ {Qn16, Qn15, Qn14, Qn13, Qn12,
+ Qn11, Qn10, Qn9, Qn8, Qn7, Qn6,
+ Qn5, NewQn4, Qn3, Qn2, Qn1});
+?REMOVE_UNIQ_P_Qn16(-3,
+ Qn3, NewQn3,
+ {Qn16, Qn15, Qn14, Qn13, Qn12,
+ Qn11, Qn10, Qn9, Qn8, Qn7, Qn6,
+ Qn5, Qn4, NewQn3, Qn2, Qn1});
+?REMOVE_UNIQ_P_Qn16(-2,
+ Qn2, NewQn2,
+ {Qn16, Qn15, Qn14, Qn13, Qn12,
+ Qn11, Qn10, Qn9, Qn8, Qn7, Qn6,
+ Qn5, Qn4, Qn3, NewQn2, Qn1});
+?REMOVE_UNIQ_P_Qn16(-1,
+ Qn1, NewQn1,
+ {Qn16, Qn15, Qn14, Qn13, Qn12,
+ Qn11, Qn10, Qn9, Qn8, Qn7, Qn6,
+ Qn5, Qn4, Qn3, Qn2, NewQn1});
+remove_unique_p(0, F,
+ {Pc,
+ Size,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ Q0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}) ->
+ {Value, NewQ0} = queue_remove_unique(F, Q0),
+ NewSize = if Value =:= true -> Size - 1; Value =:= false -> Size end,
+ {Value,
+ {if NewSize == 0 -> empty; true -> Pc end,
+ NewSize,
+ Qn128, Qn112, Qn96, Qn80, Qn64, Qn48, Qn32, Qn16,
+ NewQ0,
+ Qp16, Qp32, Qp48, Qp64, Qp80, Qp96, Qp112, Qp128}};
+?REMOVE_UNIQ_P_Qp16(1,
+ Qp1, NewQp1,
+ {NewQp1, Qp2, Qp3, Qp4, Qp5,
+ Qp6, Qp7, Qp8, Qp9, Qp10, Qp11,
+ Qp12, Qp13, Qp14, Qp15, Qp16});
+?REMOVE_UNIQ_P_Qp16(2,
+ Qp2, NewQp2,
+ {Qp1, NewQp2, Qp3, Qp4, Qp5,
+ Qp6, Qp7, Qp8, Qp9, Qp10, Qp11,
+ Qp12, Qp13, Qp14, Qp15, Qp16});
+?REMOVE_UNIQ_P_Qp16(3,
+ Qp3, NewQp3,
+ {Qp1, Qp2, NewQp3, Qp4, Qp5,
+ Qp6, Qp7, Qp8, Qp9, Qp10, Qp11,
+ Qp12, Qp13, Qp14, Qp15, Qp16});
+?REMOVE_UNIQ_P_Qp16(4,
+ Qp4, NewQp4,
+ {Qp1, Qp2, Qp3, NewQp4, Qp5,
+ Qp6, Qp7, Qp8, Qp9, Qp10, Qp11,
+ Qp12, Qp13, Qp14, Qp15, Qp16});
+?REMOVE_UNIQ_P_Qp16(5,
+ Qp5, NewQp5,
+ {Qp1, Qp2, Qp3, Qp4, NewQp5,
+ Qp6, Qp7, Qp8, Qp9, Qp10, Qp11,
+ Qp12, Qp13, Qp14, Qp15, Qp16});
+?REMOVE_UNIQ_P_Qp16(6,
+ Qp6, NewQp6,
+ {Qp1, Qp2, Qp3, Qp4, Qp5,
+ NewQp6, Qp7, Qp8, Qp9, Qp10, Qp11,
+ Qp12, Qp13, Qp14, Qp15, Qp16});
+?REMOVE_UNIQ_P_Qp16(7,
+ Qp7, NewQp7,
+ {Qp1, Qp2, Qp3, Qp4, Qp5,
+ Qp6, NewQp7, Qp8, Qp9, Qp10, Qp11,
+ Qp12, Qp13, Qp14, Qp15, Qp16});
+?REMOVE_UNIQ_P_Qp16(8,
+ Qp8, NewQp8,
+ {Qp1, Qp2, Qp3, Qp4, Qp5,
+ Qp6, Qp7, NewQp8, Qp9, Qp10, Qp11,
+ Qp12, Qp13, Qp14, Qp15, Qp16});
+?REMOVE_UNIQ_P_Qp16(9,
+ Qp9, NewQp9,
+ {Qp1, Qp2, Qp3, Qp4, Qp5,
+ Qp6, Qp7, Qp8, NewQp9, Qp10, Qp11,
+ Qp12, Qp13, Qp14, Qp15, Qp16});
+?REMOVE_UNIQ_P_Qp16(10,
+ Qp10, NewQp10,
+ {Qp1, Qp2, Qp3, Qp4, Qp5,
+ Qp6, Qp7, Qp8, Qp9, NewQp10, Qp11,
+ Qp12, Qp13, Qp14, Qp15, Qp16});
+?REMOVE_UNIQ_P_Qp16(11,
+ Qp11, NewQp11,
+ {Qp1, Qp2, Qp3, Qp4, Qp5,
+ Qp6, Qp7, Qp8, Qp9, Qp10, NewQp11,
+ Qp12, Qp13, Qp14, Qp15, Qp16});
+?REMOVE_UNIQ_P_Qp16(12,
+ Qp12, NewQp12,
+ {Qp1, Qp2, Qp3, Qp4, Qp5,
+ Qp6, Qp7, Qp8, Qp9, Qp10, Qp11,
+ NewQp12, Qp13, Qp14, Qp15, Qp16});
+?REMOVE_UNIQ_P_Qp16(13,
+ Qp13, NewQp13,
+ {Qp1, Qp2, Qp3, Qp4, Qp5,
+ Qp6, Qp7, Qp8, Qp9, Qp10, Qp11,
+ Qp12, NewQp13, Qp14, Qp15, Qp16});
+?REMOVE_UNIQ_P_Qp16(14,
+ Qp14, NewQp14,
+ {Qp1, Qp2, Qp3, Qp4, Qp5,
+ Qp6, Qp7, Qp8, Qp9, Qp10, Qp11,
+ Qp12, Qp13, NewQp14, Qp15, Qp16});
+?REMOVE_UNIQ_P_Qp16(15,
+ Qp15, NewQp15,
+ {Qp1, Qp2, Qp3, Qp4, Qp5,
+ Qp6, Qp7, Qp8, Qp9, Qp10, Qp11,
+ Qp12, Qp13, Qp14, NewQp15, Qp16});
+?REMOVE_UNIQ_P_Qp16(16,
+ Qp16, NewQp16,
+ {Qp1, Qp2, Qp3, Qp4, Qp5,
+ Qp6, Qp7, Qp8, Qp9, Qp10, Qp11,
+ Qp12, Qp13, Qp14, Qp15, NewQp16});
+?REMOVE_UNIQ_P_Qp32(17,
+ Qp17, NewQp17,
+ {NewQp17, Qp18, Qp19, Qp20, Qp21,
+ Qp22, Qp23, Qp24, Qp25, Qp26, Qp27,
+ Qp28, Qp29, Qp30, Qp31, Qp32});
+?REMOVE_UNIQ_P_Qp32(18,
+ Qp18, NewQp18,
+ {Qp17, NewQp18, Qp19, Qp20, Qp21,
+ Qp22, Qp23, Qp24, Qp25, Qp26, Qp27,
+ Qp28, Qp29, Qp30, Qp31, Qp32});
+?REMOVE_UNIQ_P_Qp32(19,
+ Qp19, NewQp19,
+ {Qp17, Qp18, NewQp19, Qp20, Qp21,
+ Qp22, Qp23, Qp24, Qp25, Qp26, Qp27,
+ Qp28, Qp29, Qp30, Qp31, Qp32});
+?REMOVE_UNIQ_P_Qp32(20,
+ Qp20, NewQp20,
+ {Qp17, Qp18, Qp19, NewQp20, Qp21,
+ Qp22, Qp23, Qp24, Qp25, Qp26, Qp27,
+ Qp28, Qp29, Qp30, Qp31, Qp32});
+?REMOVE_UNIQ_P_Qp32(21,
+ Qp21, NewQp21,
+ {Qp17, Qp18, Qp19, Qp20, NewQp21,
+ Qp22, Qp23, Qp24, Qp25, Qp26, Qp27,
+ Qp28, Qp29, Qp30, Qp31, Qp32});
+?REMOVE_UNIQ_P_Qp32(22,
+ Qp22, NewQp22,
+ {Qp17, Qp18, Qp19, Qp20, Qp21,
+ NewQp22, Qp23, Qp24, Qp25, Qp26, Qp27,
+ Qp28, Qp29, Qp30, Qp31, Qp32});
+?REMOVE_UNIQ_P_Qp32(23,
+ Qp23, NewQp23,
+ {Qp17, Qp18, Qp19, Qp20, Qp21,
+ Qp22, NewQp23, Qp24, Qp25, Qp26, Qp27,
+ Qp28, Qp29, Qp30, Qp31, Qp32});
+?REMOVE_UNIQ_P_Qp32(24,
+ Qp24, NewQp24,
+ {Qp17, Qp18, Qp19, Qp20, Qp21,
+ Qp22, Qp23, NewQp24, Qp25, Qp26, Qp27,
+ Qp28, Qp29, Qp30, Qp31, Qp32});
+?REMOVE_UNIQ_P_Qp32(25,
+ Qp25, NewQp25,
+ {Qp17, Qp18, Qp19, Qp20, Qp21,
+ Qp22, Qp23, Qp24, NewQp25, Qp26, Qp27,
+ Qp28, Qp29, Qp30, Qp31, Qp32});
+?REMOVE_UNIQ_P_Qp32(26,
+ Qp26, NewQp26,
+ {Qp17, Qp18, Qp19, Qp20, Qp21,
+ Qp22, Qp23, Qp24, Qp25, NewQp26, Qp27,
+ Qp28, Qp29, Qp30, Qp31, Qp32});
+?REMOVE_UNIQ_P_Qp32(27,
+ Qp27, NewQp27,
+ {Qp17, Qp18, Qp19, Qp20, Qp21,
+ Qp22, Qp23, Qp24, Qp25, Qp26, NewQp27,
+ Qp28, Qp29, Qp30, Qp31, Qp32});
+?REMOVE_UNIQ_P_Qp32(28,
+ Qp28, NewQp28,
+ {Qp17, Qp18, Qp19, Qp20, Qp21,
+ Qp22, Qp23, Qp24, Qp25, Qp26, Qp27,
+ NewQp28, Qp29, Qp30, Qp31, Qp32});
+?REMOVE_UNIQ_P_Qp32(29,
+ Qp29, NewQp29,
+ {Qp17, Qp18, Qp19, Qp20, Qp21,
+ Qp22, Qp23, Qp24, Qp25, Qp26, Qp27,
+ Qp28, NewQp29, Qp30, Qp31, Qp32});
+?REMOVE_UNIQ_P_Qp32(30,
+ Qp30, NewQp30,
+ {Qp17, Qp18, Qp19, Qp20, Qp21,
+ Qp22, Qp23, Qp24, Qp25, Qp26, Qp27,
+ Qp28, Qp29, NewQp30, Qp31, Qp32});
+?REMOVE_UNIQ_P_Qp32(31,
+ Qp31, NewQp31,
+ {Qp17, Qp18, Qp19, Qp20, Qp21,
+ Qp22, Qp23, Qp24, Qp25, Qp26, Qp27,
+ Qp28, Qp29, Qp30, NewQp31, Qp32});
+?REMOVE_UNIQ_P_Qp32(32,
+ Qp32, NewQp32,
+ {Qp17, Qp18, Qp19, Qp20, Qp21,
+ Qp22, Qp23, Qp24, Qp25, Qp26, Qp27,
+ Qp28, Qp29, Qp30, Qp31, NewQp32});
+?REMOVE_UNIQ_P_Qp48(33,
+ Qp33, NewQp33,
+ {NewQp33, Qp34, Qp35, Qp36, Qp37,
+ Qp38, Qp39, Qp40, Qp41, Qp42, Qp43,
+ Qp44, Qp45, Qp46, Qp47, Qp48});
+?REMOVE_UNIQ_P_Qp48(34,
+ Qp34, NewQp34,
+ {Qp33, NewQp34, Qp35, Qp36, Qp37,
+ Qp38, Qp39, Qp40, Qp41, Qp42, Qp43,
+ Qp44, Qp45, Qp46, Qp47, Qp48});
+?REMOVE_UNIQ_P_Qp48(35,
+ Qp35, NewQp35,
+ {Qp33, Qp34, NewQp35, Qp36, Qp37,
+ Qp38, Qp39, Qp40, Qp41, Qp42, Qp43,
+ Qp44, Qp45, Qp46, Qp47, Qp48});
+?REMOVE_UNIQ_P_Qp48(36,
+ Qp36, NewQp36,
+ {Qp33, Qp34, Qp35, NewQp36, Qp37,
+ Qp38, Qp39, Qp40, Qp41, Qp42, Qp43,
+ Qp44, Qp45, Qp46, Qp47, Qp48});
+?REMOVE_UNIQ_P_Qp48(37,
+ Qp37, NewQp37,
+ {Qp33, Qp34, Qp35, Qp36, NewQp37,
+ Qp38, Qp39, Qp40, Qp41, Qp42, Qp43,
+ Qp44, Qp45, Qp46, Qp47, Qp48});
+?REMOVE_UNIQ_P_Qp48(38,
+ Qp38, NewQp38,
+ {Qp33, Qp34, Qp35, Qp36, Qp37,
+ NewQp38, Qp39, Qp40, Qp41, Qp42, Qp43,
+ Qp44, Qp45, Qp46, Qp47, Qp48});
+?REMOVE_UNIQ_P_Qp48(39,
+ Qp39, NewQp39,
+ {Qp33, Qp34, Qp35, Qp36, Qp37,
+ Qp38, NewQp39, Qp40, Qp41, Qp42, Qp43,
+ Qp44, Qp45, Qp46, Qp47, Qp48});
+?REMOVE_UNIQ_P_Qp48(40,
+ Qp40, NewQp40,
+ {Qp33, Qp34, Qp35, Qp36, Qp37,
+ Qp38, Qp39, NewQp40, Qp41, Qp42, Qp43,
+ Qp44, Qp45, Qp46, Qp47, Qp48});
+?REMOVE_UNIQ_P_Qp48(41,
+ Qp41, NewQp41,
+ {Qp33, Qp34, Qp35, Qp36, Qp37,
+ Qp38, Qp39, Qp40, NewQp41, Qp42, Qp43,
+ Qp44, Qp45, Qp46, Qp47, Qp48});
+?REMOVE_UNIQ_P_Qp48(42,
+ Qp42, NewQp42,
+ {Qp33, Qp34, Qp35, Qp36, Qp37,
+ Qp38, Qp39, Qp40, Qp41, NewQp42, Qp43,
+ Qp44, Qp45, Qp46, Qp47, Qp48});
+?REMOVE_UNIQ_P_Qp48(43,
+ Qp43, NewQp43,
+ {Qp33, Qp34, Qp35, Qp36, Qp37,
+ Qp38, Qp39, Qp40, Qp41, Qp42, NewQp43,
+ Qp44, Qp45, Qp46, Qp47, Qp48});
+?REMOVE_UNIQ_P_Qp48(44,
+ Qp44, NewQp44,
+ {Qp33, Qp34, Qp35, Qp36, Qp37,
+ Qp38, Qp39, Qp40, Qp41, Qp42, Qp43,
+ NewQp44, Qp45, Qp46, Qp47, Qp48});
+?REMOVE_UNIQ_P_Qp48(45,
+ Qp45, NewQp45,
+ {Qp33, Qp34, Qp35, Qp36, Qp37,
+ Qp38, Qp39, Qp40, Qp41, Qp42, Qp43,
+ Qp44, NewQp45, Qp46, Qp47, Qp48});
+?REMOVE_UNIQ_P_Qp48(46,
+ Qp46, NewQp46,
+ {Qp33, Qp34, Qp35, Qp36, Qp37,
+ Qp38, Qp39, Qp40, Qp41, Qp42, Qp43,
+ Qp44, Qp45, NewQp46, Qp47, Qp48});
+?REMOVE_UNIQ_P_Qp48(47,
+ Qp47, NewQp47,
+ {Qp33, Qp34, Qp35, Qp36, Qp37,
+ Qp38, Qp39, Qp40, Qp41, Qp42, Qp43,
+ Qp44, Qp45, Qp46, NewQp47, Qp48});
+?REMOVE_UNIQ_P_Qp48(48,
+ Qp48, NewQp48,
+ {Qp33, Qp34, Qp35, Qp36, Qp37,
+ Qp38, Qp39, Qp40, Qp41, Qp42, Qp43,
+ Qp44, Qp45, Qp46, Qp47, NewQp48});
+?REMOVE_UNIQ_P_Qp64(49,
+ Qp49, NewQp49,
+ {NewQp49, Qp50, Qp51, Qp52, Qp53,
+ Qp54, Qp55, Qp56, Qp57, Qp58, Qp59,
+ Qp60, Qp61, Qp62, Qp63, Qp64});
+?REMOVE_UNIQ_P_Qp64(50,
+ Qp50, NewQp50,
+ {Qp49, NewQp50, Qp51, Qp52, Qp53,
+ Qp54, Qp55, Qp56, Qp57, Qp58, Qp59,
+ Qp60, Qp61, Qp62, Qp63, Qp64});
+?REMOVE_UNIQ_P_Qp64(51,
+ Qp51, NewQp51,
+ {Qp49, Qp50, NewQp51, Qp52, Qp53,
+ Qp54, Qp55, Qp56, Qp57, Qp58, Qp59,
+ Qp60, Qp61, Qp62, Qp63, Qp64});
+?REMOVE_UNIQ_P_Qp64(52,
+ Qp52, NewQp52,
+ {Qp49, Qp50, Qp51, NewQp52, Qp53,
+ Qp54, Qp55, Qp56, Qp57, Qp58, Qp59,
+ Qp60, Qp61, Qp62, Qp63, Qp64});
+?REMOVE_UNIQ_P_Qp64(53,
+ Qp53, NewQp53,
+ {Qp49, Qp50, Qp51, Qp52, NewQp53,
+ Qp54, Qp55, Qp56, Qp57, Qp58, Qp59,
+ Qp60, Qp61, Qp62, Qp63, Qp64});
+?REMOVE_UNIQ_P_Qp64(54,
+ Qp54, NewQp54,
+ {Qp49, Qp50, Qp51, Qp52, Qp53,
+ NewQp54, Qp55, Qp56, Qp57, Qp58, Qp59,
+ Qp60, Qp61, Qp62, Qp63, Qp64});
+?REMOVE_UNIQ_P_Qp64(55,
+ Qp55, NewQp55,
+ {Qp49, Qp50, Qp51, Qp52, Qp53,
+ Qp54, NewQp55, Qp56, Qp57, Qp58, Qp59,
+ Qp60, Qp61, Qp62, Qp63, Qp64});
+?REMOVE_UNIQ_P_Qp64(56,
+ Qp56, NewQp56,
+ {Qp49, Qp50, Qp51, Qp52, Qp53,
+ Qp54, Qp55, NewQp56, Qp57, Qp58, Qp59,
+ Qp60, Qp61, Qp62, Qp63, Qp64});
+?REMOVE_UNIQ_P_Qp64(57,
+ Qp57, NewQp57,
+ {Qp49, Qp50, Qp51, Qp52, Qp53,
+ Qp54, Qp55, Qp56, NewQp57, Qp58, Qp59,
+ Qp60, Qp61, Qp62, Qp63, Qp64});
+?REMOVE_UNIQ_P_Qp64(58,
+ Qp58, NewQp58,
+ {Qp49, Qp50, Qp51, Qp52, Qp53,
+ Qp54, Qp55, Qp56, Qp57, NewQp58, Qp59,
+ Qp60, Qp61, Qp62, Qp63, Qp64});
+?REMOVE_UNIQ_P_Qp64(59,
+ Qp59, NewQp59,
+ {Qp49, Qp50, Qp51, Qp52, Qp53,
+ Qp54, Qp55, Qp56, Qp57, Qp58, NewQp59,
+ Qp60, Qp61, Qp62, Qp63, Qp64});
+?REMOVE_UNIQ_P_Qp64(60,
+ Qp60, NewQp60,
+ {Qp49, Qp50, Qp51, Qp52, Qp53,
+ Qp54, Qp55, Qp56, Qp57, Qp58, Qp59,
+ NewQp60, Qp61, Qp62, Qp63, Qp64});
+?REMOVE_UNIQ_P_Qp64(61,
+ Qp61, NewQp61,
+ {Qp49, Qp50, Qp51, Qp52, Qp53,
+ Qp54, Qp55, Qp56, Qp57, Qp58, Qp59,
+ Qp60, NewQp61, Qp62, Qp63, Qp64});
+?REMOVE_UNIQ_P_Qp64(62,
+ Qp62, NewQp62,
+ {Qp49, Qp50, Qp51, Qp52, Qp53,
+ Qp54, Qp55, Qp56, Qp57, Qp58, Qp59,
+ Qp60, Qp61, NewQp62, Qp63, Qp64});
+?REMOVE_UNIQ_P_Qp64(63,
+ Qp63, NewQp63,
+ {Qp49, Qp50, Qp51, Qp52, Qp53,
+ Qp54, Qp55, Qp56, Qp57, Qp58, Qp59,
+ Qp60, Qp61, Qp62, NewQp63, Qp64});
+?REMOVE_UNIQ_P_Qp64(64,
+ Qp64, NewQp64,
+ {Qp49, Qp50, Qp51, Qp52, Qp53,
+ Qp54, Qp55, Qp56, Qp57, Qp58, Qp59,
+ Qp60, Qp61, Qp62, Qp63, NewQp64});
+?REMOVE_UNIQ_P_Qp80(65,
+ Qp65, NewQp65,
+ {NewQp65, Qp66, Qp67, Qp68, Qp69,
+ Qp70, Qp71, Qp72, Qp73, Qp74, Qp75,
+ Qp76, Qp77, Qp78, Qp79, Qp80});
+?REMOVE_UNIQ_P_Qp80(66,
+ Qp66, NewQp66,
+ {Qp65, NewQp66, Qp67, Qp68, Qp69,
+ Qp70, Qp71, Qp72, Qp73, Qp74, Qp75,
+ Qp76, Qp77, Qp78, Qp79, Qp80});
+?REMOVE_UNIQ_P_Qp80(67,
+ Qp67, NewQp67,
+ {Qp65, Qp66, NewQp67, Qp68, Qp69,
+ Qp70, Qp71, Qp72, Qp73, Qp74, Qp75,
+ Qp76, Qp77, Qp78, Qp79, Qp80});
+?REMOVE_UNIQ_P_Qp80(68,
+ Qp68, NewQp68,
+ {Qp65, Qp66, Qp67, NewQp68, Qp69,
+ Qp70, Qp71, Qp72, Qp73, Qp74, Qp75,
+ Qp76, Qp77, Qp78, Qp79, Qp80});
+?REMOVE_UNIQ_P_Qp80(69,
+ Qp69, NewQp69,
+ {Qp65, Qp66, Qp67, Qp68, NewQp69,
+ Qp70, Qp71, Qp72, Qp73, Qp74, Qp75,
+ Qp76, Qp77, Qp78, Qp79, Qp80});
+?REMOVE_UNIQ_P_Qp80(70,
+ Qp70, NewQp70,
+ {Qp65, Qp66, Qp67, Qp68, Qp69,
+ NewQp70, Qp71, Qp72, Qp73, Qp74, Qp75,
+ Qp76, Qp77, Qp78, Qp79, Qp80});
+?REMOVE_UNIQ_P_Qp80(71,
+ Qp71, NewQp71,
+ {Qp65, Qp66, Qp67, Qp68, Qp69,
+ Qp70, NewQp71, Qp72, Qp73, Qp74, Qp75,
+ Qp76, Qp77, Qp78, Qp79, Qp80});
+?REMOVE_UNIQ_P_Qp80(72,
+ Qp72, NewQp72,
+ {Qp65, Qp66, Qp67, Qp68, Qp69,
+ Qp70, Qp71, NewQp72, Qp73, Qp74, Qp75,
+ Qp76, Qp77, Qp78, Qp79, Qp80});
+?REMOVE_UNIQ_P_Qp80(73,
+ Qp73, NewQp73,
+ {Qp65, Qp66, Qp67, Qp68, Qp69,
+ Qp70, Qp71, Qp72, NewQp73, Qp74, Qp75,
+ Qp76, Qp77, Qp78, Qp79, Qp80});
+?REMOVE_UNIQ_P_Qp80(74,
+ Qp74, NewQp74,
+ {Qp65, Qp66, Qp67, Qp68, Qp69,
+ Qp70, Qp71, Qp72, Qp73, NewQp74, Qp75,
+ Qp76, Qp77, Qp78, Qp79, Qp80});
+?REMOVE_UNIQ_P_Qp80(75,
+ Qp75, NewQp75,
+ {Qp65, Qp66, Qp67, Qp68, Qp69,
+ Qp70, Qp71, Qp72, Qp73, Qp74, NewQp75,
+ Qp76, Qp77, Qp78, Qp79, Qp80});
+?REMOVE_UNIQ_P_Qp80(76,
+ Qp76, NewQp76,
+ {Qp65, Qp66, Qp67, Qp68, Qp69,
+ Qp70, Qp71, Qp72, Qp73, Qp74, Qp75,
+ NewQp76, Qp77, Qp78, Qp79, Qp80});
+?REMOVE_UNIQ_P_Qp80(77,
+ Qp77, NewQp77,
+ {Qp65, Qp66, Qp67, Qp68, Qp69,
+ Qp70, Qp71, Qp72, Qp73, Qp74, Qp75,
+ Qp76, NewQp77, Qp78, Qp79, Qp80});
+?REMOVE_UNIQ_P_Qp80(78,
+ Qp78, NewQp78,
+ {Qp65, Qp66, Qp67, Qp68, Qp69,
+ Qp70, Qp71, Qp72, Qp73, Qp74, Qp75,
+ Qp76, Qp77, NewQp78, Qp79, Qp80});
+?REMOVE_UNIQ_P_Qp80(79,
+ Qp79, NewQp79,
+ {Qp65, Qp66, Qp67, Qp68, Qp69,
+ Qp70, Qp71, Qp72, Qp73, Qp74, Qp75,
+ Qp76, Qp77, Qp78, NewQp79, Qp80});
+?REMOVE_UNIQ_P_Qp80(80,
+ Qp80, NewQp80,
+ {Qp65, Qp66, Qp67, Qp68, Qp69,
+ Qp70, Qp71, Qp72, Qp73, Qp74, Qp75,
+ Qp76, Qp77, Qp78, Qp79, NewQp80});
+?REMOVE_UNIQ_P_Qp96(81,
+ Qp81, NewQp81,
+ {NewQp81, Qp82, Qp83, Qp84, Qp85,
+ Qp86, Qp87, Qp88, Qp89, Qp90, Qp91,
+ Qp92, Qp93, Qp94, Qp95, Qp96});
+?REMOVE_UNIQ_P_Qp96(82,
+ Qp82, NewQp82,
+ {Qp81, NewQp82, Qp83, Qp84, Qp85,
+ Qp86, Qp87, Qp88, Qp89, Qp90, Qp91,
+ Qp92, Qp93, Qp94, Qp95, Qp96});
+?REMOVE_UNIQ_P_Qp96(83,
+ Qp83, NewQp83,
+ {Qp81, Qp82, NewQp83, Qp84, Qp85,
+ Qp86, Qp87, Qp88, Qp89, Qp90, Qp91,
+ Qp92, Qp93, Qp94, Qp95, Qp96});
+?REMOVE_UNIQ_P_Qp96(84,
+ Qp84, NewQp84,
+ {Qp81, Qp82, Qp83, NewQp84, Qp85,
+ Qp86, Qp87, Qp88, Qp89, Qp90, Qp91,
+ Qp92, Qp93, Qp94, Qp95, Qp96});
+?REMOVE_UNIQ_P_Qp96(85,
+ Qp85, NewQp85,
+ {Qp81, Qp82, Qp83, Qp84, NewQp85,
+ Qp86, Qp87, Qp88, Qp89, Qp90, Qp91,
+ Qp92, Qp93, Qp94, Qp95, Qp96});
+?REMOVE_UNIQ_P_Qp96(86,
+ Qp86, NewQp86,
+ {Qp81, Qp82, Qp83, Qp84, Qp85,
+ NewQp86, Qp87, Qp88, Qp89, Qp90, Qp91,
+ Qp92, Qp93, Qp94, Qp95, Qp96});
+?REMOVE_UNIQ_P_Qp96(87,
+ Qp87, NewQp87,
+ {Qp81, Qp82, Qp83, Qp84, Qp85,
+ Qp86, NewQp87, Qp88, Qp89, Qp90, Qp91,
+ Qp92, Qp93, Qp94, Qp95, Qp96});
+?REMOVE_UNIQ_P_Qp96(88,
+ Qp88, NewQp88,
+ {Qp81, Qp82, Qp83, Qp84, Qp85,
+ Qp86, Qp87, NewQp88, Qp89, Qp90, Qp91,
+ Qp92, Qp93, Qp94, Qp95, Qp96});
+?REMOVE_UNIQ_P_Qp96(89,
+ Qp89, NewQp89,
+ {Qp81, Qp82, Qp83, Qp84, Qp85,
+ Qp86, Qp87, Qp88, NewQp89, Qp90, Qp91,
+ Qp92, Qp93, Qp94, Qp95, Qp96});
+?REMOVE_UNIQ_P_Qp96(90,
+ Qp90, NewQp90,
+ {Qp81, Qp82, Qp83, Qp84, Qp85,
+ Qp86, Qp87, Qp88, Qp89, NewQp90, Qp91,
+ Qp92, Qp93, Qp94, Qp95, Qp96});
+?REMOVE_UNIQ_P_Qp96(91,
+ Qp91, NewQp91,
+ {Qp81, Qp82, Qp83, Qp84, Qp85,
+ Qp86, Qp87, Qp88, Qp89, Qp90, NewQp91,
+ Qp92, Qp93, Qp94, Qp95, Qp96});
+?REMOVE_UNIQ_P_Qp96(92,
+ Qp92, NewQp92,
+ {Qp81, Qp82, Qp83, Qp84, Qp85,
+ Qp86, Qp87, Qp88, Qp89, Qp90, Qp91,
+ NewQp92, Qp93, Qp94, Qp95, Qp96});
+?REMOVE_UNIQ_P_Qp96(93,
+ Qp93, NewQp93,
+ {Qp81, Qp82, Qp83, Qp84, Qp85,
+ Qp86, Qp87, Qp88, Qp89, Qp90, Qp91,
+ Qp92, NewQp93, Qp94, Qp95, Qp96});
+?REMOVE_UNIQ_P_Qp96(94,
+ Qp94, NewQp94,
+ {Qp81, Qp82, Qp83, Qp84, Qp85,
+ Qp86, Qp87, Qp88, Qp89, Qp90, Qp91,
+ Qp92, Qp93, NewQp94, Qp95, Qp96});
+?REMOVE_UNIQ_P_Qp96(95,
+ Qp95, NewQp95,
+ {Qp81, Qp82, Qp83, Qp84, Qp85,
+ Qp86, Qp87, Qp88, Qp89, Qp90, Qp91,
+ Qp92, Qp93, Qp94, NewQp95, Qp96});
+?REMOVE_UNIQ_P_Qp96(96,
+ Qp96, NewQp96,
+ {Qp81, Qp82, Qp83, Qp84, Qp85,
+ Qp86, Qp87, Qp88, Qp89, Qp90, Qp91,
+ Qp92, Qp93, Qp94, Qp95, NewQp96});
+?REMOVE_UNIQ_P_Qp112(97,
+ Qp97, NewQp97,
+ {NewQp97, Qp98, Qp99, Qp100, Qp101,
+ Qp102, Qp103, Qp104, Qp105, Qp106, Qp107,
+ Qp108, Qp109, Qp110, Qp111, Qp112});
+?REMOVE_UNIQ_P_Qp112(98,
+ Qp98, NewQp98,
+ {Qp97, NewQp98, Qp99, Qp100, Qp101,
+ Qp102, Qp103, Qp104, Qp105, Qp106, Qp107,
+ Qp108, Qp109, Qp110, Qp111, Qp112});
+?REMOVE_UNIQ_P_Qp112(99,
+ Qp99, NewQp99,
+ {Qp97, Qp98, NewQp99, Qp100, Qp101,
+ Qp102, Qp103, Qp104, Qp105, Qp106, Qp107,
+ Qp108, Qp109, Qp110, Qp111, Qp112});
+?REMOVE_UNIQ_P_Qp112(100,
+ Qp100, NewQp100,
+ {Qp97, Qp98, Qp99, NewQp100, Qp101,
+ Qp102, Qp103, Qp104, Qp105, Qp106, Qp107,
+ Qp108, Qp109, Qp110, Qp111, Qp112});
+?REMOVE_UNIQ_P_Qp112(101,
+ Qp101, NewQp101,
+ {Qp97, Qp98, Qp99, Qp100, NewQp101,
+ Qp102, Qp103, Qp104, Qp105, Qp106, Qp107,
+ Qp108, Qp109, Qp110, Qp111, Qp112});
+?REMOVE_UNIQ_P_Qp112(102,
+ Qp102, NewQp102,
+ {Qp97, Qp98, Qp99, Qp100, Qp101,
+ NewQp102, Qp103, Qp104, Qp105, Qp106, Qp107,
+ Qp108, Qp109, Qp110, Qp111, Qp112});
+?REMOVE_UNIQ_P_Qp112(103,
+ Qp103, NewQp103,
+ {Qp97, Qp98, Qp99, Qp100, Qp101,
+ Qp102, NewQp103, Qp104, Qp105, Qp106, Qp107,
+ Qp108, Qp109, Qp110, Qp111, Qp112});
+?REMOVE_UNIQ_P_Qp112(104,
+ Qp104, NewQp104,
+ {Qp97, Qp98, Qp99, Qp100, Qp101,
+ Qp102, Qp103, NewQp104, Qp105, Qp106, Qp107,
+ Qp108, Qp109, Qp110, Qp111, Qp112});
+?REMOVE_UNIQ_P_Qp112(105,
+ Qp105, NewQp105,
+ {Qp97, Qp98, Qp99, Qp100, Qp101,
+ Qp102, Qp103, Qp104, NewQp105, Qp106, Qp107,
+ Qp108, Qp109, Qp110, Qp111, Qp112});
+?REMOVE_UNIQ_P_Qp112(106,
+ Qp106, NewQp106,
+ {Qp97, Qp98, Qp99, Qp100, Qp101,
+ Qp102, Qp103, Qp104, Qp105, NewQp106, Qp107,
+ Qp108, Qp109, Qp110, Qp111, Qp112});
+?REMOVE_UNIQ_P_Qp112(107,
+ Qp107, NewQp107,
+ {Qp97, Qp98, Qp99, Qp100, Qp101,
+ Qp102, Qp103, Qp104, Qp105, Qp106, NewQp107,
+ Qp108, Qp109, Qp110, Qp111, Qp112});
+?REMOVE_UNIQ_P_Qp112(108,
+ Qp108, NewQp108,
+ {Qp97, Qp98, Qp99, Qp100, Qp101,
+ Qp102, Qp103, Qp104, Qp105, Qp106, Qp107,
+ NewQp108, Qp109, Qp110, Qp111, Qp112});
+?REMOVE_UNIQ_P_Qp112(109,
+ Qp109, NewQp109,
+ {Qp97, Qp98, Qp99, Qp100, Qp101,
+ Qp102, Qp103, Qp104, Qp105, Qp106, Qp107,
+ Qp108, NewQp109, Qp110, Qp111, Qp112});
+?REMOVE_UNIQ_P_Qp112(110,
+ Qp110, NewQp110,
+ {Qp97, Qp98, Qp99, Qp100, Qp101,
+ Qp102, Qp103, Qp104, Qp105, Qp106, Qp107,
+ Qp108, Qp109, NewQp110, Qp111, Qp112});
+?REMOVE_UNIQ_P_Qp112(111,
+ Qp111, NewQp111,
+ {Qp97, Qp98, Qp99, Qp100, Qp101,
+ Qp102, Qp103, Qp104, Qp105, Qp106, Qp107,
+ Qp108, Qp109, Qp110, NewQp111, Qp112});
+?REMOVE_UNIQ_P_Qp112(112,
+ Qp112, NewQp112,
+ {Qp97, Qp98, Qp99, Qp100, Qp101,
+ Qp102, Qp103, Qp104, Qp105, Qp106, Qp107,
+ Qp108, Qp109, Qp110, Qp111, NewQp112});
+?REMOVE_UNIQ_P_Qp128(113,
+ Qp113, NewQp113,
+ {NewQp113, Qp114, Qp115, Qp116, Qp117,
+ Qp118, Qp119, Qp120, Qp121, Qp122, Qp123,
+ Qp124, Qp125, Qp126, Qp127, Qp128});
+?REMOVE_UNIQ_P_Qp128(114,
+ Qp114, NewQp114,
+ {Qp113, NewQp114, Qp115, Qp116, Qp117,
+ Qp118, Qp119, Qp120, Qp121, Qp122, Qp123,
+ Qp124, Qp125, Qp126, Qp127, Qp128});
+?REMOVE_UNIQ_P_Qp128(115,
+ Qp115, NewQp115,
+ {Qp113, Qp114, NewQp115, Qp116, Qp117,
+ Qp118, Qp119, Qp120, Qp121, Qp122, Qp123,
+ Qp124, Qp125, Qp126, Qp127, Qp128});
+?REMOVE_UNIQ_P_Qp128(116,
+ Qp116, NewQp116,
+ {Qp113, Qp114, Qp115, NewQp116, Qp117,
+ Qp118, Qp119, Qp120, Qp121, Qp122, Qp123,
+ Qp124, Qp125, Qp126, Qp127, Qp128});
+?REMOVE_UNIQ_P_Qp128(117,
+ Qp117, NewQp117,
+ {Qp113, Qp114, Qp115, Qp116, NewQp117,
+ Qp118, Qp119, Qp120, Qp121, Qp122, Qp123,
+ Qp124, Qp125, Qp126, Qp127, Qp128});
+?REMOVE_UNIQ_P_Qp128(118,
+ Qp118, NewQp118,
+ {Qp113, Qp114, Qp115, Qp116, Qp117,
+ NewQp118, Qp119, Qp120, Qp121, Qp122, Qp123,
+ Qp124, Qp125, Qp126, Qp127, Qp128});
+?REMOVE_UNIQ_P_Qp128(119,
+ Qp119, NewQp119,
+ {Qp113, Qp114, Qp115, Qp116, Qp117,
+ Qp118, NewQp119, Qp120, Qp121, Qp122, Qp123,
+ Qp124, Qp125, Qp126, Qp127, Qp128});
+?REMOVE_UNIQ_P_Qp128(120,
+ Qp120, NewQp120,
+ {Qp113, Qp114, Qp115, Qp116, Qp117,
+ Qp118, Qp119, NewQp120, Qp121, Qp122, Qp123,
+ Qp124, Qp125, Qp126, Qp127, Qp128});
+?REMOVE_UNIQ_P_Qp128(121,
+ Qp121, NewQp121,
+ {Qp113, Qp114, Qp115, Qp116, Qp117,
+ Qp118, Qp119, Qp120, NewQp121, Qp122, Qp123,
+ Qp124, Qp125, Qp126, Qp127, Qp128});
+?REMOVE_UNIQ_P_Qp128(122,
+ Qp122, NewQp122,
+ {Qp113, Qp114, Qp115, Qp116, Qp117,
+ Qp118, Qp119, Qp120, Qp121, NewQp122, Qp123,
+ Qp124, Qp125, Qp126, Qp127, Qp128});
+?REMOVE_UNIQ_P_Qp128(123,
+ Qp123, NewQp123,
+ {Qp113, Qp114, Qp115, Qp116, Qp117,
+ Qp118, Qp119, Qp120, Qp121, Qp122, NewQp123,
+ Qp124, Qp125, Qp126, Qp127, Qp128});
+?REMOVE_UNIQ_P_Qp128(124,
+ Qp124, NewQp124,
+ {Qp113, Qp114, Qp115, Qp116, Qp117,
+ Qp118, Qp119, Qp120, Qp121, Qp122, Qp123,
+ NewQp124, Qp125, Qp126, Qp127, Qp128});
+?REMOVE_UNIQ_P_Qp128(125,
+ Qp125, NewQp125,
+ {Qp113, Qp114, Qp115, Qp116, Qp117,
+ Qp118, Qp119, Qp120, Qp121, Qp122, Qp123,
+ Qp124, NewQp125, Qp126, Qp127, Qp128});
+?REMOVE_UNIQ_P_Qp128(126,
+ Qp126, NewQp126,
+ {Qp113, Qp114, Qp115, Qp116, Qp117,
+ Qp118, Qp119, Qp120, Qp121, Qp122, Qp123,
+ Qp124, Qp125, NewQp126, Qp127, Qp128});
+?REMOVE_UNIQ_P_Qp128(127,
+ Qp127, NewQp127,
+ {Qp113, Qp114, Qp115, Qp116, Qp117,
+ Qp118, Qp119, Qp120, Qp121, Qp122, Qp123,
+ Qp124, Qp125, Qp126, NewQp127, Qp128});
+?REMOVE_UNIQ_P_Qp128(128,
+ Qp128, NewQp128,
+ {Qp113, Qp114, Qp115, Qp116, Qp117,
+ Qp118, Qp119, Qp120, Qp121, Qp122, Qp123,
+ Qp124, Qp125, Qp126, Qp127, NewQp128}).
+
+-ifdef(TEST).
+-include_lib("eunit/include/eunit.hrl").
+
+-include("pqueue_test.hrl").
+
+module_test_() ->
+ {timeout, ?TEST_TIMEOUT, [
+ {"internal tests", ?_assertOk(test())}
+ ]}.
+
+long_test_() ->
+ test_condition([
+ {"proper tests", ?_assert(pqueue_proper:qc_pq4())}
+ ], ?CLOUDI_LONG_TEST_TIMEOUT).
+
+-endif.
+
+%%-------------------------------------------------------------------------
+%% @hidden
+%% remove a unique value from a queue based on a binary predicate,
+%% traversal order is undefined to keep it efficient (i.e., shouldn't matter)
+%% (based on the implementation of queue:filter/2
+%% which is under the Apache License 2.0)
+%%-------------------------------------------------------------------------
+
+-spec queue_remove_unique(F :: fun((any()) -> boolean()),
+ Q :: {list(), list()}) ->
+ {boolean(), {list(), list()}}.
+
+queue_remove_unique(Fun, {R0, F0} = Q)
+ when is_function(Fun, 1), is_list(R0), is_list(F0) ->
+ case queue_remove_unique_f(Fun, F0) of
+ {true, []} ->
+ {true, queue_r2f(R0)};
+ {true, F1} ->
+ {true, {R0, F1}};
+ {false, F1} ->
+ %true = F1 == F0,
+ case queue_remove_unique_f(Fun, R0) of % backwards
+ {true, []} ->
+ {true, queue_f2r(F1)};
+ {true, R1} ->
+ {true, {R1, F1}};
+ {false, _} ->
+ {false, Q}
+ end
+ end;
+queue_remove_unique(Fun, Q) ->
+ erlang:error(badarg, [Fun,Q]).
+
+% Call Fun in front to back order
+queue_remove_unique_f(_, [] = F) ->
+ {false, F};
+queue_remove_unique_f(Fun, F) ->
+ queue_remove_unique_f(F, [], F, Fun).
+
+queue_remove_unique_f([], _, F, _) ->
+ {false, F};
+queue_remove_unique_f([X | F0], F1, F, Fun) ->
+ case Fun(X) of
+ true ->
+ {true, lists:reverse(F1, F0)};
+ false ->
+ queue_remove_unique_f(F0, [X | F1], F, Fun)
+ end.
+
+-compile({inline, [{queue_r2f,1},{queue_f2r,1}]}).
+
+% Move half of elements from R to F, if there are at least three
+queue_r2f([]) ->
+ {[],[]};
+queue_r2f([_]=R) ->
+ {[],R};
+queue_r2f([X,Y]) ->
+ {[X],[Y]};
+queue_r2f(List) ->
+ {FF,RR} = lists:split(length(List) div 2 + 1, List),
+ {FF,lists:reverse(RR, [])}.
+
+% Move half of elements from F to R, if there are enough
+queue_f2r([]) ->
+ {[],[]};
+queue_f2r([_]=F) ->
+ {F,[]};
+queue_f2r([X,Y]) ->
+ {[Y],[X]};
+queue_f2r(List) ->
+ {FF,RR} = lists:split(length(List) div 2 + 1, List),
+ {lists:reverse(RR, []),FF}.
+
diff --git a/aoc2023/build/packages/pqueue/src/pqueue_test.hrl b/aoc2023/build/packages/pqueue/src/pqueue_test.hrl
new file mode 100644
index 0000000..cedffe0
--- /dev/null
+++ b/aoc2023/build/packages/pqueue/src/pqueue_test.hrl
@@ -0,0 +1,49 @@
+%-*-Mode:erlang;coding:utf-8;tab-width:4;c-basic-offset:4;indent-tabs-mode:()-*-
+% ex: set ft=erlang fenc=utf-8 sts=4 ts=4 sw=4 et nomod:
+%%%
+%%%------------------------------------------------------------------------
+%%% pqueue eunit common functionality
+%%%
+%%% MIT License
+%%%
+%%% Copyright (c) 2020 Michael Truog <mjtruog at protonmail dot com>
+%%%
+%%% Permission is hereby granted, free of charge, to any person obtaining a
+%%% copy of this software and associated documentation files (the "Software"),
+%%% to deal in the Software without restriction, including without limitation
+%%% the rights to use, copy, modify, merge, publish, distribute, sublicense,
+%%% and/or sell copies of the Software, and to permit persons to whom the
+%%% Software is furnished to do so, subject to the following conditions:
+%%%
+%%% The above copyright notice and this permission notice shall be included in
+%%% all copies or substantial portions of the Software.
+%%%
+%%% THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+%%% IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+%%% FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+%%% AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+%%% LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+%%% FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+%%% DEALINGS IN THE SOFTWARE.
+%%%
+%%%------------------------------------------------------------------------
+
+-ifndef(_assertOk).
+-define(_assertOk(Expr), ?_assertEqual(ok, Expr)).
+-endif.
+
+-ifdef(CLOUDI_TEST_TIMEOUT).
+-define(TEST_TIMEOUT, ?CLOUDI_TEST_TIMEOUT). % seconds
+-else.
+-define(TEST_TIMEOUT, 10). % seconds
+-endif.
+-ifndef(CLOUDI_LONG_TEST_TIMEOUT).
+-define(CLOUDI_LONG_TEST_TIMEOUT, 60). % minutes
+-endif.
+
+test_condition(_, 0) ->
+ [];
+test_condition(L, LongTestTimeout)
+ when LongTestTimeout > 0 ->
+ {timeout, LongTestTimeout * 60, L}.
+