Aplicando técnicas de aprendizaje profundo al juego de ritmo "Osu!"

A lo largo de los últimos años, el desarrollo de la inteligencia artificial (IA) en el campo de los videojuegos ha sido objeto de interés. Esto se debe a que los mismos proponen múltiples retos de alta complejidad que impulsan el desarrollo de nuevas tecnologías. En este contexto, el objetivo del pr...

Full description

Autores:
Zona Moreno, Sergio Julián
Tipo de recurso:
Trabajo de grado de pregrado
Fecha de publicación:
2023
Institución:
Universidad de los Andes
Repositorio:
Séneca: repositorio Uniandes
Idioma:
spa
OAI Identifier:
oai:repositorio.uniandes.edu.co:1992/70669
Acceso en línea:
http://hdl.handle.net/1992/70669
Palabra clave:
Video juegos
Agente de juego
Aprendizaje profundo por refuerzo
PPO
Juego por cuenta propia
Inteligencia artificial
Ingeniería
Rights
openAccess
License
Atribución 4.0 Internacional
id UNIANDES2_c862090fdcd591960ede8646d1926dc8
oai_identifier_str oai:repositorio.uniandes.edu.co:1992/70669
network_acronym_str UNIANDES2
network_name_str Séneca: repositorio Uniandes
repository_id_str
dc.title.none.fl_str_mv Aplicando técnicas de aprendizaje profundo al juego de ritmo "Osu!"
title Aplicando técnicas de aprendizaje profundo al juego de ritmo "Osu!"
spellingShingle Aplicando técnicas de aprendizaje profundo al juego de ritmo "Osu!"
Video juegos
Agente de juego
Aprendizaje profundo por refuerzo
PPO
Juego por cuenta propia
Inteligencia artificial
Ingeniería
title_short Aplicando técnicas de aprendizaje profundo al juego de ritmo "Osu!"
title_full Aplicando técnicas de aprendizaje profundo al juego de ritmo "Osu!"
title_fullStr Aplicando técnicas de aprendizaje profundo al juego de ritmo "Osu!"
title_full_unstemmed Aplicando técnicas de aprendizaje profundo al juego de ritmo "Osu!"
title_sort Aplicando técnicas de aprendizaje profundo al juego de ritmo "Osu!"
dc.creator.fl_str_mv Zona Moreno, Sergio Julián
dc.contributor.advisor.none.fl_str_mv Takahashi Rodríguez, Silvia
dc.contributor.author.none.fl_str_mv Zona Moreno, Sergio Julián
dc.contributor.researchgroup.es_CO.fl_str_mv FLAG
dc.subject.keyword.none.fl_str_mv Video juegos
Agente de juego
Aprendizaje profundo por refuerzo
PPO
Juego por cuenta propia
Inteligencia artificial
topic Video juegos
Agente de juego
Aprendizaje profundo por refuerzo
PPO
Juego por cuenta propia
Inteligencia artificial
Ingeniería
dc.subject.themes.es_CO.fl_str_mv Ingeniería
description A lo largo de los últimos años, el desarrollo de la inteligencia artificial (IA) en el campo de los videojuegos ha sido objeto de interés. Esto se debe a que los mismos proponen múltiples retos de alta complejidad que impulsan el desarrollo de nuevas tecnologías. En este contexto, el objetivo del proyecto es desarrollar un Game Agent utilizando técnicas de aprendizaje profundo en el videojuego "Osu!" con el fin de evaluar su efectividad en un juego de ritmo. Particularmente, se implementó la técnica de aprendizaje profundo Proximal Policy Optimization (PPO) para determinar si su uso puede extrapolarse a otros contextos, situaciones y/o proyectos de la vida cotidiana.
publishDate 2023
dc.date.accessioned.none.fl_str_mv 2023-09-15T15:30:09Z
dc.date.available.none.fl_str_mv 2023-09-15T15:30:09Z
dc.date.issued.none.fl_str_mv 2023-09-11
dc.type.es_CO.fl_str_mv Trabajo de grado - Pregrado
dc.type.driver.none.fl_str_mv info:eu-repo/semantics/bachelorThesis
dc.type.version.none.fl_str_mv info:eu-repo/semantics/acceptedVersion
dc.type.coar.none.fl_str_mv http://purl.org/coar/resource_type/c_7a1f
dc.type.content.es_CO.fl_str_mv Text
dc.type.redcol.none.fl_str_mv http://purl.org/redcol/resource_type/TP
format http://purl.org/coar/resource_type/c_7a1f
status_str acceptedVersion
dc.identifier.uri.none.fl_str_mv http://hdl.handle.net/1992/70669
dc.identifier.instname.es_CO.fl_str_mv instname:Universidad de los Andes
dc.identifier.reponame.es_CO.fl_str_mv reponame:Repositorio Institucional Séneca
dc.identifier.repourl.es_CO.fl_str_mv repourl:https://repositorio.uniandes.edu.co/
url http://hdl.handle.net/1992/70669
identifier_str_mv instname:Universidad de los Andes
reponame:Repositorio Institucional Séneca
repourl:https://repositorio.uniandes.edu.co/
dc.language.iso.es_CO.fl_str_mv spa
language spa
dc.relation.references.es_CO.fl_str_mv Risi, S., & Preuss, · Mike. (2020). From Chess and Atari to StarCraft and Beyond: How Game AI is Driving the World of AI. KI - Künstliche Intelligenz, 34, 7-17. https://doi.org/10.1007/s13218-020-00647-w
AI for Good. (2021, septiembre 2). How video games can help Artificial Intelligence deliver real-world impact. https://aiforgood.itu.int/how-video-games-can-help-artificialintelligence-deliver-real-world-impact/
Nield, T. (2019, julio 10). The Practical Value of Game AI. https://towardsdatascience.com/ai-research-and-the-video-game-fetish-71cb62ffd6b3
van Stee, J. (2020). Creating an AI for the Rhytm Game osu! [Leiden Institute of Advanced Computer Science (LIACS)]. https://theses.liacs.nl/pdf/2019-2020-SteeJvander.pdf
Vedal, J. (2022, diciembre 19). Neuro-sama Ch. Vedal AI. https://www.youtube.com/@Neurosama
Open AI. (2022). Gymnasium documentation. https://gymnasium.farama.org/
Russel, S., & Norvig, P. (2010). Artificial Intelligence - A Modern Approach.
Schulman, J., Wolski, F., Dhariwal, P., Radford, A., & Openai, O. K. (2017). Proximal Policy Optimization Algorithms.
van Heeswijk, W. (2022, noviembre 29). Proximal Policy Optimization (PPO) Explained. https://towardsdatascience.com/proximal-policy-optimization-ppo-explainedabed1952457b
Open AI. (2023, febrero 2). ChatGPT: Optimizing Language Models for Dialogue. . https://openai.com/blog/chatgpt
Marcin Szczepanski, & European Parliamentary Research Service. (2019). Economic impacts of artificial intelligence (AI). https://www.europarl.europa.eu/RegData/etudes/BRIE/2019/637967/EPRS_BRI(2019)6 37967_EN.pdf
Stanford University. (2021). Artificial Intelligence Index Report 2021. https://aiindex.stanford.edu/wp-content/uploads/2021/03/2021-AI-Index-Report- _Chapter-1.pdf
IBM. (s. f.). ¿Qué es Deep Learning? Recuperado 14 de marzo de 2023, de https://www.ibm.com/es-es/topics/deep-learning
Bhatt, S. (2018, marzo 19). Reinforcement Learning 101. Towards Data Science. https://towardsdatascience.com/reinforcement-learning-101-e24b50e1d292
Arxiv Insights. (2018, octubre 1). An introduction to Policy Gradient methods - Deep Reinforcement Learning. https://www.youtube.com/watch?v=5P7I-xPq8u8
Schulman, J., Wolski, F., Dhariwal, P., Radford, A., & Openai, O. K. (2017). Proximal Policy Optimization Algorithms. https://arxiv.org/abs/1707.06347v2
Intel Corporation. (2022). OpenCV - Open Computer Vision Library. 4.7.0. https://opencv.org/
Google Brain Team. (s. f.). TensorFlow. 2015. Recuperado 14 de febrero de 2023, de https://www.tensorflow.org/?hl=es-419
Chollet, F. (2015). Keras: Deep Learning for humans. https://keras.io/
Hammond, M. (2018). pyWin32 - Python for Windows Extensions. https://sourceforge.net/projects/pywin32/
NVIDIA. (s. f.). CUDA Toolkit . Recuperado 17 de febrero de 2023, de https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html
Sweigart, A. (s. f.). PyAutoGUI. Recuperado 17 de febrero de 2023, de https://github.com/asweigart/pyautogui
note35. (2018). Osu Map Parser. 2018
Learn Code By Learning. (2020). OpenCV Object Detection in Games. https://www.youtube.com/playlist?list=PL1m2M8LQlzfKtkKq2lK5xko4X-8EZzFPI
Roger, K. (2022). Music: An Appreciation (10th Edition). McGrawHill.
Baldisseri, F., Maiani, A., Montecchiani, E., Delli Priscoli, F., Giuseppi, A., Menegatti, D., & Fogliati, V. (2022). An Integrated Music and Artificial Intelligence System in Support of Pediatric Neurorehabilitation. Healthcare 2022, Vol. 10, Page 2014, 10(10), 2014. https://doi.org/10.3390/HEALTHCARE10102014
Heijnen, E. (2023). Cheat Engine. https://www.cheatengine.org/
dc.rights.license.*.fl_str_mv Atribución 4.0 Internacional
dc.rights.uri.*.fl_str_mv http://creativecommons.org/licenses/by/4.0/
dc.rights.accessrights.none.fl_str_mv info:eu-repo/semantics/openAccess
dc.rights.coar.none.fl_str_mv http://purl.org/coar/access_right/c_abf2
rights_invalid_str_mv Atribución 4.0 Internacional
http://creativecommons.org/licenses/by/4.0/
http://purl.org/coar/access_right/c_abf2
eu_rights_str_mv openAccess
dc.format.extent.es_CO.fl_str_mv 38 páginas
dc.format.mimetype.es_CO.fl_str_mv application/pdf
dc.publisher.es_CO.fl_str_mv Universidad de los Andes
dc.publisher.program.es_CO.fl_str_mv Ingeniería de Sistemas y Computación
dc.publisher.faculty.es_CO.fl_str_mv Facultad de Ingeniería
dc.publisher.department.es_CO.fl_str_mv Departamento de Ingeniería Sistemas y Computación
institution Universidad de los Andes
bitstream.url.fl_str_mv https://repositorio.uniandes.edu.co/bitstreams/5e7fb701-93ad-41f0-80a5-a652517c03ca/download
https://repositorio.uniandes.edu.co/bitstreams/f8a33fba-191a-4903-843e-6f6fc66d6bb1/download
https://repositorio.uniandes.edu.co/bitstreams/464ffbb3-4c02-40b6-9f3b-7331f7bc2d8c/download
https://repositorio.uniandes.edu.co/bitstreams/96fc2432-9cab-4488-a2b8-e764f6e76ce2/download
https://repositorio.uniandes.edu.co/bitstreams/4d61d68b-be88-4197-8c53-478ad1d014eb/download
https://repositorio.uniandes.edu.co/bitstreams/01855d89-38d2-4f37-bc7f-b24a01ce5968/download
https://repositorio.uniandes.edu.co/bitstreams/a29b7971-0b7d-4725-ba61-365f4c8d10e8/download
https://repositorio.uniandes.edu.co/bitstreams/d7df1ed6-5176-4c3b-8d12-e1889c35eab3/download
bitstream.checksum.fl_str_mv e0c2b19a263cfe74b653e01ea85e0822
552760792d9e9600b70b7b019a73b6cc
0175ea4a2d4caec4bbcc37e300941108
5aa5c691a1ffe97abd12c2966efcb8d6
c0f3b6a581d01a96eaa8c812384b2b4b
08b106dfeb12472e88207a069e15ba30
2001f171c64a41890176d7ecd128bc47
6dc5e5a387222453aef5817d61ea950c
bitstream.checksumAlgorithm.fl_str_mv MD5
MD5
MD5
MD5
MD5
MD5
MD5
MD5
repository.name.fl_str_mv Repositorio institucional Séneca
repository.mail.fl_str_mv adminrepositorio@uniandes.edu.co
_version_ 1808390252220383232
spelling Atribución 4.0 Internacionalhttp://creativecommons.org/licenses/by/4.0/info:eu-repo/semantics/openAccesshttp://purl.org/coar/access_right/c_abf2Takahashi Rodríguez, Silviavirtual::5462-1Zona Moreno, Sergio Juliáne907688f-459a-48fd-bf76-1e9b513a5025600FLAG2023-09-15T15:30:09Z2023-09-15T15:30:09Z2023-09-11http://hdl.handle.net/1992/70669instname:Universidad de los Andesreponame:Repositorio Institucional Sénecarepourl:https://repositorio.uniandes.edu.co/A lo largo de los últimos años, el desarrollo de la inteligencia artificial (IA) en el campo de los videojuegos ha sido objeto de interés. Esto se debe a que los mismos proponen múltiples retos de alta complejidad que impulsan el desarrollo de nuevas tecnologías. En este contexto, el objetivo del proyecto es desarrollar un Game Agent utilizando técnicas de aprendizaje profundo en el videojuego "Osu!" con el fin de evaluar su efectividad en un juego de ritmo. Particularmente, se implementó la técnica de aprendizaje profundo Proximal Policy Optimization (PPO) para determinar si su uso puede extrapolarse a otros contextos, situaciones y/o proyectos de la vida cotidiana.Ingeniero de Sistemas y ComputaciónPregrado38 páginasapplication/pdfspaUniversidad de los AndesIngeniería de Sistemas y ComputaciónFacultad de IngenieríaDepartamento de Ingeniería Sistemas y ComputaciónAplicando técnicas de aprendizaje profundo al juego de ritmo "Osu!"Trabajo de grado - Pregradoinfo:eu-repo/semantics/bachelorThesisinfo:eu-repo/semantics/acceptedVersionhttp://purl.org/coar/resource_type/c_7a1fTexthttp://purl.org/redcol/resource_type/TPVideo juegosAgente de juegoAprendizaje profundo por refuerzoPPOJuego por cuenta propiaInteligencia artificialIngenieríaRisi, S., & Preuss, · Mike. (2020). From Chess and Atari to StarCraft and Beyond: How Game AI is Driving the World of AI. KI - Künstliche Intelligenz, 34, 7-17. https://doi.org/10.1007/s13218-020-00647-wAI for Good. (2021, septiembre 2). How video games can help Artificial Intelligence deliver real-world impact. https://aiforgood.itu.int/how-video-games-can-help-artificialintelligence-deliver-real-world-impact/Nield, T. (2019, julio 10). The Practical Value of Game AI. https://towardsdatascience.com/ai-research-and-the-video-game-fetish-71cb62ffd6b3van Stee, J. (2020). Creating an AI for the Rhytm Game osu! [Leiden Institute of Advanced Computer Science (LIACS)]. https://theses.liacs.nl/pdf/2019-2020-SteeJvander.pdfVedal, J. (2022, diciembre 19). Neuro-sama Ch. Vedal AI. https://www.youtube.com/@NeurosamaOpen AI. (2022). Gymnasium documentation. https://gymnasium.farama.org/Russel, S., & Norvig, P. (2010). Artificial Intelligence - A Modern Approach.Schulman, J., Wolski, F., Dhariwal, P., Radford, A., & Openai, O. K. (2017). Proximal Policy Optimization Algorithms.van Heeswijk, W. (2022, noviembre 29). Proximal Policy Optimization (PPO) Explained. https://towardsdatascience.com/proximal-policy-optimization-ppo-explainedabed1952457bOpen AI. (2023, febrero 2). ChatGPT: Optimizing Language Models for Dialogue. . https://openai.com/blog/chatgptMarcin Szczepanski, & European Parliamentary Research Service. (2019). Economic impacts of artificial intelligence (AI). https://www.europarl.europa.eu/RegData/etudes/BRIE/2019/637967/EPRS_BRI(2019)6 37967_EN.pdfStanford University. (2021). Artificial Intelligence Index Report 2021. https://aiindex.stanford.edu/wp-content/uploads/2021/03/2021-AI-Index-Report- _Chapter-1.pdfIBM. (s. f.). ¿Qué es Deep Learning? Recuperado 14 de marzo de 2023, de https://www.ibm.com/es-es/topics/deep-learningBhatt, S. (2018, marzo 19). Reinforcement Learning 101. Towards Data Science. https://towardsdatascience.com/reinforcement-learning-101-e24b50e1d292Arxiv Insights. (2018, octubre 1). An introduction to Policy Gradient methods - Deep Reinforcement Learning. https://www.youtube.com/watch?v=5P7I-xPq8u8Schulman, J., Wolski, F., Dhariwal, P., Radford, A., & Openai, O. K. (2017). Proximal Policy Optimization Algorithms. https://arxiv.org/abs/1707.06347v2Intel Corporation. (2022). OpenCV - Open Computer Vision Library. 4.7.0. https://opencv.org/Google Brain Team. (s. f.). TensorFlow. 2015. Recuperado 14 de febrero de 2023, de https://www.tensorflow.org/?hl=es-419Chollet, F. (2015). Keras: Deep Learning for humans. https://keras.io/Hammond, M. (2018). pyWin32 - Python for Windows Extensions. https://sourceforge.net/projects/pywin32/NVIDIA. (s. f.). CUDA Toolkit . Recuperado 17 de febrero de 2023, de https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.htmlSweigart, A. (s. f.). PyAutoGUI. Recuperado 17 de febrero de 2023, de https://github.com/asweigart/pyautoguinote35. (2018). Osu Map Parser. 2018Learn Code By Learning. (2020). OpenCV Object Detection in Games. https://www.youtube.com/playlist?list=PL1m2M8LQlzfKtkKq2lK5xko4X-8EZzFPIRoger, K. (2022). Music: An Appreciation (10th Edition). McGrawHill.Baldisseri, F., Maiani, A., Montecchiani, E., Delli Priscoli, F., Giuseppi, A., Menegatti, D., & Fogliati, V. (2022). An Integrated Music and Artificial Intelligence System in Support of Pediatric Neurorehabilitation. Healthcare 2022, Vol. 10, Page 2014, 10(10), 2014. https://doi.org/10.3390/HEALTHCARE10102014Heijnen, E. (2023). Cheat Engine. https://www.cheatengine.org/201914936Publicationhttps://scholar.google.es/citations?user=x7gjZ04AAAAJvirtual::5462-10000-0001-7971-8979virtual::5462-1https://scienti.minciencias.gov.co/cvlac/visualizador/generarCurriculoCv.do?cod_rh=0000143898virtual::5462-17ab9a4e1-60f0-4e06-936b-39f2bf93d8a0virtual::5462-17ab9a4e1-60f0-4e06-936b-39f2bf93d8a0virtual::5462-1ORIGINALAplicando técnicas de aprendizaje profundo al juego de ritmo ¿Osu!.pdfAplicando técnicas de aprendizaje profundo al juego de ritmo ¿Osu!.pdfProyecto de gradoapplication/pdf952711https://repositorio.uniandes.edu.co/bitstreams/5e7fb701-93ad-41f0-80a5-a652517c03ca/downloade0c2b19a263cfe74b653e01ea85e0822MD54Autorizacio¿n tesis - Firmada.pdfAutorizacio¿n tesis - Firmada.pdfHIDEapplication/pdf241858https://repositorio.uniandes.edu.co/bitstreams/f8a33fba-191a-4903-843e-6f6fc66d6bb1/download552760792d9e9600b70b7b019a73b6ccMD53CC-LICENSElicense_rdflicense_rdfapplication/rdf+xml; charset=utf-8908https://repositorio.uniandes.edu.co/bitstreams/464ffbb3-4c02-40b6-9f3b-7331f7bc2d8c/download0175ea4a2d4caec4bbcc37e300941108MD52LICENSElicense.txtlicense.txttext/plain; charset=utf-81810https://repositorio.uniandes.edu.co/bitstreams/96fc2432-9cab-4488-a2b8-e764f6e76ce2/download5aa5c691a1ffe97abd12c2966efcb8d6MD51TEXTAplicando técnicas de aprendizaje profundo al juego de ritmo ¿Osu!.pdf.txtAplicando técnicas de aprendizaje profundo al juego de ritmo ¿Osu!.pdf.txtExtracted texttext/plain48508https://repositorio.uniandes.edu.co/bitstreams/4d61d68b-be88-4197-8c53-478ad1d014eb/downloadc0f3b6a581d01a96eaa8c812384b2b4bMD55Autorizacio¿n tesis - Firmada.pdf.txtAutorizacio¿n tesis - Firmada.pdf.txtExtracted texttext/plain1161https://repositorio.uniandes.edu.co/bitstreams/01855d89-38d2-4f37-bc7f-b24a01ce5968/download08b106dfeb12472e88207a069e15ba30MD57THUMBNAILAplicando técnicas de aprendizaje profundo al juego de ritmo ¿Osu!.pdf.jpgAplicando técnicas de aprendizaje profundo al juego de ritmo ¿Osu!.pdf.jpgIM Thumbnailimage/jpeg9164https://repositorio.uniandes.edu.co/bitstreams/a29b7971-0b7d-4725-ba61-365f4c8d10e8/download2001f171c64a41890176d7ecd128bc47MD56Autorizacio¿n tesis - Firmada.pdf.jpgAutorizacio¿n tesis - Firmada.pdf.jpgIM Thumbnailimage/jpeg16258https://repositorio.uniandes.edu.co/bitstreams/d7df1ed6-5176-4c3b-8d12-e1889c35eab3/download6dc5e5a387222453aef5817d61ea950cMD581992/70669oai:repositorio.uniandes.edu.co:1992/706692024-03-13 12:56:51.858http://creativecommons.org/licenses/by/4.0/open.accesshttps://repositorio.uniandes.edu.coRepositorio institucional Sénecaadminrepositorio@uniandes.edu.coWW8sIGVuIG1pIGNhbGlkYWQgZGUgYXV0b3IgZGVsIHRyYWJham8gZGUgdGVzaXMsIG1vbm9ncmFmw61hIG8gdHJhYmFqbyBkZSBncmFkbywgaGFnbyBlbnRyZWdhIGRlbCBlamVtcGxhciByZXNwZWN0aXZvIHkgZGUgc3VzIGFuZXhvcyBkZSBzZXIgZWwgY2FzbywgZW4gZm9ybWF0byBkaWdpdGFsIHkvbyBlbGVjdHLDs25pY28geSBhdXRvcml6byBhIGxhIFVuaXZlcnNpZGFkIGRlIGxvcyBBbmRlcyBwYXJhIHF1ZSByZWFsaWNlIGxhIHB1YmxpY2FjacOzbiBlbiBlbCBTaXN0ZW1hIGRlIEJpYmxpb3RlY2FzIG8gZW4gY3VhbHF1aWVyIG90cm8gc2lzdGVtYSBvIGJhc2UgZGUgZGF0b3MgcHJvcGlvIG8gYWplbm8gYSBsYSBVbml2ZXJzaWRhZCB5IHBhcmEgcXVlIGVuIGxvcyB0w6lybWlub3MgZXN0YWJsZWNpZG9zIGVuIGxhIExleSAyMyBkZSAxOTgyLCBMZXkgNDQgZGUgMTk5MywgRGVjaXNpw7NuIEFuZGluYSAzNTEgZGUgMTk5MywgRGVjcmV0byA0NjAgZGUgMTk5NSB5IGRlbcOhcyBub3JtYXMgZ2VuZXJhbGVzIHNvYnJlIGxhIG1hdGVyaWEsIHV0aWxpY2UgZW4gdG9kYXMgc3VzIGZvcm1hcywgbG9zIGRlcmVjaG9zIHBhdHJpbW9uaWFsZXMgZGUgcmVwcm9kdWNjacOzbiwgY29tdW5pY2FjacOzbiBww7pibGljYSwgdHJhbnNmb3JtYWNpw7NuIHkgZGlzdHJpYnVjacOzbiAoYWxxdWlsZXIsIHByw6lzdGFtbyBww7pibGljbyBlIGltcG9ydGFjacOzbikgcXVlIG1lIGNvcnJlc3BvbmRlbiBjb21vIGNyZWFkb3IgZGUgbGEgb2JyYSBvYmpldG8gZGVsIHByZXNlbnRlIGRvY3VtZW50by4gIAoKCkxhIHByZXNlbnRlIGF1dG9yaXphY2nDs24gc2UgZW1pdGUgZW4gY2FsaWRhZCBkZSBhdXRvciBkZSBsYSBvYnJhIG9iamV0byBkZWwgcHJlc2VudGUgZG9jdW1lbnRvIHkgbm8gY29ycmVzcG9uZGUgYSBjZXNpw7NuIGRlIGRlcmVjaG9zLCBzaW5vIGEgbGEgYXV0b3JpemFjacOzbiBkZSB1c28gYWNhZMOpbWljbyBkZSBjb25mb3JtaWRhZCBjb24gbG8gYW50ZXJpb3JtZW50ZSBzZcOxYWxhZG8uIExhIHByZXNlbnRlIGF1dG9yaXphY2nDs24gc2UgaGFjZSBleHRlbnNpdmEgbm8gc29sbyBhIGxhcyBmYWN1bHRhZGVzIHkgZGVyZWNob3MgZGUgdXNvIHNvYnJlIGxhIG9icmEgZW4gZm9ybWF0byBvIHNvcG9ydGUgbWF0ZXJpYWwsIHNpbm8gdGFtYmnDqW4gcGFyYSBmb3JtYXRvIGVsZWN0csOzbmljbywgeSBlbiBnZW5lcmFsIHBhcmEgY3VhbHF1aWVyIGZvcm1hdG8gY29ub2NpZG8gbyBwb3IgY29ub2Nlci4gCgoKRWwgYXV0b3IsIG1hbmlmaWVzdGEgcXVlIGxhIG9icmEgb2JqZXRvIGRlIGxhIHByZXNlbnRlIGF1dG9yaXphY2nDs24gZXMgb3JpZ2luYWwgeSBsYSByZWFsaXrDsyBzaW4gdmlvbGFyIG8gdXN1cnBhciBkZXJlY2hvcyBkZSBhdXRvciBkZSB0ZXJjZXJvcywgcG9yIGxvIHRhbnRvLCBsYSBvYnJhIGVzIGRlIHN1IGV4Y2x1c2l2YSBhdXRvcsOtYSB5IHRpZW5lIGxhIHRpdHVsYXJpZGFkIHNvYnJlIGxhIG1pc21hLiAKCgpFbiBjYXNvIGRlIHByZXNlbnRhcnNlIGN1YWxxdWllciByZWNsYW1hY2nDs24gbyBhY2Npw7NuIHBvciBwYXJ0ZSBkZSB1biB0ZXJjZXJvIGVuIGN1YW50byBhIGxvcyBkZXJlY2hvcyBkZSBhdXRvciBzb2JyZSBsYSBvYnJhIGVuIGN1ZXN0acOzbiwgZWwgYXV0b3IgYXN1bWlyw6EgdG9kYSBsYSByZXNwb25zYWJpbGlkYWQsIHkgc2FsZHLDoSBkZSBkZWZlbnNhIGRlIGxvcyBkZXJlY2hvcyBhcXXDrSBhdXRvcml6YWRvcywgcGFyYSB0b2RvcyBsb3MgZWZlY3RvcyBsYSBVbml2ZXJzaWRhZCBhY3TDumEgY29tbyB1biB0ZXJjZXJvIGRlIGJ1ZW5hIGZlLiAKCg==