Desarrollo de un modelo virtual de una mano robótica controlado por movimientos físicos mediante integración de datos en Unreal Engine
Este proyecto de investigación se enfocó en el desarrollo y la implementación de un modelo virtual de una mano robótica, la cual pudiera ser controlada mediante la captura de movimientos físicos a partir de una integración de datos en Unreal Engine. En ese sentido, se busca explorar y comprender la...
- Autores:
-
Jáuregui Rozo, Juan Manuel
- Tipo de recurso:
- Trabajo de grado de pregrado
- Fecha de publicación:
- 2025
- Institución:
- Universidad de los Andes
- Repositorio:
- Séneca: repositorio Uniandes
- Idioma:
- spa
- OAI Identifier:
- oai:repositorio.uniandes.edu.co:1992/76221
- Acceso en línea:
- https://hdl.handle.net/1992/76221
- Palabra clave:
- Unreal Engine
Blender
Visual Studio
Sockets
Robótica
Mano
Ingeniería
- Rights
- openAccess
- License
- Attribution 4.0 International
id |
UNIANDES2_c9df1ea755685db4f7512c42c0ba02ca |
---|---|
oai_identifier_str |
oai:repositorio.uniandes.edu.co:1992/76221 |
network_acronym_str |
UNIANDES2 |
network_name_str |
Séneca: repositorio Uniandes |
repository_id_str |
|
dc.title.spa.fl_str_mv |
Desarrollo de un modelo virtual de una mano robótica controlado por movimientos físicos mediante integración de datos en Unreal Engine |
title |
Desarrollo de un modelo virtual de una mano robótica controlado por movimientos físicos mediante integración de datos en Unreal Engine |
spellingShingle |
Desarrollo de un modelo virtual de una mano robótica controlado por movimientos físicos mediante integración de datos en Unreal Engine Unreal Engine Blender Visual Studio Sockets Robótica Mano Ingeniería |
title_short |
Desarrollo de un modelo virtual de una mano robótica controlado por movimientos físicos mediante integración de datos en Unreal Engine |
title_full |
Desarrollo de un modelo virtual de una mano robótica controlado por movimientos físicos mediante integración de datos en Unreal Engine |
title_fullStr |
Desarrollo de un modelo virtual de una mano robótica controlado por movimientos físicos mediante integración de datos en Unreal Engine |
title_full_unstemmed |
Desarrollo de un modelo virtual de una mano robótica controlado por movimientos físicos mediante integración de datos en Unreal Engine |
title_sort |
Desarrollo de un modelo virtual de una mano robótica controlado por movimientos físicos mediante integración de datos en Unreal Engine |
dc.creator.fl_str_mv |
Jáuregui Rozo, Juan Manuel |
dc.contributor.advisor.none.fl_str_mv |
Camargo Leyva, Jonathan |
dc.contributor.author.none.fl_str_mv |
Jáuregui Rozo, Juan Manuel |
dc.subject.keyword.eng.fl_str_mv |
Unreal Engine Blender Visual Studio Sockets |
topic |
Unreal Engine Blender Visual Studio Sockets Robótica Mano Ingeniería |
dc.subject.keyword.spa.fl_str_mv |
Robótica Mano |
dc.subject.themes.spa.fl_str_mv |
Ingeniería |
description |
Este proyecto de investigación se enfocó en el desarrollo y la implementación de un modelo virtual de una mano robótica, la cual pudiera ser controlada mediante la captura de movimientos físicos a partir de una integración de datos en Unreal Engine. En ese sentido, se busca explorar y comprender la integración entre la realidad virtual y la realidad física, enfocándose en cómo esta relación puede ser aprovechada para el desarrollo de aplicaciones en robótica. Adicionalmente, con este enfoque se puede replicar el comportamiento de sistemas físicos dentro de entornos virtuales altamente controlados y precisos, facilitando la validación de conceptos y el ajuste de comportamientos deseados sin necesidad de contar inicialmente con una implementación física. Actualmente, la robótica es una rama de la ingeniería que es fundamental para el desarrollo de nuevas tecnologías. En este contexto, el uso de manos robóticas es ampliamente extendido en la industria, donde desempeñan roles esenciales en diversos procesos productivos. No obstante, la implementación física de estas soluciones suele enfrentar múltiples desafíos, tales como altos costos, riesgos de fallos mecánicos y limitaciones de prueba. Ante esta situación, surge la necesidad de disponer de entornos virtuales que permitan validar hipótesis y optimizar diseños antes de su materialización. Este proyecto representa una aproximación a dicha necesidad, aprovechando el potencial de la realidad virtual para construir y probar nuevas tecnologías asociadas a manos robóticas, reduciendo las complicaciones inherentes a las implementaciones físicas. Para el desarrollo de este proyecto se utilizaron diversas herramientas tecnológicas, entre las cuales se destacan Blender, Unreal Engine y Visual Studio. Estas plataformas permitieron abordar diferentes etapas del proceso, desde el modelado y rigging del objeto 3D hasta la programación de su comportamiento en un entorno virtual interactivo. Asimismo, se contó con recursos externos, como un modelo CAD de una mano robótica, el cual sirvió como base para la construcción y adaptación del modelo virtual utilizado en esta investigación. Inicialmente, se utilizó Blender para realizar el rigging del modelo CAD de la mano robótica lo cual es fundamental para garantizar la funcionalidad del sistema en su conjunto. El rigging consiste en la creación de un esqueleto interno que permite dotar al modelo 3D de articulaciones y movilidad. En este caso, esta parte fue crucial ya que definió los puntos de rotación de cada falange. Esto permite que más adelante la mano pueda ser animada y controlada de manera precisa en Unreal Engine. Una vez completado el rigging, se realizó la exportación del modelo CAD con el esqueleto funcional a Unreal Engine para su integración dentro del entorno virtual. Utilizando Visual Studio se desarrolló una clase en C++ la cual permitió establecer los parámetros necesarios para permitir la rotación individual de cada falange. Esta integración entre el modelo visual y la lógica programada sentó las bases para que la mano pudiera responder de manera precisa a entradas programadas. Teniendo una mano robótica funcional dentro del entorno virtual, se procedió a desarrollar una interfaz gráfica en Unreal Engine que permitiera al usuario interactuar con el modelo de manera intuitiva y dinámica como si fuera un juego. Esta interfaz fue diseñada para ofrecer dos modos de juego distintos. El primero permite manipular la mano robótica utilizando un control de Xbox One, asignando funciones específicas a los botones para facilitar el movimiento de cada falange. El segundo modo habilita la recepción de ángulos de rotación enviados desde un servidor externo, permitiendo visualizar en tiempo real las transformaciones deseadas sobre la mano. La interfaz incluye un menú principal y un menú de pausa dándole al usuario una experiencia que le permita gestionar el sistema de forma sencilla y eficiente. Un aspecto clave que contribuyó significativamente al desarrollo de este proyecto fue el uso del sistema de Blueprints que ofrece Unreal Engine. Esta herramienta permitió implementar la lógica de interacción, animación y control del modelo. Principalmente, se lograron conectar eventos, estados del juego y gestionar transiciones entre los diferentes modos de juego de manera clara y eficiente. En conjunto con la programación en C++, los Blueprints ofrecieron una integración versátil que aceleró el desarrollo. Este proyecto integra un factor innovador que es la comunicación con sistemas externos que permitan simular entornos más cercanos a aplicaciones reales de la robótica. En este caso, se implementó un servidor utilizando sockets TCP, lo que permitió establecer una conexión estable entre una fuente externa de datos y el entorno virtual de Unreal Engine. A través de esta conexión, el servidor enviaba periódicamente ángulos de rotación para cada falange de la mano robótica, los cuales eran recibidos por el motor y aplicados directamente al modelo. La integración del protocolo TCP resultó clave para demostrar como la mano virtual puede responder a instrucciones en tiempo real provenientes de sistemas externos, abriendo la puerta a futuras aplicaciones en las que dispositivos físicos puedan ser simulados, controlados y probados de forma remota. |
publishDate |
2025 |
dc.date.accessioned.none.fl_str_mv |
2025-05-30T13:05:09Z |
dc.date.available.none.fl_str_mv |
2025-05-30T13:05:09Z |
dc.date.issued.none.fl_str_mv |
2025-05-29 |
dc.type.none.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.none.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 |
https://hdl.handle.net/1992/76221 |
dc.identifier.instname.none.fl_str_mv |
instname:Universidad de los Andes |
dc.identifier.reponame.none.fl_str_mv |
reponame:Repositorio Institucional Séneca |
dc.identifier.repourl.none.fl_str_mv |
repourl:https://repositorio.uniandes.edu.co/ |
url |
https://hdl.handle.net/1992/76221 |
identifier_str_mv |
instname:Universidad de los Andes reponame:Repositorio Institucional Séneca repourl:https://repositorio.uniandes.edu.co/ |
dc.language.iso.none.fl_str_mv |
spa |
language |
spa |
dc.relation.references.none.fl_str_mv |
Koenig, N., & Howard, A. (2004). Design and Use Paradigms for Gazebo, An Open-Source Multi-Robot Simulator. In IEEE/RSJ International Conference on Intelligent Robots and Systems. Shah, S., Dey, D., Lovett, C., & Kapoor, A. (2017). AirSim: High-Fidelity Visual and Physical Simulation for Autonomous Vehicles. In Field and Service Robotics. Holden, M. K. (2005). Virtual environments for motor rehabilitation: review. Cyberpsychology & Behavior, 8(3), 187-211. Levine, S., Pastor, P., Krizhevsky, A., & Quillen, D. (2016). Learning Hand-Eye Coordination for Robotic Grasping with Deep Learning and Large-Scale Data Collection. In ISER. Blender Foundation, “Blender Manual,” Blender Documentation. [Online]. Available: https://docs.blender.org/manual/en/latest/ Epic Games, “Unreal Engine Documentation,” Unreal Engine. [Online]. Available: https://docs.unrealengine.com/ Microsoft, “Set up the Xbox Wireless Controller on Windows,” Xbox Support. [Online]. Available: https://support.xbox.com/help/hardware-network/controller/connect-xbox-wireless-controller-to-pc |
dc.rights.en.fl_str_mv |
Attribution 4.0 International |
dc.rights.uri.none.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 |
Attribution 4.0 International http://creativecommons.org/licenses/by/4.0/ http://purl.org/coar/access_right/c_abf2 |
eu_rights_str_mv |
openAccess |
dc.format.extent.none.fl_str_mv |
36 páginas |
dc.format.mimetype.none.fl_str_mv |
application/pdf |
dc.publisher.none.fl_str_mv |
Universidad de los Andes |
dc.publisher.program.none.fl_str_mv |
Ingeniería Mecánica |
dc.publisher.faculty.none.fl_str_mv |
Facultad de Ingeniería |
dc.publisher.department.none.fl_str_mv |
Departamento de Ingeniería Mecánica |
publisher.none.fl_str_mv |
Universidad de los Andes |
institution |
Universidad de los Andes |
bitstream.url.fl_str_mv |
https://repositorio.uniandes.edu.co/bitstreams/5b7331ed-e762-4de5-800d-d05925810b51/download https://repositorio.uniandes.edu.co/bitstreams/ef68a9a4-ecd4-41d6-be6e-3660e93062fc/download https://repositorio.uniandes.edu.co/bitstreams/bdb6e80b-eefc-4705-8047-a093b957650e/download https://repositorio.uniandes.edu.co/bitstreams/bd1bede5-67a6-49a2-b698-6aeae096f5e9/download https://repositorio.uniandes.edu.co/bitstreams/28177ce8-d0b8-4185-8ec9-4cdbff815621/download https://repositorio.uniandes.edu.co/bitstreams/e4a00b9f-9c72-4fe7-84ac-be30a8eef545/download https://repositorio.uniandes.edu.co/bitstreams/96264978-3acd-40c4-9976-8fd13682a86a/download https://repositorio.uniandes.edu.co/bitstreams/8104022a-fbc6-4681-bee1-a0ac6b15bb2e/download |
bitstream.checksum.fl_str_mv |
a90e408f37e49782a7d0528737d440c6 096c32135584dd49d1d3f1db28d3d2a8 0175ea4a2d4caec4bbcc37e300941108 ae9e573a68e7f92501b6913cc846c39f fdfc75d3170ac7fc2e779a90bee2fab4 7b43f7c998c5afe473e900d8fa6c6d12 8ebafa63c8ba78c4631c0e6ce52ff1ed f5887fb014cf95e691fc49da98a562e1 |
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_ |
1837005385790128128 |
spelling |
Al consultar y hacer uso de este recurso, está aceptando las condiciones de uso establecidas por los autoresAttribution 4.0 Internationalhttp://creativecommons.org/licenses/by/4.0/info:eu-repo/semantics/openAccesshttp://purl.org/coar/access_right/c_abf2Camargo Leyva, Jonathanvirtual::24123-1Jáuregui Rozo, Juan Manuel2025-05-30T13:05:09Z2025-05-30T13:05:09Z2025-05-29https://hdl.handle.net/1992/76221instname:Universidad de los Andesreponame:Repositorio Institucional Sénecarepourl:https://repositorio.uniandes.edu.co/Este proyecto de investigación se enfocó en el desarrollo y la implementación de un modelo virtual de una mano robótica, la cual pudiera ser controlada mediante la captura de movimientos físicos a partir de una integración de datos en Unreal Engine. En ese sentido, se busca explorar y comprender la integración entre la realidad virtual y la realidad física, enfocándose en cómo esta relación puede ser aprovechada para el desarrollo de aplicaciones en robótica. Adicionalmente, con este enfoque se puede replicar el comportamiento de sistemas físicos dentro de entornos virtuales altamente controlados y precisos, facilitando la validación de conceptos y el ajuste de comportamientos deseados sin necesidad de contar inicialmente con una implementación física. Actualmente, la robótica es una rama de la ingeniería que es fundamental para el desarrollo de nuevas tecnologías. En este contexto, el uso de manos robóticas es ampliamente extendido en la industria, donde desempeñan roles esenciales en diversos procesos productivos. No obstante, la implementación física de estas soluciones suele enfrentar múltiples desafíos, tales como altos costos, riesgos de fallos mecánicos y limitaciones de prueba. Ante esta situación, surge la necesidad de disponer de entornos virtuales que permitan validar hipótesis y optimizar diseños antes de su materialización. Este proyecto representa una aproximación a dicha necesidad, aprovechando el potencial de la realidad virtual para construir y probar nuevas tecnologías asociadas a manos robóticas, reduciendo las complicaciones inherentes a las implementaciones físicas. Para el desarrollo de este proyecto se utilizaron diversas herramientas tecnológicas, entre las cuales se destacan Blender, Unreal Engine y Visual Studio. Estas plataformas permitieron abordar diferentes etapas del proceso, desde el modelado y rigging del objeto 3D hasta la programación de su comportamiento en un entorno virtual interactivo. Asimismo, se contó con recursos externos, como un modelo CAD de una mano robótica, el cual sirvió como base para la construcción y adaptación del modelo virtual utilizado en esta investigación. Inicialmente, se utilizó Blender para realizar el rigging del modelo CAD de la mano robótica lo cual es fundamental para garantizar la funcionalidad del sistema en su conjunto. El rigging consiste en la creación de un esqueleto interno que permite dotar al modelo 3D de articulaciones y movilidad. En este caso, esta parte fue crucial ya que definió los puntos de rotación de cada falange. Esto permite que más adelante la mano pueda ser animada y controlada de manera precisa en Unreal Engine. Una vez completado el rigging, se realizó la exportación del modelo CAD con el esqueleto funcional a Unreal Engine para su integración dentro del entorno virtual. Utilizando Visual Studio se desarrolló una clase en C++ la cual permitió establecer los parámetros necesarios para permitir la rotación individual de cada falange. Esta integración entre el modelo visual y la lógica programada sentó las bases para que la mano pudiera responder de manera precisa a entradas programadas. Teniendo una mano robótica funcional dentro del entorno virtual, se procedió a desarrollar una interfaz gráfica en Unreal Engine que permitiera al usuario interactuar con el modelo de manera intuitiva y dinámica como si fuera un juego. Esta interfaz fue diseñada para ofrecer dos modos de juego distintos. El primero permite manipular la mano robótica utilizando un control de Xbox One, asignando funciones específicas a los botones para facilitar el movimiento de cada falange. El segundo modo habilita la recepción de ángulos de rotación enviados desde un servidor externo, permitiendo visualizar en tiempo real las transformaciones deseadas sobre la mano. La interfaz incluye un menú principal y un menú de pausa dándole al usuario una experiencia que le permita gestionar el sistema de forma sencilla y eficiente. Un aspecto clave que contribuyó significativamente al desarrollo de este proyecto fue el uso del sistema de Blueprints que ofrece Unreal Engine. Esta herramienta permitió implementar la lógica de interacción, animación y control del modelo. Principalmente, se lograron conectar eventos, estados del juego y gestionar transiciones entre los diferentes modos de juego de manera clara y eficiente. En conjunto con la programación en C++, los Blueprints ofrecieron una integración versátil que aceleró el desarrollo. Este proyecto integra un factor innovador que es la comunicación con sistemas externos que permitan simular entornos más cercanos a aplicaciones reales de la robótica. En este caso, se implementó un servidor utilizando sockets TCP, lo que permitió establecer una conexión estable entre una fuente externa de datos y el entorno virtual de Unreal Engine. A través de esta conexión, el servidor enviaba periódicamente ángulos de rotación para cada falange de la mano robótica, los cuales eran recibidos por el motor y aplicados directamente al modelo. La integración del protocolo TCP resultó clave para demostrar como la mano virtual puede responder a instrucciones en tiempo real provenientes de sistemas externos, abriendo la puerta a futuras aplicaciones en las que dispositivos físicos puedan ser simulados, controlados y probados de forma remota.Pregrado36 páginasapplication/pdfspaUniversidad de los AndesIngeniería MecánicaFacultad de IngenieríaDepartamento de Ingeniería MecánicaDesarrollo de un modelo virtual de una mano robótica controlado por movimientos físicos mediante integración de datos en Unreal EngineTrabajo de grado - Pregradoinfo:eu-repo/semantics/bachelorThesisinfo:eu-repo/semantics/acceptedVersionhttp://purl.org/coar/resource_type/c_7a1fTexthttp://purl.org/redcol/resource_type/TPUnreal EngineBlenderVisual StudioSocketsRobóticaManoIngenieríaKoenig, N., & Howard, A. (2004). Design and Use Paradigms for Gazebo, An Open-Source Multi-Robot Simulator. In IEEE/RSJ International Conference on Intelligent Robots and Systems.Shah, S., Dey, D., Lovett, C., & Kapoor, A. (2017). AirSim: High-Fidelity Visual and Physical Simulation for Autonomous Vehicles. In Field and Service Robotics.Holden, M. K. (2005). Virtual environments for motor rehabilitation: review. Cyberpsychology & Behavior, 8(3), 187-211.Levine, S., Pastor, P., Krizhevsky, A., & Quillen, D. (2016). Learning Hand-Eye Coordination for Robotic Grasping with Deep Learning and Large-Scale Data Collection. In ISER.Blender Foundation, “Blender Manual,” Blender Documentation. [Online]. Available: https://docs.blender.org/manual/en/latest/Epic Games, “Unreal Engine Documentation,” Unreal Engine. [Online]. Available: https://docs.unrealengine.com/Microsoft, “Set up the Xbox Wireless Controller on Windows,” Xbox Support. [Online]. Available: https://support.xbox.com/help/hardware-network/controller/connect-xbox-wireless-controller-to-pc201922481Publication0bb50162-7add-44a0-8bf0-a4205f5869a5virtual::24123-10bb50162-7add-44a0-8bf0-a4205f5869a5virtual::24123-1https://scienti.minciencias.gov.co/cvlac/visualizador/generarCurriculoCv.do?cod_rh=0000018833virtual::24123-1ORIGINALDesarrollo_de_un_Modelo_Virtual_de_una_Mano_Robótica.pdfDesarrollo_de_un_Modelo_Virtual_de_una_Mano_Robótica.pdfapplication/pdf1828757https://repositorio.uniandes.edu.co/bitstreams/5b7331ed-e762-4de5-800d-d05925810b51/downloada90e408f37e49782a7d0528737d440c6MD51Formato de Autorización y Entrega de Tesis al Sistema de Bibliotecas - IMEC.pdfFormato de Autorización y Entrega de Tesis al Sistema de Bibliotecas - IMEC.pdfHIDEapplication/pdf425121https://repositorio.uniandes.edu.co/bitstreams/ef68a9a4-ecd4-41d6-be6e-3660e93062fc/download096c32135584dd49d1d3f1db28d3d2a8MD52CC-LICENSElicense_rdflicense_rdfapplication/rdf+xml; charset=utf-8908https://repositorio.uniandes.edu.co/bitstreams/bdb6e80b-eefc-4705-8047-a093b957650e/download0175ea4a2d4caec4bbcc37e300941108MD53LICENSElicense.txtlicense.txttext/plain; charset=utf-82535https://repositorio.uniandes.edu.co/bitstreams/bd1bede5-67a6-49a2-b698-6aeae096f5e9/downloadae9e573a68e7f92501b6913cc846c39fMD54TEXTDesarrollo_de_un_Modelo_Virtual_de_una_Mano_Robótica.pdf.txtDesarrollo_de_un_Modelo_Virtual_de_una_Mano_Robótica.pdf.txtExtracted texttext/plain52022https://repositorio.uniandes.edu.co/bitstreams/28177ce8-d0b8-4185-8ec9-4cdbff815621/downloadfdfc75d3170ac7fc2e779a90bee2fab4MD55Formato de Autorización y Entrega de Tesis al Sistema de Bibliotecas - IMEC.pdf.txtFormato de Autorización y Entrega de Tesis al Sistema de Bibliotecas - IMEC.pdf.txtExtracted texttext/plain2042https://repositorio.uniandes.edu.co/bitstreams/e4a00b9f-9c72-4fe7-84ac-be30a8eef545/download7b43f7c998c5afe473e900d8fa6c6d12MD57THUMBNAILDesarrollo_de_un_Modelo_Virtual_de_una_Mano_Robótica.pdf.jpgDesarrollo_de_un_Modelo_Virtual_de_una_Mano_Robótica.pdf.jpgIM Thumbnailimage/jpeg7501https://repositorio.uniandes.edu.co/bitstreams/96264978-3acd-40c4-9976-8fd13682a86a/download8ebafa63c8ba78c4631c0e6ce52ff1edMD56Formato de Autorización y Entrega de Tesis al Sistema de Bibliotecas - IMEC.pdf.jpgFormato de Autorización y Entrega de Tesis al Sistema de Bibliotecas - IMEC.pdf.jpgIM Thumbnailimage/jpeg13991https://repositorio.uniandes.edu.co/bitstreams/8104022a-fbc6-4681-bee1-a0ac6b15bb2e/downloadf5887fb014cf95e691fc49da98a562e1MD581992/76221oai:repositorio.uniandes.edu.co:1992/762212025-05-31 04:07:49.496http://creativecommons.org/licenses/by/4.0/Attribution 4.0 Internationalopen.accesshttps://repositorio.uniandes.edu.coRepositorio institucional Sénecaadminrepositorio@uniandes.edu.coPGgzPjxzdHJvbmc+RGVzY2FyZ28gZGUgUmVzcG9uc2FiaWxpZGFkIC0gTGljZW5jaWEgZGUgQXV0b3JpemFjacOzbjwvc3Ryb25nPjwvaDM+CjxwPjxzdHJvbmc+UG9yIGZhdm9yIGxlZXIgYXRlbnRhbWVudGUgZXN0ZSBkb2N1bWVudG8gcXVlIHBlcm1pdGUgYWwgUmVwb3NpdG9yaW8gSW5zdGl0dWNpb25hbCBTw6luZWNhIHJlcHJvZHVjaXIgeSBkaXN0cmlidWlyIGxvcyByZWN1cnNvcyBkZSBpbmZvcm1hY2nDs24gZGVwb3NpdGFkb3MgbWVkaWFudGUgbGEgYXV0b3JpemFjacOzbiBkZSBsb3Mgc2lndWllbnRlcyB0w6lybWlub3M6PC9zdHJvbmc+PC9wPgo8cD5Db25jZWRhIGxhIGxpY2VuY2lhIGRlIGRlcMOzc2l0byBlc3TDoW5kYXIgc2VsZWNjaW9uYW5kbyBsYSBvcGNpw7NuIDxzdHJvbmc+J0FjZXB0YXIgbG9zIHTDqXJtaW5vcyBhbnRlcmlvcm1lbnRlIGRlc2NyaXRvcyc8L3N0cm9uZz4geSBjb250aW51YXIgZWwgcHJvY2VzbyBkZSBlbnbDrW8gbWVkaWFudGUgZWwgYm90w7NuIDxzdHJvbmc+J1NpZ3VpZW50ZScuPC9zdHJvbmc+PC9wPgo8aHI+CjxwPllvLCBlbiBtaSBjYWxpZGFkIGRlIGF1dG9yIGRlbCB0cmFiYWpvIGRlIHRlc2lzLCBtb25vZ3JhZsOtYSBvIHRyYWJham8gZGUgZ3JhZG8sIGhhZ28gZW50cmVnYSBkZWwgZWplbXBsYXIgcmVzcGVjdGl2byB5IGRlIHN1cyBhbmV4b3MgZGUgc2VyIGVsIGNhc28sIGVuIGZvcm1hdG8gZGlnaXRhbCB5L28gZWxlY3Ryw7NuaWNvIHkgYXV0b3Jpem8gYSBsYSBVbml2ZXJzaWRhZCBkZSBsb3MgQW5kZXMgcGFyYSBxdWUgcmVhbGljZSBsYSBwdWJsaWNhY2nDs24gZW4gZWwgU2lzdGVtYSBkZSBCaWJsaW90ZWNhcyBvIGVuIGN1YWxxdWllciBvdHJvIHNpc3RlbWEgbyBiYXNlIGRlIGRhdG9zIHByb3BpbyBvIGFqZW5vIGEgbGEgVW5pdmVyc2lkYWQgeSBwYXJhIHF1ZSBlbiBsb3MgdMOpcm1pbm9zIGVzdGFibGVjaWRvcyBlbiBsYSBMZXkgMjMgZGUgMTk4MiwgTGV5IDQ0IGRlIDE5OTMsIERlY2lzacOzbiBBbmRpbmEgMzUxIGRlIDE5OTMsIERlY3JldG8gNDYwIGRlIDE5OTUgeSBkZW3DoXMgbm9ybWFzIGdlbmVyYWxlcyBzb2JyZSBsYSBtYXRlcmlhLCB1dGlsaWNlIGVuIHRvZGFzIHN1cyBmb3JtYXMsIGxvcyBkZXJlY2hvcyBwYXRyaW1vbmlhbGVzIGRlIHJlcHJvZHVjY2nDs24sIGNvbXVuaWNhY2nDs24gcMO6YmxpY2EsIHRyYW5zZm9ybWFjacOzbiB5IGRpc3RyaWJ1Y2nDs24gKGFscXVpbGVyLCBwcsOpc3RhbW8gcMO6YmxpY28gZSBpbXBvcnRhY2nDs24pIHF1ZSBtZSBjb3JyZXNwb25kZW4gY29tbyBjcmVhZG9yIGRlIGxhIG9icmEgb2JqZXRvIGRlbCBwcmVzZW50ZSBkb2N1bWVudG8uPC9wPgo8cD5MYSBwcmVzZW50ZSBhdXRvcml6YWNpw7NuIHNlIGVtaXRlIGVuIGNhbGlkYWQgZGUgYXV0b3IgZGUgbGEgb2JyYSBvYmpldG8gZGVsIHByZXNlbnRlIGRvY3VtZW50byB5IG5vIGNvcnJlc3BvbmRlIGEgY2VzacOzbiBkZSBkZXJlY2hvcywgc2lubyBhIGxhIGF1dG9yaXphY2nDs24gZGUgdXNvIGFjYWTDqW1pY28gZGUgY29uZm9ybWlkYWQgY29uIGxvIGFudGVyaW9ybWVudGUgc2XDsWFsYWRvLiBMYSBwcmVzZW50ZSBhdXRvcml6YWNpw7NuIHNlIGhhY2UgZXh0ZW5zaXZhIG5vIHNvbG8gYSBsYXMgZmFjdWx0YWRlcyB5IGRlcmVjaG9zIGRlIHVzbyBzb2JyZSBsYSBvYnJhIGVuIGZvcm1hdG8gbyBzb3BvcnRlIG1hdGVyaWFsLCBzaW5vIHRhbWJpw6luIHBhcmEgZm9ybWF0byBlbGVjdHLDs25pY28sIHkgZW4gZ2VuZXJhbCBwYXJhIGN1YWxxdWllciBmb3JtYXRvIGNvbm9jaWRvIG8gcG9yIGNvbm9jZXIuPC9wPgo8cD5FbCBhdXRvciwgbWFuaWZpZXN0YSBxdWUgbGEgb2JyYSBvYmpldG8gZGUgbGEgcHJlc2VudGUgYXV0b3JpemFjacOzbiBlcyBvcmlnaW5hbCB5IGxhIHJlYWxpesOzIHNpbiB2aW9sYXIgbyB1c3VycGFyIGRlcmVjaG9zIGRlIGF1dG9yIGRlIHRlcmNlcm9zLCBwb3IgbG8gdGFudG8sIGxhIG9icmEgZXMgZGUgc3UgZXhjbHVzaXZhIGF1dG9yw61hIHkgdGllbmUgbGEgdGl0dWxhcmlkYWQgc29icmUgbGEgbWlzbWEuPC9wPgo8cD5FbiBjYXNvIGRlIHByZXNlbnRhcnNlIGN1YWxxdWllciByZWNsYW1hY2nDs24gbyBhY2Npw7NuIHBvciBwYXJ0ZSBkZSB1biB0ZXJjZXJvIGVuIGN1YW50byBhIGxvcyBkZXJlY2hvcyBkZSBhdXRvciBzb2JyZSBsYSBvYnJhIGVuIGN1ZXN0acOzbiwgZWwgYXV0b3IgYXN1bWlyw6EgdG9kYSBsYSByZXNwb25zYWJpbGlkYWQsIHkgc2FsZHLDoSBkZSBkZWZlbnNhIGRlIGxvcyBkZXJlY2hvcyBhcXXDrSBhdXRvcml6YWRvcywgcGFyYSB0b2RvcyBsb3MgZWZlY3RvcyBsYSBVbml2ZXJzaWRhZCBhY3TDumEgY29tbyB1biB0ZXJjZXJvIGRlIGJ1ZW5hIGZlLjwvcD4KPHA+U2kgdGllbmUgYWxndW5hIGR1ZGEgc29icmUgbGEgbGljZW5jaWEsIHBvciBmYXZvciwgY29udGFjdGUgY29uIGVsIDxhIGhyZWY9Im1haWx0bzpiaWJsaW90ZWNhQHVuaWFuZGVzLmVkdS5jbyIgdGFyZ2V0PSJfYmxhbmsiPkFkbWluaXN0cmFkb3IgZGVsIFNpc3RlbWEuPC9hPjwvcD4K |