REAL-T: Time Modularization in Reactive Distributed Applications

In this paper, we propose REAL-T, a distributed event-based language with explicit support for time manipulation. The language introduces automata for operational time manipulation, causality constructs and Linear Temporal Logic for declarative time predicates, and a distributed-time aware event mod...

Full description

Autores:
Benavides Navarro, Luis Daniel
Pimienta, Camilo
Sanabria, Mateo
Díaz, Daniel
Garzón, Wilmer
Mello, Wilson
Arboleda, Hugo
Tipo de recurso:
Part of book
Fecha de publicación:
2018
Institución:
Escuela Colombiana de Ingeniería Julio Garavito
Repositorio:
Repositorio Institucional ECI
Idioma:
eng
OAI Identifier:
oai:repositorio.escuelaing.edu.co:001/1801
Acceso en línea:
https://repositorio.escuelaing.edu.co/handle/001/1801
Palabra clave:
Programación distribuida
Programación orientada a eventos
Lenguaje de programación
Distributed programming
Event oriented programming
Explicit and implicit time management
Rights
closedAccess
License
© Springer Nature Switzerland AG 2018
id ESCUELAIG2_95c201c0e96cfe6b88c4868b84c98920
oai_identifier_str oai:repositorio.escuelaing.edu.co:001/1801
network_acronym_str ESCUELAIG2
network_name_str Repositorio Institucional ECI
repository_id_str
dc.title.eng.fl_str_mv REAL-T: Time Modularization in Reactive Distributed Applications
title REAL-T: Time Modularization in Reactive Distributed Applications
spellingShingle REAL-T: Time Modularization in Reactive Distributed Applications
Programación distribuida
Programación orientada a eventos
Lenguaje de programación
Distributed programming
Event oriented programming
Explicit and implicit time management
title_short REAL-T: Time Modularization in Reactive Distributed Applications
title_full REAL-T: Time Modularization in Reactive Distributed Applications
title_fullStr REAL-T: Time Modularization in Reactive Distributed Applications
title_full_unstemmed REAL-T: Time Modularization in Reactive Distributed Applications
title_sort REAL-T: Time Modularization in Reactive Distributed Applications
dc.creator.fl_str_mv Benavides Navarro, Luis Daniel
Pimienta, Camilo
Sanabria, Mateo
Díaz, Daniel
Garzón, Wilmer
Mello, Wilson
Arboleda, Hugo
dc.contributor.author.none.fl_str_mv Benavides Navarro, Luis Daniel
Pimienta, Camilo
Sanabria, Mateo
Díaz, Daniel
Garzón, Wilmer
Mello, Wilson
Arboleda, Hugo
dc.contributor.researchgroup.spa.fl_str_mv Informática
dc.subject.armarc.spa.fl_str_mv Programación distribuida
Programación orientada a eventos
Lenguaje de programación
topic Programación distribuida
Programación orientada a eventos
Lenguaje de programación
Distributed programming
Event oriented programming
Explicit and implicit time management
dc.subject.proposal.eng.fl_str_mv Distributed programming
Event oriented programming
Explicit and implicit time management
description In this paper, we propose REAL-T, a distributed event-based language with explicit support for time manipulation. The language introduces automata for operational time manipulation, causality constructs and Linear Temporal Logic for declarative time predicates, and a distributed-time aware event model. We have developed a compiler for the language and a dynamic run-time framework. To validate the proposal we study detection of complex patterns of security vulnerabilities in IoT scenarios.
publishDate 2018
dc.date.issued.none.fl_str_mv 2018
dc.date.accessioned.none.fl_str_mv 2021-11-04T21:43:12Z
dc.date.available.none.fl_str_mv 2021-11-04T21:43:12Z
dc.type.spa.fl_str_mv Artículo de revista
dc.type.coar.fl_str_mv http://purl.org/coar/resource_type/c_2df8fbb1
dc.type.coarversion.fl_str_mv http://purl.org/coar/version/c_970fb48d4fbd8a85
dc.type.version.spa.fl_str_mv info:eu-repo/semantics/publishedVersion
dc.type.coar.spa.fl_str_mv http://purl.org/coar/resource_type/c_3248
dc.type.content.spa.fl_str_mv Text
dc.type.driver.spa.fl_str_mv info:eu-repo/semantics/bookPart
dc.type.redcol.spa.fl_str_mv http://purl.org/redcol/resource_type/ART
format http://purl.org/coar/resource_type/c_3248
status_str publishedVersion
dc.identifier.isbn.none.fl_str_mv 978-3-319-98998-3
dc.identifier.uri.none.fl_str_mv https://repositorio.escuelaing.edu.co/handle/001/1801
identifier_str_mv 978-3-319-98998-3
url https://repositorio.escuelaing.edu.co/handle/001/1801
dc.language.iso.spa.fl_str_mv eng
language eng
dc.relation.ispartofseries.none.fl_str_mv CCIS;Vol. 885
dc.relation.citationendpage.spa.fl_str_mv 127
dc.relation.citationstartpage.spa.fl_str_mv 113
dc.relation.indexed.spa.fl_str_mv N/A
dc.relation.ispartofbook.eng.fl_str_mv Communications in Computer and Information Science
dc.relation.references.spa.fl_str_mv Baier, C., Katoen, J.P.: Principles of Model Checking. MIT press, Cambridge (2008)
Ban, B., Grinovero, S.: JGroups (2011)
Barringer, H., Goldberg, A., Havelund, K., Sen, K.: Program monitoring with LTL in EAGLE. In: 18th International Parallel and Distributed Processing Symposium 2004, April 2004
Bellini, P., Mattolini, R., Nesi, P.: Temporal logics for real-time system specification. ACM Comput. Surv. 32(1), 12–42 (2000)
Benavides Navarro, L.D., Barrera, A., Garcés, K., Arboleda, H.: Detecting and coordinating complex patterns of distributed events with KETAL. Electron. Notes Theor. Comput. Sci. 281, 127–141 (2011)
Benavides Navarro, L.D., Douence, R., Südholt, M.: Debugging and testing middleware with aspect-based control-flow and causal patterns. In: Issarny, V., Schantz, R. (eds.) Middleware 2008. LNCS, vol. 5346, pp. 183–202. Springer, Heidelberg (2008).
Benton, N., Cardelli, L., Fournet, C.: Modern concurrency abstractions for c#. ACM Trans. Program. Lang. Syst. 26(5), 769–804 (2004)
Büchi, J.R.: Symposium on decision problems on a decision method in restricted second order arithmetic. Stud. Log. Found. Math. 44, 1–11 (1966)
Chen, F., Roşu, G.: Java-MOP: a monitoring oriented programming environment for Java. In: Halbwachs, N., Zuck, L.D. (eds.) TACAS 2005. LNCS, vol. 3440, pp. 546–550. Springer, Heidelberg (2005).
Chen, F., Roşu, G.: MOP: an efficient and generic runtime verification framework. In: ACM SIGPLAN Notices, vol. 42. ACM (2007)
Fisher, M.: An Introduction to Practical Formal Methods Using Temporal Logic. Wiley, Hoboken (2011)
Furia, C.A., Mandrioli, D., Morzenti, A., Rossi, M.: Modeling time in computing: a taxonomy and a comparative survey. ACM Comput. Surv. 42(2), 1–59 (2010)
Giannakopoulou, D., Lerda, F.: From states to transitions: improving translation of LTL formulae to Büchi automata. In: Peled, D.A., Vardi, M.Y. (eds.) FORTE 2002. LNCS, vol. 2529, pp. 308–326. Springer, Heidelberg (2002).
Harel, D.: Statecharts: a visual formalism for complex systems. Sci. Comput. Program. 8(3), 231–274 (1987).
Haydar, M., Boroday, S., Petrenko, A., Sahraoui, H.: Propositional scopes in linear temporal logic. In: Proceedings of the 5th International Conference on Novelles Technologies de la Repartition (NOTERE 2005) (2005)
Kiczales, G., et al.: Aspect-oriented programming. In: Akşit, M., Matsuoka, S. (eds.) ECOOP 1997. LNCS, vol. 1241, pp. 220–242. Springer, Heidelberg (1997).
Konur, S.: A survey on temporal logics for specifying and verifying real-time systems. Front. Comput. Sci. 7(3), 370–403 (2013)
Kröger, F., Merz, S.: Temporal Logic and State Systems. Springer, Berlin (2008).
Lamport, L.: Time, clocks, and the ordering of events in a distributed system. Commun. ACM 21(7), 558–565 (1978)
Lee, I., Lee, K.: The internet of things (IoT): applications, investments, and challenges for enterprises. Bus. Horiz. 58(4), 431–440 (2015)
Mattern, F., et al.: Virtual time and global states of distributed systems. Parallel Distrib. Algorithms 1(23), 215–226 (1989)
Meredith, P.O., Jin, D., Griffith, D., Chen, F., Roşu, G.: An overview of the MOP runtime verification framework. Int. J. Softw. Tools Technol. Transf. 14(3), 249–289 (2012)
Møller, A.: dk.brics.automaton – finite-state automata and regular expressions for Java (2017).
Naldurg, P., Sen, K., Thati, P.: A temporal logic based framework for intrusion detection. In: de Frutos-Escrig, D., Núñez, M. (eds.) FORTE 2004. LNCS, vol. 3235, pp. 359–376. Springer, Heidelberg (2004).
Ousterhout, J.: Why threads are a bad idea (for most purposes). In: Invited talk Given at USENIX Technical Conference (1996).
Petri, C.A.: Fundamentals of a theory of asynchronous information flow. In: IFIP Congress (1962)
van Renesse, R., Birman, K.P., Maffeis, S.: Horus: a flexible group communication system. Commun. ACM 39(4), 76–83 (1996)
Robiah, Y., Rahayu, S.S., Shahrin, S., Faizal, M., Zaki, M.M., Marliza, R.: New multi-step worm attack model. arXiv preprint arXiv:1001.3477 (2010)
dc.rights.eng.fl_str_mv © Springer Nature Switzerland AG 2018
dc.rights.coar.fl_str_mv http://purl.org/coar/access_right/c_14cb
dc.rights.uri.spa.fl_str_mv https://creativecommons.org/licenses/by/4.0/
dc.rights.accessrights.spa.fl_str_mv info:eu-repo/semantics/closedAccess
dc.rights.creativecommons.spa.fl_str_mv Atribución 4.0 Internacional (CC BY 4.0)
rights_invalid_str_mv © Springer Nature Switzerland AG 2018
https://creativecommons.org/licenses/by/4.0/
Atribución 4.0 Internacional (CC BY 4.0)
http://purl.org/coar/access_right/c_14cb
eu_rights_str_mv closedAccess
dc.format.extent.spa.fl_str_mv 15 páginas.
dc.format.mimetype.spa.fl_str_mv application/pdf
dc.publisher.spa.fl_str_mv Springer Nature
dc.publisher.place.spa.fl_str_mv Switzerland.
institution Escuela Colombiana de Ingeniería Julio Garavito
bitstream.url.fl_str_mv https://repositorio.escuelaing.edu.co/bitstream/001/1801/7/REAL-T%20Time%20Modularization%20in%20Reactive%20Distributed%20Applications.png
https://repositorio.escuelaing.edu.co/bitstream/001/1801/9/REAL-T%20Time%20Modularization%20in%20Reactive%20Distributed%20Applications.pdf.jpg
https://repositorio.escuelaing.edu.co/bitstream/001/1801/6/REAL-T%20Time%20Modularization%20in%20Reactive%20Distributed%20Applications.pdf
https://repositorio.escuelaing.edu.co/bitstream/001/1801/2/license.txt
https://repositorio.escuelaing.edu.co/bitstream/001/1801/3/Springer.pdf.txt
https://repositorio.escuelaing.edu.co/bitstream/001/1801/5/REAL-T%3a%20Time%20Modularization%20in%20Reactive%20Distributed%20Applications.pdf.txt
https://repositorio.escuelaing.edu.co/bitstream/001/1801/8/REAL-T%20Time%20Modularization%20in%20Reactive%20Distributed%20Applications.pdf.txt
bitstream.checksum.fl_str_mv 210c5a37b08732ad7a4389ef10585d2f
4eb4265191440f142c6271e9c3fd45c2
579127024b96f7592199efc7ed0f1fa9
5a7ca94c2e5326ee169f979d71d0f06e
d784fa8b6d98d27699781bd9a7cf19f0
d784fa8b6d98d27699781bd9a7cf19f0
678987cdb61b67b2717ed32f0dc7ef9f
bitstream.checksumAlgorithm.fl_str_mv MD5
MD5
MD5
MD5
MD5
MD5
MD5
repository.name.fl_str_mv Repositorio Escuela Colombiana de Ingeniería Julio Garavito
repository.mail.fl_str_mv repositorio.eci@escuelaing.edu.co
_version_ 1814355597502447616
spelling Benavides Navarro, Luis Daniel6fb8a207341d8b2f068df4c441aa67dd600Pimienta, Camiloedee336840ceb732be273e88017718c5600Sanabria, Mateo7ce70020c113039fb221b87674cf694c600Díaz, Daniel1f25d140d104722cf16f9d82f4d8475a600Garzón, Wilmer6b04a33a7db33dd5cc3491063fc48a95600Mello, Wilson58d8a9958969e14da20a4efa9a9ffee4600Arboleda, Hugof8462780e6dbe96346932fa9632d2bf3600Informática2021-11-04T21:43:12Z2021-11-04T21:43:12Z2018978-3-319-98998-3https://repositorio.escuelaing.edu.co/handle/001/1801In this paper, we propose REAL-T, a distributed event-based language with explicit support for time manipulation. The language introduces automata for operational time manipulation, causality constructs and Linear Temporal Logic for declarative time predicates, and a distributed-time aware event model. We have developed a compiler for the language and a dynamic run-time framework. To validate the proposal we study detection of complex patterns of security vulnerabilities in IoT scenarios.En este artículo, proponemos REAL-T, un lenguaje basado en eventos distribuidos con soporte explícito para la manipulación del tiempo. El lenguaje introduce autómatas para la manipulación operativa del tiempo, construcciones de causalidad y lógica temporal lineal para predicados de tiempo declarativos y un modelo de eventos consciente del tiempo distribuido. Hemos desarrollado un compilador para el lenguaje y un marco dinámico de tiempo de ejecución. Para validar la propuesta estudiamos la detección de patrones complejos de vulnerabilidades de seguridad en escenarios IoT.15 páginas.application/pdfengSpringer NatureSwitzerland.CCIS;Vol. 885127113N/ACommunications in Computer and Information ScienceBaier, C., Katoen, J.P.: Principles of Model Checking. MIT press, Cambridge (2008)Ban, B., Grinovero, S.: JGroups (2011)Barringer, H., Goldberg, A., Havelund, K., Sen, K.: Program monitoring with LTL in EAGLE. In: 18th International Parallel and Distributed Processing Symposium 2004, April 2004Bellini, P., Mattolini, R., Nesi, P.: Temporal logics for real-time system specification. ACM Comput. Surv. 32(1), 12–42 (2000)Benavides Navarro, L.D., Barrera, A., Garcés, K., Arboleda, H.: Detecting and coordinating complex patterns of distributed events with KETAL. Electron. Notes Theor. Comput. Sci. 281, 127–141 (2011)Benavides Navarro, L.D., Douence, R., Südholt, M.: Debugging and testing middleware with aspect-based control-flow and causal patterns. In: Issarny, V., Schantz, R. (eds.) Middleware 2008. LNCS, vol. 5346, pp. 183–202. Springer, Heidelberg (2008).Benton, N., Cardelli, L., Fournet, C.: Modern concurrency abstractions for c#. ACM Trans. Program. Lang. Syst. 26(5), 769–804 (2004)Büchi, J.R.: Symposium on decision problems on a decision method in restricted second order arithmetic. Stud. Log. Found. Math. 44, 1–11 (1966)Chen, F., Roşu, G.: Java-MOP: a monitoring oriented programming environment for Java. In: Halbwachs, N., Zuck, L.D. (eds.) TACAS 2005. LNCS, vol. 3440, pp. 546–550. Springer, Heidelberg (2005).Chen, F., Roşu, G.: MOP: an efficient and generic runtime verification framework. In: ACM SIGPLAN Notices, vol. 42. ACM (2007)Fisher, M.: An Introduction to Practical Formal Methods Using Temporal Logic. Wiley, Hoboken (2011)Furia, C.A., Mandrioli, D., Morzenti, A., Rossi, M.: Modeling time in computing: a taxonomy and a comparative survey. ACM Comput. Surv. 42(2), 1–59 (2010)Giannakopoulou, D., Lerda, F.: From states to transitions: improving translation of LTL formulae to Büchi automata. In: Peled, D.A., Vardi, M.Y. (eds.) FORTE 2002. LNCS, vol. 2529, pp. 308–326. Springer, Heidelberg (2002).Harel, D.: Statecharts: a visual formalism for complex systems. Sci. Comput. Program. 8(3), 231–274 (1987).Haydar, M., Boroday, S., Petrenko, A., Sahraoui, H.: Propositional scopes in linear temporal logic. In: Proceedings of the 5th International Conference on Novelles Technologies de la Repartition (NOTERE 2005) (2005)Kiczales, G., et al.: Aspect-oriented programming. In: Akşit, M., Matsuoka, S. (eds.) ECOOP 1997. LNCS, vol. 1241, pp. 220–242. Springer, Heidelberg (1997).Konur, S.: A survey on temporal logics for specifying and verifying real-time systems. Front. Comput. Sci. 7(3), 370–403 (2013)Kröger, F., Merz, S.: Temporal Logic and State Systems. Springer, Berlin (2008).Lamport, L.: Time, clocks, and the ordering of events in a distributed system. Commun. ACM 21(7), 558–565 (1978)Lee, I., Lee, K.: The internet of things (IoT): applications, investments, and challenges for enterprises. Bus. Horiz. 58(4), 431–440 (2015)Mattern, F., et al.: Virtual time and global states of distributed systems. Parallel Distrib. Algorithms 1(23), 215–226 (1989)Meredith, P.O., Jin, D., Griffith, D., Chen, F., Roşu, G.: An overview of the MOP runtime verification framework. Int. J. Softw. Tools Technol. Transf. 14(3), 249–289 (2012)Møller, A.: dk.brics.automaton – finite-state automata and regular expressions for Java (2017).Naldurg, P., Sen, K., Thati, P.: A temporal logic based framework for intrusion detection. In: de Frutos-Escrig, D., Núñez, M. (eds.) FORTE 2004. LNCS, vol. 3235, pp. 359–376. Springer, Heidelberg (2004).Ousterhout, J.: Why threads are a bad idea (for most purposes). In: Invited talk Given at USENIX Technical Conference (1996).Petri, C.A.: Fundamentals of a theory of asynchronous information flow. In: IFIP Congress (1962)van Renesse, R., Birman, K.P., Maffeis, S.: Horus: a flexible group communication system. Commun. ACM 39(4), 76–83 (1996)Robiah, Y., Rahayu, S.S., Shahrin, S., Faizal, M., Zaki, M.M., Marliza, R.: New multi-step worm attack model. arXiv preprint arXiv:1001.3477 (2010)© Springer Nature Switzerland AG 2018https://creativecommons.org/licenses/by/4.0/info:eu-repo/semantics/closedAccessAtribución 4.0 Internacional (CC BY 4.0)http://purl.org/coar/access_right/c_14cbREAL-T: Time Modularization in Reactive Distributed ApplicationsArtículo de revistainfo:eu-repo/semantics/publishedVersionhttp://purl.org/coar/resource_type/c_3248http://purl.org/coar/resource_type/c_2df8fbb1Textinfo:eu-repo/semantics/bookParthttp://purl.org/redcol/resource_type/ARThttp://purl.org/coar/version/c_970fb48d4fbd8a85Programación distribuidaProgramación orientada a eventosLenguaje de programaciónDistributed programmingEvent oriented programmingExplicit and implicit time managementTHUMBNAILREAL-T Time Modularization in Reactive Distributed Applications.pngREAL-T Time Modularization in Reactive Distributed Applications.pngimage/png95717https://repositorio.escuelaing.edu.co/bitstream/001/1801/7/REAL-T%20Time%20Modularization%20in%20Reactive%20Distributed%20Applications.png210c5a37b08732ad7a4389ef10585d2fMD57open accessREAL-T Time Modularization in Reactive Distributed Applications.pdf.jpgREAL-T Time Modularization in Reactive Distributed Applications.pdf.jpgGenerated Thumbnailimage/jpeg12243https://repositorio.escuelaing.edu.co/bitstream/001/1801/9/REAL-T%20Time%20Modularization%20in%20Reactive%20Distributed%20Applications.pdf.jpg4eb4265191440f142c6271e9c3fd45c2MD59metadata only accessORIGINALREAL-T Time Modularization in Reactive Distributed Applications.pdfREAL-T Time Modularization in Reactive Distributed Applications.pdfArtículo de revistaapplication/pdf889433https://repositorio.escuelaing.edu.co/bitstream/001/1801/6/REAL-T%20Time%20Modularization%20in%20Reactive%20Distributed%20Applications.pdf579127024b96f7592199efc7ed0f1fa9MD56metadata only accessLICENSElicense.txtlicense.txttext/plain; charset=utf-81881https://repositorio.escuelaing.edu.co/bitstream/001/1801/2/license.txt5a7ca94c2e5326ee169f979d71d0f06eMD52open accessTEXTSpringer.pdf.txtSpringer.pdf.txtExtracted texttext/plain2https://repositorio.escuelaing.edu.co/bitstream/001/1801/3/Springer.pdf.txtd784fa8b6d98d27699781bd9a7cf19f0MD53open accessREAL-T: Time Modularization in Reactive Distributed Applications.pdf.txtREAL-T: Time Modularization in Reactive Distributed Applications.pdf.txtExtracted texttext/plain2https://repositorio.escuelaing.edu.co/bitstream/001/1801/5/REAL-T%3a%20Time%20Modularization%20in%20Reactive%20Distributed%20Applications.pdf.txtd784fa8b6d98d27699781bd9a7cf19f0MD55metadata only accessREAL-T Time Modularization in Reactive Distributed Applications.pdf.txtREAL-T Time Modularization in Reactive Distributed Applications.pdf.txtExtracted texttext/plain37449https://repositorio.escuelaing.edu.co/bitstream/001/1801/8/REAL-T%20Time%20Modularization%20in%20Reactive%20Distributed%20Applications.pdf.txt678987cdb61b67b2717ed32f0dc7ef9fMD58metadata only access001/1801oai:repositorio.escuelaing.edu.co:001/18012022-11-24 03:01:28.103metadata only accessRepositorio Escuela Colombiana de Ingeniería Julio Garavitorepositorio.eci@escuelaing.edu.coU0kgVVNURUQgSEFDRSBQQVJURSBERUwgR1JVUE8gREUgUEFSRVMgRVZBTFVBRE9SRVMgREUgTEEgQ09MRUNDScOTTiAiUEVFUiBSRVZJRVciLCBPTUlUQSBFU1RBIExJQ0VOQ0lBLgoKQXV0b3Jpem8gYSBsYSBFc2N1ZWxhIENvbG9tYmlhbmEgZGUgSW5nZW5pZXLDrWEgSnVsaW8gR2FyYXZpdG8gcGFyYSBwdWJsaWNhciBlbCB0cmFiYWpvIGRlIGdyYWRvLCBhcnTDrWN1bG8sIHZpZGVvLCAKY29uZmVyZW5jaWEsIGxpYnJvLCBpbWFnZW4sIGZvdG9ncmFmw61hLCBhdWRpbywgcHJlc2VudGFjacOzbiB1IG90cm8gKGVuICAgIGFkZWxhbnRlIGRvY3VtZW50bykgcXVlIGVuIGxhIGZlY2hhIAplbnRyZWdvIGVuIGZvcm1hdG8gZGlnaXRhbCwgeSBsZSBwZXJtaXRvIGRlIGZvcm1hIGluZGVmaW5pZGEgcXVlIGxvIHB1YmxpcXVlIGVuIGVsIHJlcG9zaXRvcmlvIGluc3RpdHVjaW9uYWwsIAplbiBsb3MgdMOpcm1pbm9zIGVzdGFibGVjaWRvcyBlbiBsYSBMZXkgMjMgZGUgMTk4MiwgbGEgTGV5IDQ0IGRlIDE5OTMsIHkgZGVtw6FzIGxleWVzIHkganVyaXNwcnVkZW5jaWEgdmlnZW50ZQphbCByZXNwZWN0bywgcGFyYSBmaW5lcyBlZHVjYXRpdm9zIHkgbm8gbHVjcmF0aXZvcy4gRXN0YSBhdXRvcml6YWNpw7NuIGVzIHbDoWxpZGEgcGFyYSBsYXMgZmFjdWx0YWRlcyB5IGRlcmVjaG9zIGRlIAp1c28gc29icmUgbGEgb2JyYSBlbiBmb3JtYXRvIGRpZ2l0YWwsIGVsZWN0csOzbmljbywgdmlydHVhbDsgeSBwYXJhIHVzb3MgZW4gcmVkZXMsIGludGVybmV0LCBleHRyYW5ldCwgeSBjdWFscXVpZXIgCmZvcm1hdG8gbyBtZWRpbyBjb25vY2lkbyBvIHBvciBjb25vY2VyLgpFbiBtaSBjYWxpZGFkIGRlIGF1dG9yLCBleHByZXNvIHF1ZSBlbCBkb2N1bWVudG8gb2JqZXRvIGRlIGxhIHByZXNlbnRlIGF1dG9yaXphY2nDs24gZXMgb3JpZ2luYWwgeSBsbyBlbGFib3LDqSBzaW4gCnF1ZWJyYW50YXIgbmkgc3VwbGFudGFyIGxvcyBkZXJlY2hvcyBkZSBhdXRvciBkZSB0ZXJjZXJvcy4gUG9yIGxvIHRhbnRvLCBlcyBkZSBtaSBleGNsdXNpdmEgYXV0b3LDrWEgeSwgZW4gY29uc2VjdWVuY2lhLCAKdGVuZ28gbGEgdGl0dWxhcmlkYWQgc29icmUgw6lsLiBFbiBjYXNvIGRlIHF1ZWphIG8gYWNjacOzbiBwb3IgcGFydGUgZGUgdW4gdGVyY2VybyByZWZlcmVudGUgYSBsb3MgZGVyZWNob3MgZGUgYXV0b3Igc29icmUgCmVsIGRvY3VtZW50byBlbiBjdWVzdGnDs24sIGFzdW1pcsOpIGxhIHJlc3BvbnNhYmlsaWRhZCB0b3RhbCB5IHNhbGRyw6kgZW4gZGVmZW5zYSBkZSBsb3MgZGVyZWNob3MgYXF1w60gYXV0b3JpemFkb3MuIEVzdG8gCnNpZ25pZmljYSBxdWUsIHBhcmEgdG9kb3MgbG9zIGVmZWN0b3MsIGxhIEVzY3VlbGEgYWN0w7phIGNvbW8gdW4gdGVyY2VybyBkZSBidWVuYSBmZS4KVG9kYSBwZXJzb25hIHF1ZSBjb25zdWx0ZSBlbCBSZXBvc2l0b3JpbyBJbnN0aXR1Y2lvbmFsIGRlIGxhIEVzY3VlbGEsIGVsIENhdMOhbG9nbyBlbiBsw61uZWEgdSBvdHJvIG1lZGlvIGVsZWN0csOzbmljbywgCnBvZHLDoSBjb3BpYXIgYXBhcnRlcyBkZWwgdGV4dG8sIGNvbiBlbCBjb21wcm9taXNvIGRlIGNpdGFyIHNpZW1wcmUgbGEgZnVlbnRlLCBsYSBjdWFsIGluY2x1eWUgZWwgdMOtdHVsbyBkZWwgdHJhYmFqbyB5IGVsIAphdXRvci5Fc3RhIGF1dG9yaXphY2nDs24gbm8gaW1wbGljYSByZW51bmNpYSBhIGxhIGZhY3VsdGFkIHF1ZSB0ZW5nbyBkZSBwdWJsaWNhciB0b3RhbCBvIHBhcmNpYWxtZW50ZSBsYSBvYnJhIGVuIG90cm9zIAptZWRpb3MuRXN0YSBhdXRvcml6YWNpw7NuIGVzdMOhIHJlc3BhbGRhZGEgcG9yIGxhcyBmaXJtYXMgZGVsIChsb3MpIGF1dG9yKGVzKSBkZWwgZG9jdW1lbnRvLiAKU8OtIGF1dG9yaXpvIChhbWJvcykK