Publications of Maurizio Proietti

This page shows all publications that appeared in the IASI annual research reports. Authors currently affiliated with the Institute are always listed with the full name.

You can browse through them using either the links of the following line or those associated with author names.

Show all publications of the year  ALL, with author Proietti M., in the category Articles in Collections and Proceedings (or show them all):   (Items found: 94)


2020 | 2019 | 2018 | 2017 | 2016 | 2015 | 2014 | 2013 | 2012 | 2011 | 2010 | 2009 | 2008 | 2007 | 2006 | 2005 | 2004 | 2003 | 2002 | 2001 | 2000 | 1999 | 1998 | 1997 | 1996 | 1995 | 1994 | 1993 | 1992 | 1991 | 1990 | 1989 | 1988 | 1987

2020  [top]

2019  [top]
  • Emanuele De Angelis, Fioravanti F., Pettorossi A., Maurizio Proietti: Lemma Generation for Horn Clause Satisfiability: A Preliminary Study, in the Proceedings of Seventh International Workshop on Verification and Program Transformation (VPT 2019), Lisitsa A., Nemytykh A. eds., Electronic Proceedings in Theoretical Computer Science, 299, 2019
  • Emanuele De Angelis, Fioravanti F., Pettorossi A., Maurizio Proietti: Proving Properties of Sorting Programs: A Case Study in Horn Clause Verification, in the Proceedings of Sixth Workshop on Horn Clauses for Verification and Synthesis and Third Workshop on Program Equivalence and Relational Reasoning (HCVS/PERR 2019), Electronic Proceedings in Theoretical Computer Science, 296, 2019

2018  [top]

2017  [top]
  • Emanuele De Angelis, Fioravanti F., Pettorossi A., Maurizio Proietti: Enhancing Predicate Pairing with Abstraction for Relational Verification, in the Proceedings of the 27th International Symposium on Logic-Based Program Synthesis and Transformation (LOPSTR 2017), Preliminary version, Fioravanti F, Gallagher J. eds., CoRR, arXiv, 1708-07854, 2017

2016  [top]

2015  [top]

2014  [top]
  • Emanuele De Angelis, Fioravanti F., Navas J, Maurizio Proietti: Verification of Programs by Combining Iterated Specialization with Interpolation, in the Proceedings of First Workshop on Horn Clauses for Verification and Synthesis, Electronic Proceedings in Theoretical Computer Science, 169, 2014
  • Emanuele De Angelis, Fioravanti F., Pettorossi A., Maurizio Proietti: Program Verification using Constraint Handling Rules and Array Constraint Generalizations, in the Proceedings of Proceedings of VPT 2014, EasyChair Proceedings in Computing (EPiC) series, 28, 2014
  • Maurizio Proietti, Smith F.: Reasoning on Data-Aware Business Processes with Constraint Logic, in the Proceedings of Proceedings of the 4th International Symposium on Data-driven Process Discovery and Analysis (SIMPDA 2014), CEUR-WS, 1293, 2014
  • Smith F., Maurizio Proietti: Behavioral Reasoning on Semantic Business Processes in a Rule-Based Framework, in: Agents and Artificial Intelligence, Communications in Computer and Information Science, 449, Springer, 293-313, 2014

2013  [top]
  • Emanuele De Angelis, Fioravanti F., Pettorossi A., Maurizio Proietti: Verifying Programs via Iterated Specialization, in the Proceedings of Partial Evaluation and Program Manipulation (PEPM '13), ACM-SIGPLAN, 2013
  • Emanuele De Angelis, Fioravanti F., Pettorossi A., Maurizio Proietti: Verification of Imperative Programs through Transformation of Constraint Logic Programs, in the Proceedings of First International Workshop on Verification and Program Transformation (VPT 2013), EasyChair Proceedings in Computing (EPiC) series, Vol. 16, pp. 30-41, 2013
  • Emanuele De Angelis, Fioravanti F., Pettorossi A., Maurizio Proietti: Verification of Imperative Programs by Transforming Constraint Logic Programs, in the Proceedings of the 28th Italian Conference on Computational Logic (CILC 2013), CEUR-WS, Vol. 1068, pp. 83-98, 2013
  • Emanuele De Angelis, Fioravanti F., Pettorossi A., Maurizio Proietti: Verification of Imperative Programs by Constraint Logic Program Transformation, in the Proceedings of SAIRP 2013, Festschrift for Dave Schmidt, Electronic Proceedings in Theoretical Computer Science, Vol 129, pp. 186-210, 2013
  • Pettorossi A., Maurizio Proietti: Program Transformation for Program Verification, in the Proceedings of First International Workshop on Verification and Program Transformation (VPT 2013), EasyChair Proceedings in Computing (EPiC) series, Vol. 16, pp. 13-14, 2013
  • Smith F., De Sanctis D., Maurizio Proietti: A Platform for Managing Business Process Knowledge Bases via Logic Programming, in the Proceedings of the 28th Italian Conference on Computational Logic (CILC 2013), CEUR-WS, Vol. 1068, pp. 247-251, 2013
  • Smith F., Maurizio Proietti: Rule-Based Behavioural Reasoning on Semantic Business Processes, in the Proceedings of 5th International Conference on Agents and Artificial Intelligence, ICAART, pp. 130-143, 2013

2012  [top]

2011  [top]
  • Emanuele De Angelis, Pettorossi A., Maurizio Proietti: Synthesizing Concurrent Programs using Answer Set Programming, in the Proceedings of International Workshop on Concurrency, Specification and Programming (CS&P 2011), Pultusk, Poland, 28-30 Sept. 2011, 2011
  • Fioravanti F., Pettorossi A., Maurizio Proietti, Senni V.: Program Specialization for Verifying Infinite State Systems: An Experimental Evaluation, in: Logic-Based Program Synthesis and Transformation, 20th International Symposium, LOPSTR '10, Revised Selected Papers, Alpuente M ed., Lecture Notes in Computer Science, 6564, Springer Berlin Heidelberg, 164-183, 2011
  • Fioravanti F., Pettorossi A., Maurizio Proietti, Senni V.: Improving Reachability Analysis of Infinite State Systems by Specialization, in: Reachability Problems (RP 2011), Delzanno G, Potapov I eds., Lecture Notes in Computer Science, 6945, Springer Berlin Heidelberg, 165-179, 2011
  • Fioravanti F., Pettorossi A., Maurizio Proietti, Senni V.: Controlling Polyvariance for Specialization-Based Verification, in the Proceedings of 26th Italian Conference on Computational Logic (CILC'11), Fioravanti F ed., CEUR-WS, 2011
  • Fioravanti F., Pettorossi A., Maurizio Proietti, Senni V.: Using Real Relaxations During Program Specialization, in the Proceedings of 21st International Symposium on Logic-Based Synthesis and Transformation (LOPSTR 2011), Univ. of Southern Denmark, Odense, Denmark, pp. 96-111, 2011
  • Michele Missikoff, Maurizio Proietti, Smith F.: Querying Semantically Enriched Business Processes, in: 22nd International Conference on Database and Expert Systems Applications (DEXA 2011), Lecture Notes in Computer Science, 6861, Springer Berlin Heidelberg, 294-302, 2011
  • Michele Missikoff, Maurizio Proietti, Smith F.: Querying Business Processes and Ontologies in a Logic Programming Environment, in the Proceedings of 19th Italian Symposium on Advanced Database Systems, SEBD 2011, Maratea, Italy, 2011

2010  [top]
  • De Nicola A., Michele Missikoff, Maurizio Proietti, Smith F.: A Logic-Based Method for Business Process Knowledge Base Management, in the Proceedings of 18th Italian Symposium on Advanced Database Systems, SEBD 2010, Rimini, Italy, 2010
  • De Nicola A., Michele Missikoff, Maurizio Proietti, Smith F.: An Open Platform for Business Process Modeling and Verification, in the Proceedings of International Conference on Database and Expert Systems Applications, DEXA, September 2010, Lecture Notes in Computer Science, 6261, 2010
  • Fioravanti F., Pettorossi A., Maurizio Proietti, Senni V.: Program Specialization for Verifying Infinite State Systems: An Experimental Evaluation, in the Proceedings of 20th International Symposium on Logic-Based Synthesis and Transformation (LOPSTR 2010), July 23-25, 2010, Hagenberg, Austria, RISC-Linz Report Series No. 10-14., Alpuente M ed., 2010
  • Fioravanti F., Pettorossi A., Maurizio Proietti, Senni V.: Generalization Strategies for the Verification of Infinite State Systems, in the Proceedings of 25th Italian Conference on Computational Logic (CILC'10), Leone N., Faber W. eds., CEUR-WS, 598, 2010
  • Michele Missikoff, Maurizio Proietti, Smith F.: A Business Process Knowledge Base for Composite Services Development, in the Proceedings of International Workshop on Business System Management and Engineering, BSME, Malaga, 2010
  • Michele Missikoff, Maurizio Proietti, Smith F.: Reasoning on Business Processes and Ontologies in a Logic Programming Environment, in the Proceedings of 3rd Interop-Vlab.It Workshop, CEUR-WS, 653, 2010
  • Pettorossi A., Maurizio Proietti, Senni V.: Deciding Full Branching Time Logic by Program Transformation, in: 19th International Symposium on Logic-Based Synthesis and Transformation (LOPSTR '09), Revised Selected Papers, De Schreye D. ed., Lecture Notes in Computer Science, 6037, Springer, 5-21, 2010
  • Pettorossi A., Maurizio Proietti, Senni V.: A Transformation Strategy for Verifying Logic Programs on Infinite Lists, in the Proceedings of 25th Italian Conference on Computational Logic (CILC'10), Leone N., Faber W. eds., CEUR-WS, 598, 2010
  • Pettorossi A., Maurizio Proietti, Senni V.: The Transformational Approach to Program Development, in: A 25 Year Perspective on Logic Programming, Pontelli E., Dovier A. eds., Lecture Notes in Computer Science, 6125, Springer, 112-135, 2010

2009  [top]
  • Pettorossi A., Maurizio Proietti, Senni V.: Deciding Full Branching Time Logic by Program Transformation, in the Proceedings of 19th International Symposium on Logic Program Synthesis and Transformation (LOPSTR 2009), De Schreye D., Quaresma P. eds., 2009

2008  [top]
  • Pettorossi A., Maurizio Proietti, Renault S.: Derivation of Efficient Logic Programs by Specialization and Reduction of Nondeterminism, Henglein F., Danvy O., Pettorossi A., Mairson H. eds., Automatic Program Development, Springer Heidelberg, 130-177, 2008
  • Senni V., Maurizio Proietti, Pettorossi A.: A Folding Algorithm for Eliminating Existential Variables from Constraint Logic Programs, in the Proceedings of 24th International Conference on Logic Programming, Garcia de la Banda M., Pontelli E. eds., Lecture Notes in Computer Science, 5366, pp. 284-300, 2008

2007  [top]
  • Pettorossi A., Maurizio Proietti, Senni V.: Automatic Correctness Proofs for Logic Program Transformations, in the Proceedings of 23rd International Conference on Logic Programming (ICLP '07), Niemela I., Dahl V. eds., Lecture Notes in Computer Science, 4670, pp. 364-379, Springer, 2007

2006  [top]
  • Pettorossi A., Maurizio Proietti, Senni V.: Proving Properties of Constraint Logic Programs by Eliminating Existential Variables, in: Proceedings of the 22nd International Conference on Logic Programming (ICLP '06), Etalle S., Truszczynski M. eds., Lecture Notes in Computer Science, 4079, Springer-Verlag, 179-195, 2006

2005  [top]
  • Fioravanti F., Pettorossi A., Maurizio Proietti: Automatic Proofs of Protocols via Program Transformation., in: Monitoring, Security, and Rescue Techniques in Multiagent Systems, Advances in Soft Computing Series, Skowron A., Dunin-Keplicz B., Jankowski A., Szczuka M. eds., Advances in Soft Computing, 99-116, 2005
  • Pettorossi A., Maurizio Proietti, Senni V.: Transformational Verification of Parameterized Protocols Using Array Formulas., in the Proceedings of 15th International Symposium on Logic Based Program Synthesis and Transformation (LOPSTR 2005), Imperial College, London, UK, September 7-9, Hill P.M ed., Lecture Notes in Computer Science, 2005

2004  [top]
  • Pettorossi A., Maurizio Proietti: A theory of totally correct logic program transformations, in the Proceedings of 2004 ACM-SIGPLAN Symposium on Partial Evaluation and Semantics-Based Program Manipulation, ACM-SIGPLAN, 2004
  • Pettorossi A., Maurizio Proietti: Totally correct logic program transformations using well-founded annotations, in the Proceedings of Italian Conference on Computational Logic, Rossi G.F., Panegai E. eds., Quaderni del Dipartimento di Matematica - Università degli Studi di Parma, 2004
  • Pettorossi A., Maurizio Proietti, Fioravanti F.: Transformation rules for locally stratified constraint logic programs, in: Program Development in Computational Logic, Bruynooghe M., Lau K.-K. eds., Lecture Notes in Computer Science, 3049, Springer Heidelberg, 291-339, 2004

2003  [top]
  • Fioravanti F., Pettorossi A., Maurizio Proietti: Combining Logic Programs and Monadic Second Order Logics by Program Transformation, in: 12th International Symposium on Logic-based Program Develpment and Transformation, Leuschel M. ed., Lecture Notes in Computer Science, 2664, 160-181, 2003

2002  [top]
  • Fioravanti F., Pettorossi A., Maurizio Proietti: Verification of Sets of Infinite State Systems Using Program Transformation, in: Logic Based Program Synthesis and Transformation, Pettorossi A. ed., Lecture Notes in Computer Science, 2372, 111-128, 2002
  • Fioravanti F., Pettorossi A., Maurizio Proietti: Specialization with Clause Splitting for Deriving Deterministic Constraint Logic Programs, in the Proceedings of SMC'02, 6 - 9 October, 2002, Hammamet, Tunisia, IEEE International Conference on Systems, Man, and Cybernetics, 2002
  • Fioravanti F., Pettorossi A., Maurizio Proietti: Combining Logic Programs and Monadic Second Order Logics by Program Transformation, in the Proceedings of Proceedings of LOPSTR'02, Twelfth International Workshop on Logic-based Program Development and Transformation, 17-20 Sept. 2002, Madrid, Spain, Bueno F., Leuschel M. eds., 2002
  • Fioravanti F., Pettorossi A., Maurizio Proietti: A Specialization Technique For Deriving Deterministic Constraint Logic Programs and Its Application to Pattern Matching, in the Proceedings of AGP'02, 2002 Joint Conference on Declarative Programming, 16 - 18 September 2002, Madrid, Spain, Moreno-Navarro J.J., Marino-Carballo J. eds., 2002
  • Pettorossi A., Maurizio Proietti: Program Derivation = Rules + Strategies, Lecture Notes in Artificial Intelligence, 2407, 273-309, 2002

2001  [top]
  • Fioravanti F., Pettorossi A., Maurizio Proietti: Automated Strategies for Specializing Constraint Logic Programs, Lecture Notes in Computer Science, 2042, Springer-Verlag, 124-146, 2001
  • Fioravanti F., Pettorossi A., Maurizio Proietti: Verifying CTL Properties of Infinite State Systems by Specializing Constraint Logic Programs, in the Proceedings of ACM-Sigplan International Workshop on Verification and Computational Logic, VCL'2001, Florence, Italy, September 4, 2001, pp. 85-96., 2001
  • Fioravanti F., Pettorossi A., Maurizio Proietti: Verifcation of Sets of Infinite State Systems Using Program Transformation, in the Proceedings of Eleventh International Workshop on Logic-based Program Synthesis and Transformation, 2001

2000  [top]
  • Fioravanti F., Pettorossi A., Maurizio Proietti: Automated Strategies for Specializing Constraint Logic Programs, in the Proceedings of LOPSTR'2000, Logic-based Program Synthesis and Transformation, London, UK, 24-28 July, Lau K.-K. ed., 2000
  • Pettorossi A., Maurizio Proietti: Transformation Rules for Logic Programs with Goals as Arguments, in the Proceedings of Logic-based Program Synthesis and Transformation, LOPSTR '99, Venezia, Italy, Bossi A. ed., Lecture Notes in Computer Science, 1817, 2000
  • Pettorossi A., Maurizio Proietti: Perfect Model Checking via Unfold/Fold Transformations, in the Proceedings of First International Conference on Computational Logic, CL'2000, London, 24-28 July, 2000, Lloyd J.W., others eds., Lecture Notes in Artificial Intelligence, 1861, Springer, 613-628, 2000

1999  [top]
  • Fioravanti F., Pettorossi A., Maurizio Proietti: Rules and Strategies for Contextual Specialization of Constraint Logic Programs, in the Proceedings of ICLP'99 Workshop on Optimization and Implementation of Declarative Programming Languages, WOID '99, Las Cruces University, New Mexico, USA, December 2--3, Leuschel M. ed., 1999
  • Fioravanti F., Maurizio Proietti: Contextual Specialization of Constraint Logic Programs, in the Proceedings of Joint Conference on Declarative Programming, L'Aquila, Italy, Vilares Ferro M., Meo M.C. eds., 1999
  • Pettorossi A., Maurizio Proietti: Transformation Rules for Logic Programs with Goals as Arguments, in the Proceedings of LOPSTR '99, Logic-based Program Synthesis and Transformation, Bossi A. ed., 1999
  • Maurizio Proietti, Pettorossi A.: Transforming Inductive Definitions, in the Proceedings of 1999 International Conference on Logic Programming, De Schreye D. ed., Logic Programming Series, 1999

1998  [top]
  • Pettorossi A., Maurizio Proietti: Transformation of Logic Programs, Hogger C.J., Gabbay D.M., Robinson J.A. eds., Handbook of Logic in Artificial Intelligence and Logic Programming, 5, 697-787, 1998

1997  [top]
  • Pettorossi A., Maurizio Proietti: Future Directions in Program Transformation, in the Proceedings of Workshop on Strategic Directions in Computing Research, MIT, Cambridge, USA, SIGPLAN Notices, 32/1, ACM Press, 99-102, 1997
  • Pettorossi A., Maurizio Proietti: Program Derivation via List Introduction, in the Proceedings of IFIP TC2 Working Conference on Algorithmic Languages and Calculi, Le Bischenberg, France, Bird R., Meertens L.G.L.T. eds., Chapman \& Hall, 296-323, 1997
  • Pettorossi A., Maurizio Proietti: Flexible Continuations in Logic Programs via Unfold/Fold Transformations and Goal Generalization, in the Proceedings of 2nd ACM SIGPLAN Workshop on Continuations, ENS, Paris, France, Danvy O. ed., BRICS Notes Series, N6-93-13, 1997
  • Pettorossi A., Maurizio Proietti, Renault S.: Enhancing Partial Deduction via Unfold/Fold Rules, in the Proceedings of Logic Program Synthesis and Transformation, 6th International Workshop, Stockholm, Sweden, Gallagher J. ed., Lecture Notes in Computer Science, 1207, Springer-Verlag, 147-168, 1997
  • Pettorossi A., Maurizio Proietti, Renault S.: Reducing Nondeterminism while Specializing Logic Programs, in the Proceedings of 24th ACM Symposium on Principles of Programming Languages, La Sorbonne, Paris, France, SIGPLAN Notices, 1997

1996  [top]
  • Pettorossi A., Maurizio Proietti: A Theory of Logic Program Specialization and Generalization for Dealing with Input Data Properties, in the Proceedings of Dagstuhl Seminar on Partial Evaluation, Thiemann P., Danvy O., Glück R. eds., Lecture Notes in Computer Science, 1110, 1996
  • Pettorossi A., Maurizio Proietti: A Comparative Revisitation of Some Program Transformation Techniques, in the Proceedings of Dagstuhl Seminar on Partial Evaluation., Thiemann P., Danvy O., Glück R. eds., Lecture Notes in Computer Science, 1110, 1996
  • Pettorossi A., Maurizio Proietti, Renault S.: How to Extend Partial Deduction to Derive the KMP String-Matching Algorithm from a Naive Specification, in the Proceedings of Joint International Conference and Symposium on Logic Programming, Bonn, Germany, Maher M. ed., Logic Programming Series, 1996
  • Pettorossi A., Maurizio Proietti, Renault S.: Enhancing Partial Deduction via Unfold/Fold Rules, in the Proceedings of Logic Program Synthesis and Transformation, Proceedings LOPSTR '96, Stockholm, Sweden., Gallagher J. ed., 101-112, 1996

1995  [top]
  • Lau K.-K., Ornaghi M., Pettorossi A., Maurizio Proietti: Correctness of Logic Program Transformation Based on Existential Termination, in the Proceedings of 1995 International Logic Programming Symposium (ILPS '95), Lloyd J.W. ed., Logic Programming Series, 1995

1994  [top]
  • Maurizio Proietti, Pettorossi A.: Synthesis of Programs from Unfold/Fold Proofs, in the Proceedings of Logic Program Synthesis and Transformation, LOPSTR '93, Louvain-la-Neuve, Belgium, Deville Y. ed., Workshops in Computing, 1994
  • Maurizio Proietti, Pettorossi A.: Completeness of Some Transformation Strategies for Avoiding Unnecessary Logical Variables, in the Proceedings of Eleventh International Conference on Logic Programming (ICLP '94), S. Margherita Ligure, Italy, June 13--18, Van Hentenryck P. ed., Logic Programming Series, 1994

1993  [top]
  • Pettorossi A., Pietropoli E., Maurizio Proietti: The Use of the Tupling Strategy in the Development of Parallel Programs, in: Parallel Algorithm Derivation and Program Transformation, Paige R., Reif J., Wachter R. eds., Kluwer Academic Publishers, 111-151, 1993
  • Pettorossi A., Maurizio Proietti: Rules and Strategies for Program Transformation, in: Formal Program Development, IFIP TC2/WG2.1 State-of-the-Art Report, Schuman S., Möller B., Partsch H. eds., Lecture Notes in Computer Science, 755, Springer-Verlag, 263-304, 1993
  • Maurizio Proietti, Pettorossi A.: Best-First Strategies for Incremental Transformation of Logic Programs, in the Proceedings of Logic Program Synthesis and Transformation, Manchester 1992, Clement T.P., Lau K.-K. eds., Workshops in Computing, 1993
  • Maurizio Proietti, Pettorossi A.: Best-First Strategies for Incremental Transformation of Logic Programs, in the Proceedings of Logic Program Synthesis and Transformation, LOPSTR '92, Manchester, U.K., Lau K.-K., Clement T.P. eds., Springer-Verlag, 82-98, 1993

1992  [top]
  • Maurizio Proietti, Pettorossi A.: An Automatic Transformation Strategy for Avoiding Unnecessary Variables in Logic Programs, in the Proceedings of Logic Program Synthesis and Transformation, Manchester 1991, Lau K.-K., Clement T.P. eds., Workshops in Computing, 1992

1991  [top]
  • Maurizio Proietti, Pettorossi A.: Unfolding-Definition-Folding, in this Order, for Avoiding Unnecessary Variables in Logic Programs, in: Third International Symposium on Programming Language Implementation and Logic Programming, PLILP '91, Maluszynski J., Wirsing M. eds., Lecture Notes in Computer Science, 528, Springer-Verlag, 347-358, 1991
  • Maurizio Proietti, Pettorossi A.: Semantics Preserving Transformation Rules for Prolog, in the Proceedings of ACM Symposium on Partial Evaluation and Semantics Based Program Manipulation, PEPM '91, SIGPLAN Notices, pp. 274-285, 1991

1990  [top]
  • Maurizio Proietti, Pettorossi A.: Synthesis of Eureka Predicates for Developing Logic Programs, in the Proceedings of Third European Symposium on Programming, ESOP '90, Jones N. ed., Lecture Notes in Computer Science, 432, 1990
  • Maurizio Proietti, Pettorossi A.: Construction of Efficient Logic Programs by Loop Absorption and Generalization, in the Proceedings of Second International Workshop on Metaprogramming in Logic, Meta '90, Bruynooghe M. ed., 57-81, 1990

1989  [top]
  • Pettorossi A., Maurizio Proietti: Decidability Results and Characterization of Strategies for the Development of Logic Programs, in the Proceedings of Sixth International Conference on Logic Programming, Levi G., Martelli M. eds., Logic Programming Series, 1989

1988  [top]
  • Pettorossi A., Maurizio Proietti: Importing and Exporting Information in Program Development, in the Proceedings of IFIP TC2 Working Conference on Partial and Mixed Computation, Björner D., Ershov A.P. eds., North Holland, 405-426, 1988

1987  [top]
  • Maurizio Proietti: Connections between Partial Maps Categories and Tripos Theory, in the Proceedings of Summer Conference on Category Theory and Computer Science, Pitt D.H., Poigné A., Rydeheard D.E. eds., Lecture Notes in Computer Science, 283, Springer-Verlag, 254-269, 1987
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -