%------------------------------------------------------------------------------
% File : Drodi---4.1.1
% Problem : SWV813-1 : TPTP v9.3.1. Released v4.1.0.
% Transfm : none
% Format : tptp:raw
% Command : drodi -timeout(300) /export/starexec/sandbox2/benchmark/theBenchmark.p
% Computer : n009.cluster.edu
% Model : x86_64 x86_64
% CPU : Intel(R) Xeon(R) CPU E5-2620 v4 2.10GHz
% Memory : 8046.5625MB
% OS : Linux 6.8.0-71-generic
% CPULimit : 300s
% WCLimit : 300s
% DateTime : Thu Sep 24 02:49:36 PM UTC 2026
% Result : Unsatisfiable 11.88s 2.05s
% Output : CNFRefutation 11.88s
% Verified :
% SZS Type : Refutation
% Derivation depth : 6
% Number of leaves : 18
% Syntax : Number of formulae : 61 ( 25 unt; 5 def)
% Number of atoms : 109 ( 53 equ)
% Maximal formula atoms : 4 ( 1 avg)
% Number of connectives : 91 ( 43 ~; 43 |; 0 &)
% ( 5 <=>; 0 =>; 0 <=; 0 <~>)
% Maximal formula depth : 11 ( 4 avg)
% Maximal term depth : 7 ( 2 avg)
% Number of predicates : 8 ( 6 usr; 6 prp; 0-3 aty)
% Number of functors : 32 ( 32 usr; 18 con; 0-3 aty)
% Number of variables : 102 ( 102 !; 0 ?)
% Comments :
%------------------------------------------------------------------------------
fof(f123,axiom,
! [V_a,V_b,T_a,V_c,V_d] :
( V_b = V_d
| V_b = V_c
| c_Set_Oinsert(V_a,c_Set_Oinsert(V_b,c_Orderings_Obot__class_Obot(tc_fun(T_a,tc_bool)),T_a),T_a) != c_Set_Oinsert(V_c,c_Set_Oinsert(V_d,c_Orderings_Obot__class_Obot(tc_fun(T_a,tc_bool)),T_a),T_a) ),
file('/export/starexec/sandbox2/benchmark/theBenchmark.p') ).
fof(f227,axiom,
! [V_K,V_X,V_K_H,V_A] : c_Set_Oinsert(c_Message_Omsg_OKey(V_K),c_Set_Oinsert(c_Message_Omsg_OCrypt(V_X,V_K_H),V_A,tc_Message_Omsg),tc_Message_Omsg) = c_Set_Oinsert(c_Message_Omsg_OCrypt(V_X,V_K_H),c_Set_Oinsert(c_Message_Omsg_OKey(V_K),V_A,tc_Message_Omsg),tc_Message_Omsg),
file('/export/starexec/sandbox2/benchmark/theBenchmark.p') ).
fof(f427,axiom,
! [V_nat_H,V_msg_H,V_nat] : c_Message_Omsg_OCrypt(V_nat_H,V_msg_H) != c_Message_Omsg_OKey(V_nat),
file('/export/starexec/sandbox2/benchmark/theBenchmark.p') ).
fof(f433,axiom,
! [V_X,V_evs,V_A,V_B] :
( ~ c_in(c_Event_Oevent_OSays(V_A,V_B,V_X),c_List_Oset(V_evs,tc_Event_Oevent),tc_Event_Oevent)
| c_in(V_X,c_Message_Oparts(c_Event_Oknows(c_Message_Oagent_OSpy,V_evs)),tc_Message_Omsg) ),
file('/export/starexec/sandbox2/benchmark/theBenchmark.p') ).
fof(f481,axiom,
! [V_nat_H,V_agent] : c_Message_Omsg_ONonce(V_nat_H) != c_Message_Omsg_OAgent(V_agent),
file('/export/starexec/sandbox2/benchmark/theBenchmark.p') ).
fof(f494,axiom,
! [V_X,V_B,V_K,V_A,V_evs,V_NA] :
( ~ c_in(c_Message_Omsg_OCrypt(hAPP(c_Public_OshrK,V_A),c_Message_Omsg_OMPair(V_NA,c_Message_Omsg_OMPair(c_Message_Omsg_OAgent(V_B),c_Message_Omsg_OMPair(c_Message_Omsg_OKey(V_K),V_X)))),c_Message_Oparts(c_Event_Oknows(c_Message_Oagent_OSpy,V_evs)),tc_Message_Omsg)
| c_in(V_A,c_Event_Obad,tc_Message_Oagent)
| ~ c_in(V_evs,c_NS__Shared__Mirabelle_Ons__shared,tc_List_Olist(tc_Event_Oevent))
| V_X = c_Message_Omsg_OCrypt(hAPP(c_Public_OshrK,V_B),c_Message_Omsg_OMPair(c_Message_Omsg_OKey(V_K),c_Message_Omsg_OAgent(V_A))) ),
file('/export/starexec/sandbox2/benchmark/theBenchmark.p') ).
fof(f527,axiom,
! [V_nat,V_msg,V_nat_H,V_msg_H] :
( V_msg = V_msg_H
| c_Message_Omsg_OCrypt(V_nat,V_msg) != c_Message_Omsg_OCrypt(V_nat_H,V_msg_H) ),
file('/export/starexec/sandbox2/benchmark/theBenchmark.p') ).
fof(f538,axiom,
! [V_msg1,V_msg2,V_msg1_H,V_msg2_H] :
( V_msg2 = V_msg2_H
| c_Message_Omsg_OMPair(V_msg1,V_msg2) != c_Message_Omsg_OMPair(V_msg1_H,V_msg2_H) ),
file('/export/starexec/sandbox2/benchmark/theBenchmark.p') ).
fof(f571,negated_conjecture,
~ c_in(v_A,c_Event_Obad,tc_Message_Oagent),
file('/export/starexec/sandbox2/benchmark/theBenchmark.p') ).
fof(f573,negated_conjecture,
c_in(v_evs3,c_NS__Shared__Mirabelle_Ons__shared,tc_List_Olist(tc_Event_Oevent)),
file('/export/starexec/sandbox2/benchmark/theBenchmark.p') ).
fof(f575,negated_conjecture,
c_in(c_Event_Oevent_OSays(v_S,v_Aa,c_Message_Omsg_OCrypt(hAPP(c_Public_OshrK,v_Aa),c_Message_Omsg_OMPair(c_Message_Omsg_ONonce(v_NA),c_Message_Omsg_OMPair(c_Message_Omsg_OAgent(v_Ba),c_Message_Omsg_OMPair(c_Message_Omsg_OKey(v_Ka),v_X))))),c_List_Oset(v_evs3,tc_Event_Oevent),tc_Event_Oevent),
file('/export/starexec/sandbox2/benchmark/theBenchmark.p') ).
fof(f578,negated_conjecture,
v_A = v_Aa,
file('/export/starexec/sandbox2/benchmark/theBenchmark.p') ).
fof(f580,negated_conjecture,
c_Message_Omsg_OCrypt(v_K,c_Message_Omsg_OMPair(c_Message_Omsg_ONonce(v_NB),c_Message_Omsg_ONonce(v_NB))) = v_X,
file('/export/starexec/sandbox2/benchmark/theBenchmark.p') ).
fof(f792,plain,
! [V_b,V_d] :
( V_b = V_d
| ! [V_c] :
( V_b = V_c
| ! [V_a,T_a] : c_Set_Oinsert(V_a,c_Set_Oinsert(V_b,c_Orderings_Obot__class_Obot(tc_fun(T_a,tc_bool)),T_a),T_a) != c_Set_Oinsert(V_c,c_Set_Oinsert(V_d,c_Orderings_Obot__class_Obot(tc_fun(T_a,tc_bool)),T_a),T_a) ) ),
inference(miniscoping,[status(thm)],[f123]) ).
fof(f793,plain,
! [X0,X1,X2,X3,X4] :
( X1 = X4
| X1 = X3
| c_Set_Oinsert(X0,c_Set_Oinsert(X1,c_Orderings_Obot__class_Obot(tc_fun(X2,tc_bool)),X2),X2) != c_Set_Oinsert(X3,c_Set_Oinsert(X4,c_Orderings_Obot__class_Obot(tc_fun(X2,tc_bool)),X2),X2) ),
inference(cnf_transformation,[status(thm)],[f792]) ).
fof(f931,plain,
! [X0,X1,X2,X3] : c_Set_Oinsert(c_Message_Omsg_OKey(X0),c_Set_Oinsert(c_Message_Omsg_OCrypt(X1,X2),X3,tc_Message_Omsg),tc_Message_Omsg) = c_Set_Oinsert(c_Message_Omsg_OCrypt(X1,X2),c_Set_Oinsert(c_Message_Omsg_OKey(X0),X3,tc_Message_Omsg),tc_Message_Omsg),
inference(cnf_transformation,[status(thm)],[f227]) ).
fof(f1224,plain,
! [X0,X1,X2] : c_Message_Omsg_OCrypt(X0,X1) != c_Message_Omsg_OKey(X2),
inference(cnf_transformation,[status(thm)],[f427]) ).
fof(f1233,plain,
! [V_X,V_evs] :
( ! [V_A,V_B] : ~ c_in(c_Event_Oevent_OSays(V_A,V_B,V_X),c_List_Oset(V_evs,tc_Event_Oevent),tc_Event_Oevent)
| c_in(V_X,c_Message_Oparts(c_Event_Oknows(c_Message_Oagent_OSpy,V_evs)),tc_Message_Omsg) ),
inference(miniscoping,[status(thm)],[f433]) ).
fof(f1234,plain,
! [X0,X1,X2,X3] :
( ~ c_in(c_Event_Oevent_OSays(X2,X3,X0),c_List_Oset(X1,tc_Event_Oevent),tc_Event_Oevent)
| c_in(X0,c_Message_Oparts(c_Event_Oknows(c_Message_Oagent_OSpy,X1)),tc_Message_Omsg) ),
inference(cnf_transformation,[status(thm)],[f1233]) ).
fof(f1309,plain,
! [X0,X1] : c_Message_Omsg_ONonce(X0) != c_Message_Omsg_OAgent(X1),
inference(cnf_transformation,[status(thm)],[f481]) ).
fof(f1330,plain,
! [V_X,V_B,V_K,V_A,V_evs] :
( ! [V_NA] : ~ c_in(c_Message_Omsg_OCrypt(hAPP(c_Public_OshrK,V_A),c_Message_Omsg_OMPair(V_NA,c_Message_Omsg_OMPair(c_Message_Omsg_OAgent(V_B),c_Message_Omsg_OMPair(c_Message_Omsg_OKey(V_K),V_X)))),c_Message_Oparts(c_Event_Oknows(c_Message_Oagent_OSpy,V_evs)),tc_Message_Omsg)
| c_in(V_A,c_Event_Obad,tc_Message_Oagent)
| ~ c_in(V_evs,c_NS__Shared__Mirabelle_Ons__shared,tc_List_Olist(tc_Event_Oevent))
| V_X = c_Message_Omsg_OCrypt(hAPP(c_Public_OshrK,V_B),c_Message_Omsg_OMPair(c_Message_Omsg_OKey(V_K),c_Message_Omsg_OAgent(V_A))) ),
inference(miniscoping,[status(thm)],[f494]) ).
fof(f1331,plain,
! [X0,X1,X2,X3,X4,X5] :
( ~ c_in(c_Message_Omsg_OCrypt(hAPP(c_Public_OshrK,X3),c_Message_Omsg_OMPair(X5,c_Message_Omsg_OMPair(c_Message_Omsg_OAgent(X1),c_Message_Omsg_OMPair(c_Message_Omsg_OKey(X2),X0)))),c_Message_Oparts(c_Event_Oknows(c_Message_Oagent_OSpy,X4)),tc_Message_Omsg)
| c_in(X3,c_Event_Obad,tc_Message_Oagent)
| ~ c_in(X4,c_NS__Shared__Mirabelle_Ons__shared,tc_List_Olist(tc_Event_Oevent))
| X0 = c_Message_Omsg_OCrypt(hAPP(c_Public_OshrK,X1),c_Message_Omsg_OMPair(c_Message_Omsg_OKey(X2),c_Message_Omsg_OAgent(X3))) ),
inference(cnf_transformation,[status(thm)],[f1330]) ).
fof(f1374,plain,
! [V_msg,V_msg_H] :
( V_msg = V_msg_H
| ! [V_nat,V_nat_H] : c_Message_Omsg_OCrypt(V_nat,V_msg) != c_Message_Omsg_OCrypt(V_nat_H,V_msg_H) ),
inference(miniscoping,[status(thm)],[f527]) ).
fof(f1375,plain,
! [X0,X1,X2,X3] :
( X1 = X3
| c_Message_Omsg_OCrypt(X0,X1) != c_Message_Omsg_OCrypt(X2,X3) ),
inference(cnf_transformation,[status(thm)],[f1374]) ).
fof(f1388,plain,
! [V_msg2,V_msg2_H] :
( V_msg2 = V_msg2_H
| ! [V_msg1,V_msg1_H] : c_Message_Omsg_OMPair(V_msg1,V_msg2) != c_Message_Omsg_OMPair(V_msg1_H,V_msg2_H) ),
inference(miniscoping,[status(thm)],[f538]) ).
fof(f1389,plain,
! [X0,X1,X2,X3] :
( X1 = X3
| c_Message_Omsg_OMPair(X0,X1) != c_Message_Omsg_OMPair(X2,X3) ),
inference(cnf_transformation,[status(thm)],[f1388]) ).
fof(f1429,plain,
~ c_in(v_A,c_Event_Obad,tc_Message_Oagent),
inference(cnf_transformation,[status(thm)],[f571]) ).
fof(f1431,plain,
c_in(v_evs3,c_NS__Shared__Mirabelle_Ons__shared,tc_List_Olist(tc_Event_Oevent)),
inference(cnf_transformation,[status(thm)],[f573]) ).
fof(f1433,plain,
c_in(c_Event_Oevent_OSays(v_S,v_Aa,c_Message_Omsg_OCrypt(hAPP(c_Public_OshrK,v_Aa),c_Message_Omsg_OMPair(c_Message_Omsg_ONonce(v_NA),c_Message_Omsg_OMPair(c_Message_Omsg_OAgent(v_Ba),c_Message_Omsg_OMPair(c_Message_Omsg_OKey(v_Ka),v_X))))),c_List_Oset(v_evs3,tc_Event_Oevent),tc_Event_Oevent),
inference(cnf_transformation,[status(thm)],[f575]) ).
fof(f1436,plain,
v_A = v_Aa,
inference(cnf_transformation,[status(thm)],[f578]) ).
fof(f1438,plain,
c_Message_Omsg_OCrypt(v_K,c_Message_Omsg_OMPair(c_Message_Omsg_ONonce(v_NB),c_Message_Omsg_ONonce(v_NB))) = v_X,
inference(cnf_transformation,[status(thm)],[f580]) ).
fof(f1518,plain,
~ c_in(v_Aa,c_Event_Obad,tc_Message_Oagent),
inference(backward_demodulation,[status(thm)],[f1436,f1429]) ).
fof(f1662,plain,
! [X0] : v_X != c_Message_Omsg_OKey(X0),
inference(paramodulation,[status(thm)],[f1438,f1224]) ).
fof(f2109,plain,
! [X0,X1] : c_Set_Oinsert(c_Message_Omsg_OKey(X0),c_Set_Oinsert(v_X,X1,tc_Message_Omsg),tc_Message_Omsg) = c_Set_Oinsert(c_Message_Omsg_OCrypt(v_K,c_Message_Omsg_OMPair(c_Message_Omsg_ONonce(v_NB),c_Message_Omsg_ONonce(v_NB))),c_Set_Oinsert(c_Message_Omsg_OKey(X0),X1,tc_Message_Omsg),tc_Message_Omsg),
inference(paramodulation,[status(thm)],[f1438,f931]) ).
fof(f2129,plain,
! [X0,X1] : c_Set_Oinsert(c_Message_Omsg_OKey(X0),c_Set_Oinsert(v_X,X1,tc_Message_Omsg),tc_Message_Omsg) = c_Set_Oinsert(v_X,c_Set_Oinsert(c_Message_Omsg_OKey(X0),X1,tc_Message_Omsg),tc_Message_Omsg),
inference(forward_demodulation,[status(thm)],[f1438,f2109]) ).
fof(f4095,plain,
c_in(c_Message_Omsg_OCrypt(hAPP(c_Public_OshrK,v_Aa),c_Message_Omsg_OMPair(c_Message_Omsg_ONonce(v_NA),c_Message_Omsg_OMPair(c_Message_Omsg_OAgent(v_Ba),c_Message_Omsg_OMPair(c_Message_Omsg_OKey(v_Ka),v_X)))),c_Message_Oparts(c_Event_Oknows(c_Message_Oagent_OSpy,v_evs3)),tc_Message_Omsg),
inference(resolution,[status(thm)],[f1234,f1433]) ).
fof(f4414,plain,
! [X0] :
( v_X = c_Message_Omsg_OKey(X0)
| v_X = v_X ),
inference(resolution,[status(thm)],[f793,f2129]) ).
fof(f4472,definition,
( sQ12_spl
<=> v_X = v_X ),
introduced(definition,[new_symbols(definition,[sQ12_spl])],[split_symbol_definition]) ).
fof(f4475,definition,
! [X0] :
( sQ13_spl
<=> v_X = c_Message_Omsg_OKey(X0) ),
introduced(definition,[new_symbols(definition,[sQ13_spl])],[split_symbol_definition]) ).
fof(f4476,plain,
! [X0] :
( ~ sQ13_spl
| v_X = c_Message_Omsg_OKey(X0) ),
inference(component_clause,[status(thm)],[f4475]) ).
fof(f4478,plain,
( sQ13_spl
| sQ12_spl ),
inference(split_clause,[status(thm)],[f4414,f4472,f4475]) ).
fof(f4678,plain,
( ~ sQ13_spl
| $false ),
inference(forward_subsumption_resolution,[status(thm)],[f4476,f1662]) ).
fof(f4679,plain,
~ sQ13_spl,
inference(contradiction_clause,[status(thm)],[f4678]) ).
fof(f4765,plain,
! [X0,X1] :
( c_Message_Omsg_OMPair(c_Message_Omsg_ONonce(v_NB),c_Message_Omsg_ONonce(v_NB)) = X1
| v_X != c_Message_Omsg_OCrypt(X0,X1) ),
inference(paramodulation,[status(thm)],[f1438,f1375]) ).
fof(f5847,plain,
! [X0,X1,X2,X3,X4] :
( ~ c_in(c_Message_Omsg_OCrypt(hAPP(c_Public_OshrK,X3),c_Message_Omsg_OMPair(X4,c_Message_Omsg_OMPair(c_Message_Omsg_OAgent(X1),c_Message_Omsg_OMPair(c_Message_Omsg_OKey(X2),X0)))),c_Message_Oparts(c_Event_Oknows(c_Message_Oagent_OSpy,v_evs3)),tc_Message_Omsg)
| c_in(X3,c_Event_Obad,tc_Message_Oagent)
| X0 = c_Message_Omsg_OCrypt(hAPP(c_Public_OshrK,X1),c_Message_Omsg_OMPair(c_Message_Omsg_OKey(X2),c_Message_Omsg_OAgent(X3))) ),
inference(resolution,[status(thm)],[f1331,f1431]) ).
fof(f8124,plain,
( c_in(v_Aa,c_Event_Obad,tc_Message_Oagent)
| v_X = c_Message_Omsg_OCrypt(hAPP(c_Public_OshrK,v_Ba),c_Message_Omsg_OMPair(c_Message_Omsg_OKey(v_Ka),c_Message_Omsg_OAgent(v_Aa))) ),
inference(resolution,[status(thm)],[f5847,f4095]) ).
fof(f8126,definition,
( sQ47_spl
<=> v_X = c_Message_Omsg_OCrypt(hAPP(c_Public_OshrK,v_Ba),c_Message_Omsg_OMPair(c_Message_Omsg_OKey(v_Ka),c_Message_Omsg_OAgent(v_Aa))) ),
introduced(definition,[new_symbols(definition,[sQ47_spl])],[split_symbol_definition]) ).
fof(f8127,plain,
( ~ sQ47_spl
| v_X = c_Message_Omsg_OCrypt(hAPP(c_Public_OshrK,v_Ba),c_Message_Omsg_OMPair(c_Message_Omsg_OKey(v_Ka),c_Message_Omsg_OAgent(v_Aa))) ),
inference(component_clause,[status(thm)],[f8126]) ).
fof(f8129,definition,
( sQ48_spl
<=> c_in(v_Aa,c_Event_Obad,tc_Message_Oagent) ),
introduced(definition,[new_symbols(definition,[sQ48_spl])],[split_symbol_definition]) ).
fof(f8130,plain,
( ~ sQ48_spl
| c_in(v_Aa,c_Event_Obad,tc_Message_Oagent) ),
inference(component_clause,[status(thm)],[f8129]) ).
fof(f8132,plain,
( sQ48_spl
| sQ47_spl ),
inference(split_clause,[status(thm)],[f8124,f8126,f8129]) ).
fof(f8141,plain,
( ~ sQ47_spl
| c_Message_Omsg_OMPair(c_Message_Omsg_ONonce(v_NB),c_Message_Omsg_ONonce(v_NB)) = c_Message_Omsg_OMPair(c_Message_Omsg_OKey(v_Ka),c_Message_Omsg_OAgent(v_Aa))
| v_X != v_X ),
inference(paramodulation,[status(thm)],[f8127,f4765]) ).
fof(f8165,definition,
( sQ51_spl
<=> c_Message_Omsg_OMPair(c_Message_Omsg_ONonce(v_NB),c_Message_Omsg_ONonce(v_NB)) = c_Message_Omsg_OMPair(c_Message_Omsg_OKey(v_Ka),c_Message_Omsg_OAgent(v_Aa)) ),
introduced(definition,[new_symbols(definition,[sQ51_spl])],[split_symbol_definition]) ).
fof(f8166,plain,
( ~ sQ51_spl
| c_Message_Omsg_OMPair(c_Message_Omsg_ONonce(v_NB),c_Message_Omsg_ONonce(v_NB)) = c_Message_Omsg_OMPair(c_Message_Omsg_OKey(v_Ka),c_Message_Omsg_OAgent(v_Aa)) ),
inference(component_clause,[status(thm)],[f8165]) ).
fof(f8168,plain,
( ~ sQ47_spl
| sQ51_spl
| ~ sQ12_spl ),
inference(split_clause,[status(thm)],[f8141,f4472,f8165,f8126]) ).
fof(f8176,plain,
( ~ sQ48_spl
| $false ),
inference(forward_subsumption_resolution,[status(thm)],[f8130,f1518]) ).
fof(f8177,plain,
~ sQ48_spl,
inference(contradiction_clause,[status(thm)],[f8176]) ).
fof(f8463,plain,
( ~ sQ51_spl
| c_Message_Omsg_ONonce(v_NB) = c_Message_Omsg_OAgent(v_Aa) ),
inference(resolution,[status(thm)],[f8166,f1389]) ).
fof(f8494,plain,
( ~ sQ51_spl
| $false ),
inference(forward_subsumption_resolution,[status(thm)],[f8463,f1309]) ).
fof(f8495,plain,
~ sQ51_spl,
inference(contradiction_clause,[status(thm)],[f8494]) ).
fof(f8496,plain,
$false,
inference(sat_refutation,[status(thm)],[f4478,f4679,f8132,f8168,f8177,f8495]) ).
%------------------------------------------------------------------------------
%----ORIGINAL SYSTEM OUTPUT
% 0.00/0.05 % Problem : SWV813-1 : TPTP v9.3.1. Released v4.1.0.
% 0.00/0.07 % Command : drodi -timeout(300) /export/starexec/sandbox2/benchmark/theBenchmark.p
% 0.16/0.43 % Computer : n009.cluster.edu
% 0.16/0.43 % Model : x86_64 x86_64
% 0.16/0.43 % CPU : Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz
% 0.16/0.43 % Memory : 8046.5625MB
% 0.16/0.43 % OS : Linux 6.8.0-71-generic
% 0.16/0.43 % CPULimit : 300
% 0.16/0.43 % WCLimit : 300
% 0.16/0.43 % DateTime : Mon Sep 21 09:26:57 UTC 2026
% 0.16/0.43 % CPUTime :
% 0.25/0.50 % Drodi V4.1.1
% 11.88/2.05 % Refutation found
% 11.88/2.05 % SZS status Unsatisfiable for theBenchmark: Theory is unsatisfiable
% 11.88/2.05 % SZS output start CNFRefutation for theBenchmark
% See solution above
% 1.68/2.13 % Elapsed time: 1.678128 seconds
% 1.68/2.13 % CPU time: 12.543980 seconds
% 1.68/2.13 % Total memory used: 298.880 MB
% 1.68/2.13 % Net memory used: 291.812 MB
%------------------------------------------------------------------------------