From 92c49ac708e04e545da6e7aafe91cac8f223f475 Mon Sep 17 00:00:00 2001 From: Timotej Lazar Date: Mon, 27 Feb 2017 18:35:01 +0100 Subject: Prolog: add bugs files for the first six groups --- prolog/problems/lists/dup_2/bugs.json | 537 ++++++++++++++++++++++++++++++++++ 1 file changed, 537 insertions(+) create mode 100644 prolog/problems/lists/dup_2/bugs.json (limited to 'prolog/problems/lists/dup_2') diff --git a/prolog/problems/lists/dup_2/bugs.json b/prolog/problems/lists/dup_2/bugs.json new file mode 100644 index 0000000..c62360a --- /dev/null +++ b/prolog/problems/lists/dup_2/bugs.json @@ -0,0 +1,537 @@ +{ + "patterns": [ + "(clause (head (compound (functor \"dup\") (args (list (t variable))))) (compound (functor \"dup\") (args variable)))", + "(clause (head (compound (functor \"dup\") (args (args variable)))) (binop variable \"=\"))", + "(clause (head (compound (functor \"dup\") (args (list (h variable)) (args (list (h variable)))))))", + "(clause (head (compound (functor \"dup\") (args \"[]\"))))", + "(clause (head (compound (functor \"dup\") (args (args (list (h variable) (t (list (h variable)))))))))", + "(clause (head (compound (functor \"dup\") (args (list (h variable)) (args (list (t (list (h variable)))))))))", + "(clause (head (compound (functor \"dup\") (args \"[]\" (args \"[]\")))))", + "(clause (head (compound (functor \"dup\") (args (args \"[]\")))))", + "(clause (binop \"=\" (list (h variable) (t (list (h variable))))))", + "(clause (head (compound (functor \"dup\") (args (list (h variable))))) (binop \"=\" (list (h variable))))", + "(clause (binop \"=\" (list (h variable))) (binop \"=\" (list (h variable))))", + "(clause (head (compound (functor \"dup\") (args (list (h variable))))) (binop \"=\" (list (t (list (h variable))))))", + "(clause (head (compound (functor \"dup\") (args variable))) (binop variable \"=\"))", + "(clause (head (compound (functor \"dup\") (args (args (list (t (list (t variable)))))))) (compound (functor \"dup\") (args (args variable))))", + "(clause (compound (functor \"dup\") (args (args variable))) (binop \"=\" (list (t (list (t variable))))))", + "(clause (binop \"=\" \"[]\"))", + "(clause (binop variable \"=\" \"[]\"))", + "(clause (binop \"=\" (list (h variable))) (binop \"=\" (list (t (list (h variable))))))", + "(clause (binop \"=\" (list (t variable))) (compound (functor \"dup\") (args variable)))", + "(clause (binop variable \"=\"))", + "(clause (head (compound (functor \"dup\") (args (args variable)))) (compound (functor \"conc\") (args (args (args variable)))))", + "(clause (head (compound (functor \"dup\") (args (args variable)))) (compound (functor \"dup\") (args (args variable))))", + "(clause (head (compound (functor \"dup\") (args (args variable)))))", + "(clause (compound (functor \"dup\") (args (args variable))) (binop \"=\" (list (t variable))))", + "(clause (binop \"=\" (list (h variable))))", + "(clause (head (compound (functor \"dup\") (args (list (h variable))))))", + "(clause (binop variable \"=\") (binop \"=\" (list (t variable))))", + "(clause (head (compound (functor \"dup\") (args (list (h variable))))) (compound (functor \"conc\") (args (list (h variable)))))", + "(clause (binop \"=\" (list (t variable))))", + "(clause (head (compound (functor \"dup\") (args \"[]\" (args variable)))))", + "(clause (head (compound (functor \"dup\") (args (list (t \"[]\"))))))", + "(clause (head (compound (functor \"dup\") (args (list (h variable) (t \"[]\"))))))", + "(clause (head (compound (functor \"dup\") (args (list (t variable))))) (binop variable \"=\"))", + "(clause (compound (functor \"dup\") (args (args variable))) (compound (functor \"conc\") (args (args variable))))", + "(clause (binop \"=\" (list (t (list (t variable))))) (compound (functor \"dup\") (args (args variable))))", + "(clause (head (compound (functor \"dup\") (args (list (t variable))))) (binop \"=\" (list (t (list (t variable))))))", + "(clause (compound (functor \"dup\") (args (args variable))))", + "(clause (head (compound (functor \"dup\") (args (list (t \"[]\")) (args (list (h variable)))))))", + "(clause (head (compound (functor \"dup\") (args (args (list (h variable) (t variable)))))))", + "(clause (binop \"=\" (list (t (list (h variable))))))", + "(clause (binop variable \"=\") (compound (functor \"dup\") (args (args variable))))", + "(clause (head (compound (functor \"dup\") (args (list (t variable)) (args (list (t (list (t variable)))))))))", + "(clause (binop variable \"=\") (binop variable \"=\"))", + "(clause (head (compound (functor \"dup\") (args (list (h variable))))) (compound (functor \"conc\") (args variable)))", + "(clause (head (compound (functor \"dup\") (args (list (h variable)) (args (list (t variable)))))))", + "(clause (binop variable \"=\") (binop \"=\" (list (h variable))))", + "(clause (head (compound (functor \"dup\") (args (list (t \"[]\")) (args (list (t (list (h variable)))))))))", + "(clause (compound (functor \"conc\") (args variable (args variable))))", + "(clause (head (compound (functor \"dup\") (args variable (args (list (h variable)))))))", + "(clause (binop \"=\" (list (t (list (t variable))))) (compound (functor \"dup\") (args variable)))", + "(clause (head (compound (functor \"dup\") (args (list (t variable))))))", + "(clause (head (compound (functor \"dup\") (args (list (h variable))))) (compound (functor \"dup\") (args (args (list (h variable))))))", + "(clause (compound (functor \"dup\") (args (args (list (h variable) (t (list (h variable))))))))", + "(clause (compound (functor \"conc\") (args (list (h variable) (t (list (h variable)))))))", + "(clause (head (compound (functor \"dup\") (args (list (h variable))))) (compound (functor \"conc\") (args (list (t (list (h variable)))))))", + "(clause (head (compound (functor \"dup\") (args variable (args (list (t (list (h variable)))))))))", + "(clause (head (compound (functor \"dup\") (args (list (h variable))))) (compound (functor \"conc\") (args (args (list (h variable))))))", + "(clause (binop \"=\" (list (t variable))) (binop \"=\" (list (t (list (t variable))))))", + "(clause (head (compound (functor \"dup\") (args (args (list (t variable)))))) (compound (functor \"dup\") (args (args variable))))", + "(clause (binop \"=\" (list (h variable) (t variable))))", + "(clause (binop \"=\" variable))", + "(clause (head (compound (functor \"dup\") (args (list (h variable))))) (compound (functor \"dup\") (args variable)))", + "(clause (compound (functor \"dup\") (args (args variable))) (compound (functor \"conc\") (args (args (args variable)))))", + "(clause (compound (functor \"dup\") (args (args variable))) (compound (functor \"conc\") (args variable)))", + "(clause (head (compound (functor \"dup\") (args (args (list (t (list (t variable)))))))))", + "(clause (binop \"=\" (list (t variable))) (binop variable \"=\"))", + "(clause (head (compound (functor \"dup\") (args (list (h variable))))) (compound (functor \"conc\") (args (args variable))))", + "(clause (head (compound (functor \"dup\") (args (list (h variable))))) (binop \"=\" (list (t variable))))", + "(clause (compound (functor \"conc\") (args (args (args variable)))) (compound (functor \"dup\") (args (args variable))))", + "(clause (head (compound (functor \"dup\") (args (args (list (h variable)))))))", + "(clause (head (compound (functor \"dup\") (args (list (h variable)) (args (list (t (list (t \"[]\")))))))))", + "(clause (head (compound (functor \"dup\") (args (list (h variable))))) (binop \"is\" (list (h variable))))", + "(clause (binop \"=\" (list (t variable))) (compound (functor \"dup\") (args (args variable))))", + "(clause (head (compound (functor \"dup\") (args (args (list (h variable) (t (list (t \"[]\")))))))))", + "(clause (head (compound (functor \"dup\") (args (args variable)))) (binop variable \"is\"))", + "(clause (head (compound (functor \"dup\") (args (list (h variable))))) (compound (functor \"dup\") (args (args (list (t (list (h variable))))))))", + "(clause (binop variable \"=\") (compound (functor \"dup\") (args variable)))", + "(clause (head (compound (functor \"dup\") (args variable))) (binop \"=\" variable))", + "(clause (head (compound (functor \"dup\") (args (args (list (t (list (h variable) (t \"[]\")))))))))", + "(clause (head (compound (functor \"dup\") (args (args (list (t (list (t variable)))))))) (compound (functor \"dup\") (args variable)))", + "(clause (compound (functor \"conc\") (args (list (h variable)) (args (list (h variable))))))", + "(clause (head (compound (functor \"dup\") (args (args (list (t (list (t \"[]\")))))))))", + "(clause (head (compound (functor \"dup\") (args (list (t \"[]\")) (args variable)))))", + "(clause (head (compound (functor \"dup\") (args (args (list (h variable)))))) (binop \"=\" (list (h variable))))", + "(clause (head (compound (functor \"dup\") (args variable))) (binop \"=\" (list (t variable))))", + "(clause (head (compound (functor \"dup\") (args (list (t \"[]\")) (args (list (t (list (t \"[]\")))))))))", + "(clause (head (compound (functor \"dup\") (args (list (t variable))))) (binop \"=\" (list (t variable))))", + "(clause (head (compound (functor \"dup\") (args (args (list (t variable)))))))", + "(clause (binop variable \"=\") (binop \"=\" variable))", + "(clause (head (compound (functor \"dup\") (args (args (list (t variable)))))) (binop variable \"=\"))", + "(clause (compound (functor \"conc\") (args (args variable))) (compound (functor \"conc\") (args (args variable))))", + "(clause (binop \"=\" (list (t (list (h variable))))) (binop \"=\" (list (h variable))))", + "(clause (head (compound (functor \"dup\") (args (list (h variable))))) (binop variable \"=\"))", + "(clause (binop \"=\" (list (t (list (h variable))))) (binop \"=\" (list (t (list (h variable))))))", + "(clause (binop \"=\" (list (t variable))) (binop \"=\" (list (t variable))))", + "(clause (head (compound (functor \"dup\") (args variable))) (compound (functor \"dup\") (args variable)))", + "(clause (head (compound (functor \"dup\") (args (list (t variable))))) (compound (functor \"dup\") (args (list (h variable)))))", + "(clause (compound (functor \"conc\") (args (args (args variable)))) (compound (functor \"conc\") (args (args (args variable)))))", + "(clause (head (compound (functor \"dup\") (args (args variable)))) (compound (functor \"dup\") (args variable)))", + "(clause (head (compound (functor \"dup\") (args (args variable)))) (binop \"=\" (list (t (list (t variable))))))", + "(clause (head (compound (functor \"dup\") (args (list (h variable))))) (binop \"is\" (list (t variable))))", + "(clause (head (compound (functor \"dup\") (args (list (t \"[]\")) (args (list (t variable)))))))", + "(clause (compound (functor \"dup\") (args variable (args variable))))", + "(clause (head (compound (functor \"dup\") (args variable))) (compound (functor \"conc\") (args (args variable))))", + "(clause (compound (functor \"conc\") (args (list (h variable)))) (compound (functor \"conc\") (args (list (h variable)))))", + "(clause (compound (functor \"dup\") (args variable)) (binop \"=\" (list (t (list (t variable))))))", + "(clause (head (compound (functor \"dup\") (args variable))) (compound (functor \"conc\") (args variable)))", + "(clause (head (compound (functor \"dup\") (args (args variable)))) (compound (functor \"concat\") (args (args (args variable)))))", + "(clause (binop \"is\" (list (h variable) (t variable))))", + "(clause (compound (functor \"dup\") (args (args variable))) (binop variable \"=\"))", + "(clause (binop variable \"=\" (list (t (list (t variable))))))", + "(clause (head (compound (functor \"dup\") (args (args variable)))) (compound (functor \"conc\") (args variable)))", + "(clause (binop \"=\" (list (h variable))) (compound (functor \"insert\") (args variable)))", + "(clause (head (compound (functor \"dup\") (args (args (list (h variable)))))) (compound (functor \"dup\") (args (args (list (h variable))))))", + "(clause (head (compound (functor \"dup\") (args (args (binop \"|\" variable))))) (binop variable \"==\"))", + "(clause (compound (functor \"conc\") (args (args variable))) (compound (functor \"dup\") (args (args variable))))", + "(clause (compound (functor \"conc\") (args variable)) (compound (functor \"dup\") (args variable)))", + "(clause (head (compound (functor \"dup\") (args variable))) (compound (functor \"conc\") (args (args (args variable)))))", + "(clause (head (compound (functor \"dup\") (args (list (t variable))))) (compound (functor \"dup\") (args (args variable))))", + "(clause (binop variable \"=\") (binop \"=\" (list (t (list (t variable))))))", + "(clause (compound (functor \"dup\") (args (args variable))) (binop \"=\" (list (t (list (t (list (h variable))))))))", + "(clause (head (compound (functor \"dup\") (args (args variable)))) (compound (functor \"dup\") (args (args (list (t (list (t variable))))))))", + "(clause (head (compound (functor \"dup\") (args (args variable)))) (compound (functor \"insert\") (args (args (args variable)))))", + "(clause (head (compound (functor \"dup1\") (args \"[]\"))))", + "(clause (head (compound (functor \"dup\") (args variable))) (compound (functor \"dup1\") (args variable)))", + "(clause (binop variable \"is\") (binop \"is\" (list (h variable))))", + "(clause (compound (functor \"dup\") (args (list (h variable) (t (list (h variable)))))))", + "(clause (compound (functor \"dup1\") (args variable (args \"[]\"))))", + "(clause (head (compound (functor \"dup\") (args (list (t variable))))) (compound (functor \"dum\") (args variable)))", + "(clause (head (compound (functor \"dup\") (args (list (h variable))))) (compound (functor \"dup\") (args (list (h variable)))))", + "(clause (head (compound (functor \"dup1\") (args (list (t variable))))) (compound (functor \"dup1\") (args variable)))", + "(clause (head (compound (functor \"dup1\") (args (args variable (args variable))))))", + "(clause (head (compound (functor \"dup\") (args (list (t variable))))) (compound (functor \"conc\") (args (args variable))))", + "(clause (head (compound (functor \"dup\") (args (args (list (t (list (t variable)))))))) (compound (functor \"dup\") (args (args (list (h variable))))))", + "(clause (binop \"=\" (list (h variable))) (compound (functor \"dup\") (args variable)))", + "(clause (head (compound (functor \"dup\") (args (list (t variable))))) (binop \"is\" (list (t variable))))", + "(clause (compound (functor \"dup1\") (args (args \"[]\"))))", + "(clause (head (compound (functor \"dup\") (args (list (t variable))))) (compound (functor \"dup\") (args (args (list (t (list (t variable))))))))", + "(clause (head (compound (functor \"dup1\") (args \"[]\" (args variable)))))", + "(clause (head (compound (functor \"dup\") (args (list (h variable))))) (compound (functor \"insert\") (args variable)))", + "(clause (compound (functor \"dup\") (args variable)) (compound (functor \"conc\") (args (args variable))))", + "(clause (head (compound (functor \"dup\") (args (args (list (t (list (h variable)))))))) (compound (functor \"dup\") (args (args (list (h variable))))))" + ], + "rules": [ + { + "class": false, + "condition": [ + "(clause (head (compound (functor \"dup\") (args (args variable)))) (compound (functor \"dup\") (args (args variable))))" + ], + "distribution": [ + 83, + 0 + ], + "quality": 0.9793745051956579 + }, + { + "class": false, + "condition": [ + "(clause (head (compound (functor \"dup\") (args (args variable)))))" + ], + "distribution": [ + 69, + 0 + ], + "quality": 0.9745611611669687 + }, + { + "class": false, + "condition": [ + "(clause (head (compound (functor \"dup\") (args (list (h variable))))))" + ], + "distribution": [ + 52, + 0 + ], + "quality": 0.965011287140588 + }, + { + "class": true, + "condition": [ + "(clause (head (compound (functor \"dup\") (args (list (t variable))))) (compound (functor \"dup\") (args variable)))", + "(clause (head (compound (functor \"dup\") (args \"[]\" (args \"[]\")))))", + "(clause (head (compound (functor \"dup\") (args (args (list (t (list (t variable)))))))) (compound (functor \"dup\") (args (args variable))))" + ], + "distribution": [ + 2, + 104 + ], + "quality": 0.9512545556592722 + }, + { + "class": false, + "condition": [ + "(clause (head (compound (functor \"dup\") (args (list (t variable))))) (binop \"=\" (list (t (list (t variable))))))" + ], + "distribution": [ + 31, + 0 + ], + "quality": 0.9365430966407702 + }, + { + "class": false, + "condition": [ + "(clause (compound (functor \"dup\") (args (args variable))))" + ], + "distribution": [ + 30, + 0 + ], + "quality": 0.9342281690211035 + }, + { + "class": false, + "condition": [ + "(clause (head (compound (functor \"dup\") (args (args (list (h variable) (t variable)))))))" + ], + "distribution": [ + 25, + 0 + ], + "quality": 0.9187546835926848 + }, + { + "class": true, + "condition": [ + "(clause (head (compound (functor \"dup\") (args \"[]\" (args \"[]\")))))", + "(clause (compound (functor \"dup\") (args (args variable))) (binop \"=\" (list (t (list (t variable))))))" + ], + "distribution": [ + 2, + 53 + ], + "quality": 0.9074868141619565 + }, + { + "class": false, + "condition": [ + "(clause (head (compound (functor \"dup\") (args (list (t variable)) (args (list (t (list (t variable)))))))))" + ], + "distribution": [ + 22, + 0 + ], + "quality": 0.9049826183187104 + }, + { + "class": false, + "condition": [ + "(clause (head (compound (functor \"dup\") (args variable (args (list (h variable)))))))" + ], + "distribution": [ + 20, + 0 + ], + "quality": 0.8957228443022562 + }, + { + "class": false, + "condition": [ + "(clause (binop \"=\" (list (t (list (t variable))))) (compound (functor \"dup\") (args variable)))" + ], + "distribution": [ + 20, + 0 + ], + "quality": 0.8957228443022562 + }, + { + "class": false, + "condition": [ + "(clause (binop variable \"=\") (binop \"=\" (list (h variable))))" + ], + "distribution": [ + 20, + 0 + ], + "quality": 0.8957228443022562 + }, + { + "class": false, + "condition": [ + "(clause (head (compound (functor \"dup\") (args (list (h variable))))) (compound (functor \"dup\") (args (args (list (h variable))))))" + ], + "distribution": [ + 18, + 0 + ], + "quality": 0.880106470153706 + }, + { + "class": false, + "condition": [ + "(clause (binop variable \"=\") (compound (functor \"dup\") (args (args variable))))" + ], + "distribution": [ + 18, + 0 + ], + "quality": 0.880106470153706 + }, + { + "class": false, + "condition": [ + "(clause (compound (functor \"conc\") (args variable (args variable))))" + ], + "distribution": [ + 17, + 0 + ], + "quality": 0.8712586113449907 + }, + { + "class": false, + "condition": [ + "(clause (head (compound (functor \"dup\") (args (list (t variable))))))" + ], + "distribution": [ + 17, + 0 + ], + "quality": 0.8712586113449907 + }, + { + "class": false, + "condition": [ + "(clause (binop variable \"=\") (binop variable \"=\"))" + ], + "distribution": [ + 16, + 0 + ], + "quality": 0.8628302434186279 + }, + { + "class": false, + "condition": [ + "(clause (head (compound (functor \"dup\") (args (list (h variable))))) (compound (functor \"conc\") (args variable)))" + ], + "distribution": [ + 16, + 0 + ], + "quality": 0.8628302434186279 + }, + { + "class": true, + "condition": [ + "(clause (head (compound (functor \"dup\") (args \"[]\"))))", + "(clause (compound (functor \"dup\") (args (args variable))) (binop \"=\" (list (t (list (t variable))))))" + ], + "distribution": [ + 6, + 60 + ], + "quality": 0.8581378927996048 + }, + { + "class": false, + "condition": [ + "(clause (binop \"=\" (list (t variable))) (binop \"=\" (list (t (list (t variable))))))" + ], + "distribution": [ + 15, + 0 + ], + "quality": 0.851718483494776 + }, + { + "class": true, + "condition": [ + "(clause (head (compound (functor \"dup\") (args (list (t variable))))) (compound (functor \"dup\") (args variable)))", + "(clause (head (compound (functor \"dup\") (args (list (h variable)) (args (list (t (list (h variable)))))))))", + "(clause (head (compound (functor \"dup\") (args \"[]\" (args \"[]\")))))" + ], + "distribution": [ + 16, + 116 + ], + "quality": 0.8504056912099205 + }, + { + "class": false, + "condition": [ + "(clause (head (compound (functor \"dup\") (args (args (list (t variable)))))) (compound (functor \"dup\") (args (args variable))))" + ], + "distribution": [ + 14, + 0 + ], + "quality": 0.8385349971208302 + }, + { + "class": true, + "condition": [ + "(clause (head (compound (functor \"dup\") (args (list (t variable))))) (compound (functor \"dup\") (args variable)))", + "(clause (head (compound (functor \"dup\") (args (list (h variable)) (args (list (h variable)))))))", + "(clause (head (compound (functor \"dup\") (args \"[]\" (args \"[]\")))))" + ], + "distribution": [ + 20, + 117 + ], + "quality": 0.8258965557064576 + }, + { + "class": false, + "condition": [ + "(clause (head (compound (functor \"dup\") (args (list (h variable))))) (compound (functor \"dup\") (args variable)))" + ], + "distribution": [ + 13, + 0 + ], + "quality": 0.8255156458958964 + }, + { + "class": false, + "condition": [ + "(clause (head (compound (functor \"dup\") (args (args (list (t (list (t variable)))))))))" + ], + "distribution": [ + 13, + 0 + ], + "quality": 0.8255156458958964 + }, + { + "class": false, + "condition": [ + "(clause (binop \"=\" (list (h variable) (t variable))))" + ], + "distribution": [ + 12, + 0 + ], + "quality": 0.8080943376484535 + }, + { + "class": false, + "condition": [ + "(clause (head (compound (functor \"dup\") (args (list (t \"[]\")) (args variable)))))" + ], + "distribution": [ + 11, + 0 + ], + "quality": 0.7870660531987647 + }, + { + "class": false, + "condition": [ + "(clause (binop variable \"=\") (compound (functor \"dup\") (args variable)))" + ], + "distribution": [ + 11, + 0 + ], + "quality": 0.7870660531987647 + }, + { + "class": false, + "condition": [ + "(clause (head (compound (functor \"dup\") (args variable))) (binop \"=\" (list (t variable))))" + ], + "distribution": [ + 10, + 0 + ], + "quality": 0.7764400337069141 + }, + { + "class": true, + "condition": [ + "(clause (head (compound (functor \"dup\") (args (list (t variable))))) (compound (functor \"dup\") (args variable)))", + "(clause (head (compound (functor \"dup\") (args \"[]\" (args \"[]\")))))", + "(clause (head (compound (functor \"dup\") (args (args variable)))) (binop variable \"=\"))" + ], + "distribution": [ + 13, + 53 + ], + "quality": 0.7345604560948691 + }, + { + "class": true, + "condition": [ + "(clause (head (compound (functor \"dup\") (args (list (t variable))))) (compound (functor \"dup\") (args variable)))", + "(clause (head (compound (functor \"dup\") (args \"[]\" (args \"[]\")))))", + "(clause (binop \"=\" (list (h variable) (t (list (h variable))))))" + ], + "distribution": [ + 12, + 50 + ], + "quality": 0.7336334876105481 + }, + { + "class": true, + "condition": [ + "(clause (head (compound (functor \"dup\") (args (list (t variable))))) (compound (functor \"dup\") (args variable)))", + "(clause (head (compound (functor \"dup\") (args \"[]\" (args \"[]\")))))" + ], + "distribution": [ + 65, + 175 + ], + "quality": 0.7157343899492171 + }, + { + "class": true, + "condition": [ + "(clause (head (compound (functor \"dup\") (args \"[]\" (args \"[]\")))))", + "(clause (binop \"=\" (list (h variable) (t (list (h variable))))))" + ], + "distribution": [ + 25, + 74 + ], + "quality": 0.7065553916027705 + }, + { + "class": true, + "condition": [ + "(clause (head (compound (functor \"dup\") (args \"[]\"))))", + "(clause (head (compound (functor \"dup\") (args (list (h variable))))) (binop \"=\" (list (t (list (h variable))))))" + ], + "distribution": [ + 28, + 56 + ], + "quality": 0.6107009286023725 + } + ] +} \ No newline at end of file -- cgit v1.2.1