summaryrefslogtreecommitdiff
path: root/src/analysis
diff options
context:
space:
mode:
Diffstat (limited to 'src/analysis')
-rw-r--r--src/analysis/Makefile.am1
-rw-r--r--src/analysis/binary.c101
-rw-r--r--src/analysis/binary.h3
-rw-r--r--src/analysis/loaded-int.h10
-rw-r--r--src/analysis/loaded.c48
-rw-r--r--src/analysis/loaded.h6
-rw-r--r--src/analysis/roptions.c238
-rw-r--r--src/analysis/roptions.h101
8 files changed, 42 insertions, 466 deletions
diff --git a/src/analysis/Makefile.am b/src/analysis/Makefile.am
index 20a02b6..3ba21a3 100644
--- a/src/analysis/Makefile.am
+++ b/src/analysis/Makefile.am
@@ -11,7 +11,6 @@ libanalysis_la_SOURCES = \
loaded.h loaded.c \
loading.h loading.c \
project.h project.c \
- roptions.h roptions.c \
routine.h routine.c \
type-int.h \
type.h type.c \
diff --git a/src/analysis/binary.c b/src/analysis/binary.c
index 222bafc..89370b2 100644
--- a/src/analysis/binary.c
+++ b/src/analysis/binary.c
@@ -89,8 +89,7 @@ struct _GLoadedBinary
size_t decbuf_count; /* Taille des tableaux */
size_t defsrc; /* Fichier source principal */
- bool col_display[BVW_COUNT][BLC_DISPLAY];/* Position et code binaire */
- bool lines_display; /* Affichage des lignes */
+ GDisplayOptions *options[BVW_COUNT]; /* Options d'affichage */
};
@@ -173,10 +172,7 @@ static GtkWidget *g_loaded_binary_build_view(GLoadedBinary *, unsigned int);
static unsigned int g_loaded_binary_get_view_index(GLoadedBinary *, GtkWidget *);
/* Fournit toutes les options d'affichage pour un contenu. */
-bool * const g_loaded_binary_get_all_display_options(const GLoadedBinary *, unsigned int);
-
-/* Définit une option d'affichage pour un contenu chargé. */
-static bool g_loaded_binary_set_display_option(GLoadedBinary *, unsigned int, unsigned int, bool);
+static GDisplayOptions *g_loaded_binary_get_display_options(const GLoadedBinary *, unsigned int);
@@ -242,14 +238,17 @@ static void g_loaded_binary_init(GLoadedBinary *binary)
binary->collections = create_collections_list();
attach_binary_to_collections(binary->collections, binary);
- binary->col_display[BVW_BLOCK][BLC_PHYSICAL] = true;
- binary->col_display[BVW_BLOCK][BLC_VIRTUAL] = true;
- binary->col_display[BVW_BLOCK][BLC_BINARY] = false;
- binary->col_display[BVW_GRAPH][BLC_PHYSICAL] = false;
- binary->col_display[BVW_GRAPH][BLC_VIRTUAL] = false;
- binary->col_display[BVW_GRAPH][BLC_BINARY] = false;
+ binary->options[BVW_BLOCK] = g_display_options_new();
+
+ g_display_options_add(binary->options[BVW_BLOCK], _("Physical offset"), true);
+ g_display_options_add(binary->options[BVW_BLOCK], _("Virtual address"), true);
+ g_display_options_add(binary->options[BVW_BLOCK], _("Binary code"), false);
+
+ binary->options[BVW_GRAPH] = g_display_options_new();
- binary->lines_display = true;
+ g_display_options_add(binary->options[BVW_GRAPH], _("Physical offset"), false);
+ g_display_options_add(binary->options[BVW_GRAPH], _("Virtual address"), false);
+ g_display_options_add(binary->options[BVW_GRAPH], _("Binary code"), false);
}
@@ -282,8 +281,7 @@ static void g_loaded_binary_interface_init(GLoadedContentInterface *iface)
iface->build_view = (build_loaded_view_fc)g_loaded_binary_build_view;
iface->get_view_index = (get_loaded_view_index_fc)g_loaded_binary_get_view_index;
- iface->get_all_options = (get_all_loaded_options_fc)g_loaded_binary_get_all_display_options;
- iface->set_option = (set_loaded_option_fc)g_loaded_binary_set_display_option;
+ iface->get_options = (get_loaded_options_fc)g_loaded_binary_get_display_options;
}
@@ -302,6 +300,8 @@ static void g_loaded_binary_interface_init(GLoadedContentInterface *iface)
static void g_loaded_binary_dispose(GLoadedBinary *binary)
{
+ BinaryView i; /* Boucle de parcours */
+
if (binary->format != NULL)
g_object_unref(G_OBJECT(binary->format));
@@ -310,6 +310,11 @@ static void g_loaded_binary_dispose(GLoadedBinary *binary)
/* TODO... */
+
+
+ for (i = 0; i < BVW_COUNT; i++)
+ g_object_unref(G_OBJECT(binary->options[i]));
+
G_OBJECT_CLASS(g_loaded_binary_parent_class)->dispose(G_OBJECT(binary));
}
@@ -1379,25 +1384,6 @@ GCodeBuffer *g_loaded_binary_get_decompiled_buffer(const GLoadedBinary *binary,
#endif
-/******************************************************************************
-* *
-* Paramètres : binary = élément binaire à consulter. *
-* *
-* Description : Indique si les lignes doivent apparaître dans le rendu. *
-* *
-* Retour : Consigne d'affichage. [OUT] *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-bool *g_loaded_binary_display_decomp_lines(GLoadedBinary *binary)
-{
- return &binary->lines_display;
-
-}
-
-
/* ---------------------------------------------------------------------------------- */
/* GESTION SOUS FORME DE CONTENU CHARGE */
@@ -1536,6 +1522,7 @@ static bool g_loaded_binary_analyze(GLoadedBinary *binary, wgroup_id_t gid, GtkS
GBinFormat *format; /* Format lié au binaire */
const char *arch; /* Architecture d'exécution */
const char *desc; /* Description humaine associée*/
+ bool has_virt; /* Présence de virtuel ? */
GProcContext *context; /* Contexte de suivi dédié */
GWidthTracker *tracker; /* Gestionnaire de largeur */
@@ -1567,7 +1554,10 @@ static bool g_loaded_binary_analyze(GLoadedBinary *binary, wgroup_id_t gid, GtkS
goto glba_exit;
}
- binary->col_display[BVW_BLOCK][BLC_VIRTUAL] = g_arch_processor_has_virtual_space(binary->proc);
+ has_virt = g_arch_processor_has_virtual_space(binary->proc);
+
+ g_display_options_set(binary->options[BVW_BLOCK], BLC_VIRTUAL, has_virt);
+ g_display_options_set(binary->options[BVW_GRAPH], BLC_VIRTUAL, has_virt);
/* Phase de désassemblage pur */
@@ -1741,42 +1731,19 @@ static unsigned int g_loaded_binary_get_view_index(GLoadedBinary *binary, GtkWid
* *
******************************************************************************/
-bool * const g_loaded_binary_get_all_display_options(const GLoadedBinary *binary, unsigned int index)
+static GDisplayOptions *g_loaded_binary_get_display_options(const GLoadedBinary *binary, unsigned int index)
{
- return binary->col_display[index];
-
-}
+ GDisplayOptions *result; /* Instance à renvoyer */
+ assert(index < BVW_COUNT);
-/******************************************************************************
-* *
-* Paramètres : binary = contenu chargé à consulter. *
-* index = composant graphique à cibler. *
-* option = type de paramètre à manipuler. *
-* state = valeur dudit paramètre. *
-* *
-* Description : Définit une option d'affichage pour un contenu chargé. *
-* *
-* Retour : true si un changement a été effectué, false sinon. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-static bool g_loaded_binary_set_display_option(GLoadedBinary *binary, unsigned int index, unsigned int option, bool state)
-{
- bool result; /* Variation à faire remonter */
- bool old; /* Ancien état à remplacer */
-
- old = binary->col_display[index][option];
-
- if (state != old)
- {
- binary->col_display[index][option] = state;
- result = true;
- }
+ if (index < BVW_COUNT)
+ result = binary->options[index];
+ else
+ result = NULL;
- else result = false;
+ if (result != NULL)
+ g_object_ref(G_OBJECT(result));
return result;
diff --git a/src/analysis/binary.h b/src/analysis/binary.h
index 906469a..cbaab41 100644
--- a/src/analysis/binary.h
+++ b/src/analysis/binary.h
@@ -167,9 +167,6 @@ GBufferCache *g_loaded_binary_get_disassembled_cache(const GLoadedBinary *);
/* Fournit le tampon associé au contenu d'un fichier source. */
//GCodeBuffer *g_loaded_binary_get_decompiled_buffer(const GLoadedBinary *, size_t);
-/* Indique si les lignes doivent apparaître dans le rendu. */
-bool *g_loaded_binary_display_decomp_lines(GLoadedBinary *);
-
diff --git a/src/analysis/loaded-int.h b/src/analysis/loaded-int.h
index 7d4bb19..044dad7 100644
--- a/src/analysis/loaded-int.h
+++ b/src/analysis/loaded-int.h
@@ -58,10 +58,7 @@ typedef GtkWidget * (* build_loaded_view_fc) (GLoadedContent *, unsigned int);
typedef unsigned int (* get_loaded_view_index_fc) (GLoadedContent *, GtkWidget *);
/* Fournit toutes les options d'affichage pour un contenu. */
-typedef bool * const (* get_all_loaded_options_fc) (const GLoadedContent *, unsigned int);
-
-/* Définit une option d'affichage pour un contenu. */
-typedef bool ( * set_loaded_option_fc) (GLoadedContent *, unsigned int, unsigned int, bool);
+typedef GDisplayOptions * (* get_loaded_options_fc) (const GLoadedContent *, unsigned int);
/* Accès à un contenu binaire quelconque (interface) */
@@ -85,15 +82,12 @@ struct _GLoadedContentIface
build_loaded_view_fc build_view; /* Mise en place de vues */
get_loaded_view_index_fc get_view_index;/* Récupération d'indice de vue*/
- get_all_loaded_options_fc get_all_options; /* Obtention de liste brute*/
- set_loaded_option_fc set_option; /* Définition d'affichage */
+ get_loaded_options_fc get_options; /* Obtention de liste d'options*/
/* Signaux */
void (* analyzed) (GLoadedContent *, gboolean);
- void (* display_changed) (GLoadedContent *, unsigned int, unsigned int);
-
};
diff --git a/src/analysis/loaded.c b/src/analysis/loaded.c
index 5359103..28aea43 100644
--- a/src/analysis/loaded.c
+++ b/src/analysis/loaded.c
@@ -135,14 +135,6 @@ static void g_loaded_content_default_init(GLoadedContentInterface *iface)
g_cclosure_marshal_VOID__BOOLEAN,
G_TYPE_NONE, 1, G_TYPE_BOOLEAN);
- g_signal_new("display-changed",
- G_TYPE_LOADED_CONTENT,
- G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET(GLoadedContentIface, display_changed),
- NULL, NULL,
- g_cclosure_user_marshal_VOID__ENUM_ENUM,
- G_TYPE_NONE, 2, G_TYPE_UINT, G_TYPE_UINT);
-
}
@@ -471,60 +463,28 @@ unsigned int g_loaded_content_get_view_index(GLoadedContent *content, GtkWidget
* *
* Description : Fournit toutes les options d'affichage pour un contenu. *
* *
-* Retour : Tableau de paramètres en accès libre. *
+* Retour : Gestionnaire de paramètres. *
* *
* Remarques : - *
* *
******************************************************************************/
-bool * const g_loaded_content_get_all_display_options(const GLoadedContent *content, unsigned int index)
+GDisplayOptions *g_loaded_content_get_display_options(const GLoadedContent *content, unsigned int index)
{
- bool const *result; /* Accès aux options à renvoyer*/
+ GDisplayOptions *result; /* Accès aux options à renvoyer*/
GLoadedContentIface *iface; /* Interface utilisée */
assert(index <= g_loaded_content_count_views(content));
iface = G_LOADED_CONTENT_GET_IFACE(content);
- result = iface->get_all_options(content, index);
+ result = iface->get_options(content, index);
return result;
}
-/******************************************************************************
-* *
-* Paramètres : content = contenu chargé à consulter. *
-* index = composant graphique à cibler. *
-* option = type de paramètre à manipuler. *
-* state = valeur dudit paramètre. *
-* *
-* Description : Définit une option d'affichage pour un contenu chargé. *
-* *
-* Retour : - *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-void g_loaded_content_set_display_option(GLoadedContent *content, unsigned int index, unsigned int option, bool state)
-{
- GLoadedContentIface *iface; /* Interface utilisée */
- bool changed; /* Note un changement */
-
- assert(index <= g_loaded_content_count_views(content));
-
- iface = G_LOADED_CONTENT_GET_IFACE(content);
-
- changed = iface->set_option(content, index, option, state);
-
- if (changed)
- g_signal_emit_by_name(content, "display-changed", index, option);
-
-}
-
-
/* ---------------------------------------------------------------------------------- */
/* PHASE D'ANALYSE EN PARALLELE */
diff --git a/src/analysis/loaded.h b/src/analysis/loaded.h
index 344d102..66d448a 100644
--- a/src/analysis/loaded.h
+++ b/src/analysis/loaded.h
@@ -32,6 +32,7 @@
#include "content.h"
#include "../common/xml.h"
+#include "../glibext/gdisplayoptions.h"
#include "../gtkext/gtkdockstation.h"
@@ -93,10 +94,7 @@ GtkWidget *g_loaded_content_build_view(GLoadedContent *, unsigned int);
unsigned int g_loaded_content_get_view_index(GLoadedContent *, GtkWidget *);
/* Fournit toutes les options d'affichage pour un contenu. */
-bool * const g_loaded_content_get_all_display_options(const GLoadedContent *, unsigned int);
-
-/* Définit une option d'affichage pour un contenu chargé. */
-void g_loaded_content_set_display_option(GLoadedContent *, unsigned int, unsigned int, bool);
+GDisplayOptions *g_loaded_content_get_display_options(const GLoadedContent *, unsigned int);
diff --git a/src/analysis/roptions.c b/src/analysis/roptions.c
deleted file mode 100644
index b9e4b96..0000000
--- a/src/analysis/roptions.c
+++ /dev/null
@@ -1,238 +0,0 @@
-
-/* Chrysalide - Outil d'analyse de fichiers binaires
- * roptions.c - options de rendus des lignes de code
- *
- * Copyright (C) 2009-2017 Cyrille Bagard
- *
- * This file is part of Chrysalide.
- *
- * Chrysalide is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3 of the License, or
- * (at your option) any later version.
- *
- * Chrysalide is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with Chrysalide. If not, see <http://www.gnu.org/licenses/>.
- */
-
-
-#include "roptions.h"
-
-
-
-/* Options de représentation (instance) */
-struct _GRenderingOptions
-{
- GExeFormat *format; /* Format du contenu bianire */
- GArchProcessor *proc; /* Architecture utilisée */
-
- bool show_address[MRD_COUNT]; /* Affichage de l'adresse ? */
- bool show_code[MRD_COUNT]; /* Affichage du code brut ? */
-
-};
-
-/* Options de représentation (classe) */
-struct _GRenderingOptionsClass
-{
- GObjectClass parent; /* A laisser en premier */
-
-};
-
-
-/* Initialise la classe des options pour le rendu des lignes. */
-static void g_rendering_options_class_init(GRenderingOptionsClass *);
-
-/* Initialise une instance d'options pour le rendu des lignes. */
-static void g_rendering_options_init(GRenderingOptions *);
-
-
-
-/* Indique le type définit pour une ligne de représentation. */
-G_DEFINE_TYPE(GRenderingOptions, g_rendering_options, G_TYPE_OBJECT);
-
-
-/******************************************************************************
-* *
-* Paramètres : klass = classe à initialiser. *
-* *
-* Description : Initialise la classe des options pour le rendu des lignes. *
-* *
-* Retour : - *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-static void g_rendering_options_class_init(GRenderingOptionsClass *klass)
-{
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : options = instance à initialiser. *
-* *
-* Description : Initialise une instance d'options pour le rendu des lignes. *
-* *
-* Retour : - *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-static void g_rendering_options_init(GRenderingOptions *options)
-{
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : format = format du contenu binaire. *
-* *
-* Description : Crée un un groupe d'options pour le rendu des lignes. *
-* *
-* Retour : Adresse de la structure mise en place. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GRenderingOptions *g_rendering_options_new(GExeFormat *format)
-{
- GRenderingOptions *result; /* Structure à retourner */
-
- result = g_object_new(G_TYPE_RENDERING_OPTIONS, NULL);
-
- result->format = format;
- result->proc = NULL;//get_arch_processor_from_format(format);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : options = options à consulter. *
-* *
-* Description : Fournit le format du contenu binaire représenté. *
-* *
-* Retour : Format du contenu binaire. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GExeFormat *g_rendering_options_get_format(const GRenderingOptions *options)
-{
- return options->format;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : options = options à consulter. *
-* *
-* Description : Fournit l'architecture du contenu binaire représenté. *
-* *
-* Retour : Architecture utilisée par le binaire. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GArchProcessor *g_rendering_options_get_processor(const GRenderingOptions *options)
-{
- return options->proc;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : options = options à mettre à jour. *
-* rendering = type de rendu impliqué. *
-* state = nouvel état de l'option visée. *
-* *
-* Description : Affiche (ou non) les adresses des instructions. *
-* *
-* Retour : - *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-void g_rendering_options_show_address(GRenderingOptions *options, MainRendering rendering, bool state)
-{
- options->show_address[rendering] = state;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : options = options à consulter. *
-* rendering = type de rendu impliqué. *
-* *
-* Description : Indique si les adresses des instructions sont à afficher. *
-* *
-* Retour : Etat courant de l'option visée. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-bool g_rendering_options_has_to_show_address(const GRenderingOptions *options, MainRendering rendering)
-{
- return options->show_address[rendering];
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : options = options à mettre à jour. *
-* rendering = type de rendu impliqué. *
-* state = nouvel état de l'option visée. *
-* *
-* Description : Affiche (ou non) le code des instructions. *
-* *
-* Retour : - *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-void g_rendering_options_show_code(GRenderingOptions *options, MainRendering rendering, bool state)
-{
- options->show_code[rendering] = state;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : options = options à consulter. *
-* rendering = type de rendu impliqué. *
-* *
-* Description : Indique si le code des instructions est à afficher. *
-* *
-* Retour : Etat courant de l'option visée. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-bool g_rendering_options_has_to_show_code(const GRenderingOptions *options, MainRendering rendering)
-{
- return options->show_code[rendering];
-
-}
diff --git a/src/analysis/roptions.h b/src/analysis/roptions.h
deleted file mode 100644
index 1f27ff5..0000000
--- a/src/analysis/roptions.h
+++ /dev/null
@@ -1,101 +0,0 @@
-
-/* Chrysalide - Outil d'analyse de fichiers binaires
- * roptions.h - prototypes pour les options de rendus des lignes de code
- *
- * Copyright (C) 2009-2017 Cyrille Bagard
- *
- * This file is part of Chrysalide.
- *
- * Chrysalide is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3 of the License, or
- * (at your option) any later version.
- *
- * Chrysalide is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with Chrysalide. If not, see <http://www.gnu.org/licenses/>.
- */
-
-
-#ifndef _ANALYSIS_ROPTIONS_H
-#define _ANALYSIS_ROPTIONS_H
-
-
-#include <glib-object.h>
-#include <stdbool.h>
-
-
-#include "../arch/processor.h"
-#include "../format/executable.h"
-
-
-
-/* Support principal de rendu */
-typedef enum _MainRendering
-{
- MRD_BLOCK, /* Unique bloc de code */
- MRD_GRAPH, /* Graphique de blocs de code */
-
- MRD_COUNT
-
-} MainRendering;
-
-
-/* Zone de rendu */
-typedef enum _ShowingArea
-{
- SAR_ADDRESS, /* Adresse d'une ligne */
- SAR_CODE, /* Code brut d'une ligne */
- SAR_INSTRUCTION, /* Instruction d'une ligne */
-
- SAR_COUNT
-
-} ShowingArea;
-
-
-#define G_TYPE_RENDERING_OPTIONS g_rendering_options_get_type()
-#define G_RENDERING_OPTIONS(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), G_TYPE_RENDERING_OPTIONS, GRenderingOptions))
-#define G_IS_RENDERING_OPTIONS(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), G_TYPE_RENDERING_OPTIONS))
-#define G_RENDERING_OPTIONS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), G_TYPE_RENDERING_OPTIONS, GRenderingOptionsClass))
-#define G_IS_RENDERING_OPTIONS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), G_TYPE_RENDERING_OPTIONS))
-#define G_RENDERING_OPTIONS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), G_TYPE_RENDERING_OPTIONS, GRenderingOptionsClass))
-
-
-/* Options de représentation (instance) */
-typedef struct _GRenderingOptions GRenderingOptions;
-
-/* Options de représentation (classe) */
-typedef struct _GRenderingOptionsClass GRenderingOptionsClass;
-
-
-/* Indique le type défini pour des options de représentation. */
-GType g_rendering_options_get_type(void);
-
-/* Crée un un groupe d'options pour le rendu des lignes. */
-GRenderingOptions *g_rendering_options_new(GExeFormat *);
-
-/* Fournit le format du contenu binaire représenté. */
-GExeFormat *g_rendering_options_get_format(const GRenderingOptions *);
-
-/* Fournit l'architecture du contenu binaire représenté. */
-GArchProcessor *g_rendering_options_get_processor(const GRenderingOptions *);
-
-/* Affiche (ou non) les adresses des instructions. */
-void g_rendering_options_show_address(GRenderingOptions *, MainRendering, bool);
-
-/* Indique si les adresses des instructions sont à afficher. */
-bool g_rendering_options_has_to_show_address(const GRenderingOptions *, MainRendering);
-
-/* Affiche (ou non) le code des instructions. */
-void g_rendering_options_show_code(GRenderingOptions *, MainRendering, bool);
-
-/* Indique si le code des instructions est à afficher. */
-bool g_rendering_options_has_to_show_code(const GRenderingOptions *, MainRendering);
-
-
-
-#endif /* _ANALYSIS_ROPTIONS_H */