Herramienta de detección de Code Smells de frameworks en Visual Studio Code: Un enfoque para la mejora de la calidad del software
Esta tesis aborda el desafío de mantener la calidad del código en proyectos de software grandes y complejos mediante el desarrollo de una extensión para Visual Studio Code que detecta automáticamente "Code Smells" y establece quality gates. El objetivo principal es crear una herramienta qu...
- Autores:
-
Vargas Rojas, Gabriela
Ramírez Ramírez, Santiago Andrés
Nielsen Rodríguez, Erik
- Tipo de recurso:
- Trabajo de grado de pregrado
- Fecha de publicación:
- 2024
- Institución:
- Universidad de los Andes
- Repositorio:
- Séneca: repositorio Uniandes
- Idioma:
- spa
- OAI Identifier:
- oai:repositorio.uniandes.edu.co:1992/74646
- Acceso en línea:
- https://hdl.handle.net/1992/74646
- Palabra clave:
- Calidad del código
Mantenimiento de software
Herramientas de desarrollo
Code smells
Visual Studio Code
Herramientas de desarrollo
Ingeniería
- Rights
- openAccess
- License
- Attribution-NonCommercial-ShareAlike 4.0 International
id |
UNIANDES2_277d24c70827f63cb3e7a418a92821b2 |
---|---|
oai_identifier_str |
oai:repositorio.uniandes.edu.co:1992/74646 |
network_acronym_str |
UNIANDES2 |
network_name_str |
Séneca: repositorio Uniandes |
repository_id_str |
|
dc.title.spa.fl_str_mv |
Herramienta de detección de Code Smells de frameworks en Visual Studio Code: Un enfoque para la mejora de la calidad del software |
title |
Herramienta de detección de Code Smells de frameworks en Visual Studio Code: Un enfoque para la mejora de la calidad del software |
spellingShingle |
Herramienta de detección de Code Smells de frameworks en Visual Studio Code: Un enfoque para la mejora de la calidad del software Calidad del código Mantenimiento de software Herramientas de desarrollo Code smells Visual Studio Code Herramientas de desarrollo Ingeniería |
title_short |
Herramienta de detección de Code Smells de frameworks en Visual Studio Code: Un enfoque para la mejora de la calidad del software |
title_full |
Herramienta de detección de Code Smells de frameworks en Visual Studio Code: Un enfoque para la mejora de la calidad del software |
title_fullStr |
Herramienta de detección de Code Smells de frameworks en Visual Studio Code: Un enfoque para la mejora de la calidad del software |
title_full_unstemmed |
Herramienta de detección de Code Smells de frameworks en Visual Studio Code: Un enfoque para la mejora de la calidad del software |
title_sort |
Herramienta de detección de Code Smells de frameworks en Visual Studio Code: Un enfoque para la mejora de la calidad del software |
dc.creator.fl_str_mv |
Vargas Rojas, Gabriela Ramírez Ramírez, Santiago Andrés Nielsen Rodríguez, Erik |
dc.contributor.advisor.none.fl_str_mv |
Bocanegra Garcia, Jose Joaquin |
dc.contributor.author.none.fl_str_mv |
Vargas Rojas, Gabriela Ramírez Ramírez, Santiago Andrés Nielsen Rodríguez, Erik |
dc.subject.keyword.spa.fl_str_mv |
Calidad del código Mantenimiento de software Herramientas de desarrollo Code smells |
topic |
Calidad del código Mantenimiento de software Herramientas de desarrollo Code smells Visual Studio Code Herramientas de desarrollo Ingeniería |
dc.subject.keyword.eng.fl_str_mv |
Visual Studio Code Herramientas de desarrollo |
dc.subject.themes.spa.fl_str_mv |
Ingeniería |
description |
Esta tesis aborda el desafío de mantener la calidad del código en proyectos de software grandes y complejos mediante el desarrollo de una extensión para Visual Studio Code que detecta automáticamente "Code Smells" y establece quality gates. El objetivo principal es crear una herramienta que ayude a los desarrolladores a identificar y corregir estos problemas mientras escriben el código, mejorando así la calidad del software y reduciendo el tiempo y esfuerzo necesarios para la depuración y el mantenimiento. Esta extensión será especialmente útil en entornos de equipo, facilitando la colaboración y asegurando la coherencia del código. La metodología del proyecto incluye la implementación de un algoritmo que analiza etiquetas de frameworks y detecta errores comunes, mostrando mensajes de error claros y concisos al usuario. Se integrará la extensión de manera accesible y fácil de usar, compatible con la mayoría de los frameworks. El desarrollo se realiza en fases: modelado, implementación y validación, con pruebas exhaustivas para asegurar la funcionalidad y efectividad de la herramienta. Los resultados del estudio demuestran la eficacia de la extensión en la detección de "Code Smells", subrayando su potencial para mejorar la calidad del código y la productividad de los desarrolladores. Se concluye que el uso de esta herramienta puede contribuir significativamente a mantener altos estándares de calidad en el desarrollo de software. |
publishDate |
2024 |
dc.date.accessioned.none.fl_str_mv |
2024-07-23T14:33:13Z |
dc.date.available.none.fl_str_mv |
2024-07-23T14:33:13Z |
dc.date.issued.none.fl_str_mv |
2024-07-11 |
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/74646 |
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/74646 |
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 |
Easy Agile. (2021, March 14). 8 Software Development Methodologies Explained. Recuperado de https://www.easyagile.com/blog/software-development-methodologies/ Upwork. (2023, July 31). 8 Most Common Software Development Methodologies. Recuperado de https://www.upwork.com/hiring/for-clients/software-development-methodologies/ Wrike. (2023, May 27). Ultimate Guide to Software Development Methodologies. Recuperado de https://www.wrike.com/blog/guide-to-software-development-methodologies/ Springer. (2021, March 10). Code Smells Detection and Visualization: A Systematic Literature Review. Recuperado de https://link.springer.com/article/10.1186/s40411-021-00137-4 Journal of Software Engineering Research and Development. (2017, October 6). On the evaluation of code smells and detection tools. Recuperado de https://link.springer.com/article/10.1186/s40411-021-00137-4 LeanIX. (2022, October 26). How to Detect and Eliminate Code Smells in Real-Time. Recuperado de https://www.leanix.net/en/blog/how-to-detect-and-eliminate-code-smells-in-real-time Visual Studio Code Extension API. (n.d.). Your First Extension. Recuperado de https://code.visualstudio.com/api/get-started/your-first-extension Visual Studio Code Extension API. (n.d.). Extension API. Recuperado de https://code.visualstudio.com/api/references/vscode-api Microsoft. (n.d.). Visual Studio Code - Code Editing. Redefined Microsoft. (n.d.). Download Visual Studio Code - Mac, Linux, Windows Microsoft. (n.d.). Descargar Visual Studio Tools: instalación gratuita para Windows, Mac … IONOS. (2022, November 21). Code smell: explicado de forma sencilla. intive. (n.d.). Un repaso por los code smells más comunes. Pessoa, T., Brito e Abreu, F., Pessoa Monteiro, M., & Bryton, S. (2012). An Eclipse Plugin to Support Code Smells Detection. Retrieved from arXiv preprint server (1204.6492). Paiva, T., Damasceno, A., Figueiredo, E., Sant’Anna, C. (2017) On the evaluation of code smells and detection tools. Retrieved from https://d-nb.info/1148154434/34 A. M. Fard and A. Mesbah, "JSNOSE: Detecting JavaScript Code Smells," 2013 IEEE 13th International Working Conference on Source Code Analysis and Manipulation (SCAM), Eindhoven, Netherlands, 2013, pp. 116-125, doi: 10.1109/SCAM.2013.6648192. CIBERNINJAS. (2022, October 17). ¿Qué es AST? Árbol de sintaxis abstracta. Recuperado de https://ciberninjas.com/ast/ James Milner. (2022). Getting Started With Handling TypeScript ASTs. Recuperado de https://www.jameslmilner.com/posts/ts-ast-and-ts-morph-intro/ |
dc.rights.en.fl_str_mv |
Attribution-NonCommercial-ShareAlike 4.0 International |
dc.rights.uri.none.fl_str_mv |
http://creativecommons.org/licenses/by-nc-sa/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-NonCommercial-ShareAlike 4.0 International http://creativecommons.org/licenses/by-nc-sa/4.0/ http://purl.org/coar/access_right/c_abf2 |
eu_rights_str_mv |
openAccess |
dc.format.extent.none.fl_str_mv |
29 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 de Sistemas y Computación |
dc.publisher.faculty.none.fl_str_mv |
Facultad de Ingeniería |
dc.publisher.department.none.fl_str_mv |
Departamento de Ingeniería de Sistemas y Computación |
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/681757f6-7cec-45ef-b368-28715dd3f60d/download https://repositorio.uniandes.edu.co/bitstreams/f998fb78-7ae7-4d5f-a779-5bfc02c938b8/download https://repositorio.uniandes.edu.co/bitstreams/0b20ff66-b0af-44b5-9e06-6440e38957d7/download https://repositorio.uniandes.edu.co/bitstreams/25d8dda3-3b92-476d-9465-3aee251ce006/download https://repositorio.uniandes.edu.co/bitstreams/24180dc2-585a-4d6a-8bb0-313b09c38821/download https://repositorio.uniandes.edu.co/bitstreams/09c9f046-2d89-4ff6-9b08-88c6d01d424c/download https://repositorio.uniandes.edu.co/bitstreams/4599aef1-38c0-4405-b62f-7caeb8267cc4/download https://repositorio.uniandes.edu.co/bitstreams/6e984904-0346-48e0-b3ea-77365db6bb86/download |
bitstream.checksum.fl_str_mv |
7b6d44e475a69bf54e36ea37bb26cfe0 a5244d2390d9719a0550b40a3bce5145 ae9e573a68e7f92501b6913cc846c39f 934f4ca17e109e0a05eaeaba504d7ce4 8aec1c242336eab0a75748dcf568b303 ec959958728393da4bc204ee0eb1cec5 f8e29af300984293f5bc11202b6eb6ef 00ba5ef71442f4a84e9b29b0f1389505 |
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_ |
1812133991249084416 |
spelling |
Bocanegra Garcia, Jose Joaquinvirtual::19137-1Vargas Rojas, GabrielaRamírez Ramírez, Santiago AndrésNielsen Rodríguez, Erik2024-07-23T14:33:13Z2024-07-23T14:33:13Z2024-07-11https://hdl.handle.net/1992/74646instname:Universidad de los Andesreponame:Repositorio Institucional Sénecarepourl:https://repositorio.uniandes.edu.co/Esta tesis aborda el desafío de mantener la calidad del código en proyectos de software grandes y complejos mediante el desarrollo de una extensión para Visual Studio Code que detecta automáticamente "Code Smells" y establece quality gates. El objetivo principal es crear una herramienta que ayude a los desarrolladores a identificar y corregir estos problemas mientras escriben el código, mejorando así la calidad del software y reduciendo el tiempo y esfuerzo necesarios para la depuración y el mantenimiento. Esta extensión será especialmente útil en entornos de equipo, facilitando la colaboración y asegurando la coherencia del código. La metodología del proyecto incluye la implementación de un algoritmo que analiza etiquetas de frameworks y detecta errores comunes, mostrando mensajes de error claros y concisos al usuario. Se integrará la extensión de manera accesible y fácil de usar, compatible con la mayoría de los frameworks. El desarrollo se realiza en fases: modelado, implementación y validación, con pruebas exhaustivas para asegurar la funcionalidad y efectividad de la herramienta. Los resultados del estudio demuestran la eficacia de la extensión en la detección de "Code Smells", subrayando su potencial para mejorar la calidad del código y la productividad de los desarrolladores. Se concluye que el uso de esta herramienta puede contribuir significativamente a mantener altos estándares de calidad en el desarrollo de software.Pregrado29 páginasapplication/pdfspaUniversidad de los AndesIngeniería de Sistemas y ComputaciónFacultad de IngenieríaDepartamento de Ingeniería de Sistemas y ComputaciónAttribution-NonCommercial-ShareAlike 4.0 Internationalhttp://creativecommons.org/licenses/by-nc-sa/4.0/info:eu-repo/semantics/openAccesshttp://purl.org/coar/access_right/c_abf2Herramienta de detección de Code Smells de frameworks en Visual Studio Code: Un enfoque para la mejora de la calidad del softwareTrabajo de grado - Pregradoinfo:eu-repo/semantics/bachelorThesisinfo:eu-repo/semantics/acceptedVersionhttp://purl.org/coar/resource_type/c_7a1fTexthttp://purl.org/redcol/resource_type/TPCalidad del códigoMantenimiento de softwareHerramientas de desarrolloCode smellsVisual Studio CodeHerramientas de desarrolloIngenieríaEasy Agile. (2021, March 14). 8 Software Development Methodologies Explained. Recuperado de https://www.easyagile.com/blog/software-development-methodologies/Upwork. (2023, July 31). 8 Most Common Software Development Methodologies. Recuperado de https://www.upwork.com/hiring/for-clients/software-development-methodologies/Wrike. (2023, May 27). Ultimate Guide to Software Development Methodologies. Recuperado de https://www.wrike.com/blog/guide-to-software-development-methodologies/Springer. (2021, March 10). Code Smells Detection and Visualization: A Systematic Literature Review. Recuperado de https://link.springer.com/article/10.1186/s40411-021-00137-4Journal of Software Engineering Research and Development. (2017, October 6). On the evaluation of code smells and detection tools. Recuperado de https://link.springer.com/article/10.1186/s40411-021-00137-4LeanIX. (2022, October 26). How to Detect and Eliminate Code Smells in Real-Time. Recuperado de https://www.leanix.net/en/blog/how-to-detect-and-eliminate-code-smells-in-real-timeVisual Studio Code Extension API. (n.d.). Your First Extension. Recuperado de https://code.visualstudio.com/api/get-started/your-first-extensionVisual Studio Code Extension API. (n.d.). Extension API. Recuperado de https://code.visualstudio.com/api/references/vscode-apiMicrosoft. (n.d.). Visual Studio Code - Code Editing. RedefinedMicrosoft. (n.d.). Download Visual Studio Code - Mac, Linux, WindowsMicrosoft. (n.d.). Descargar Visual Studio Tools: instalación gratuita para Windows, Mac …IONOS. (2022, November 21). Code smell: explicado de forma sencilla.intive. (n.d.). Un repaso por los code smells más comunes.Pessoa, T., Brito e Abreu, F., Pessoa Monteiro, M., & Bryton, S. (2012). An Eclipse Plugin to Support Code Smells Detection. Retrieved from arXiv preprint server (1204.6492).Paiva, T., Damasceno, A., Figueiredo, E., Sant’Anna, C. (2017) On the evaluation of code smells and detection tools. Retrieved from https://d-nb.info/1148154434/34A. M. Fard and A. Mesbah, "JSNOSE: Detecting JavaScript Code Smells," 2013 IEEE 13th International Working Conference on Source Code Analysis and Manipulation (SCAM), Eindhoven, Netherlands, 2013, pp. 116-125, doi: 10.1109/SCAM.2013.6648192.CIBERNINJAS. (2022, October 17). ¿Qué es AST? Árbol de sintaxis abstracta. Recuperado de https://ciberninjas.com/ast/James Milner. (2022). Getting Started With Handling TypeScript ASTs. Recuperado de https://www.jameslmilner.com/posts/ts-ast-and-ts-morph-intro/202013830201910908201913493Publication0000-0002-8342-7346virtual::19137-1https://scienti.minciencias.gov.co/cvlac/visualizador/generarCurriculoCv.do?cod_rh=0000425192virtual::19137-185f75f85-ca3a-4d29-bd1c-312b6813e2a8virtual::19137-185f75f85-ca3a-4d29-bd1c-312b6813e2a8virtual::19137-1ORIGINALHerramienta de detección de Code Smells de frameworks en Visual Studio Code.pdfHerramienta de detección de Code Smells de frameworks en Visual Studio Code.pdfapplication/pdf1123634https://repositorio.uniandes.edu.co/bitstreams/681757f6-7cec-45ef-b368-28715dd3f60d/download7b6d44e475a69bf54e36ea37bb26cfe0MD51autorizacion tesis_signed.pdfautorizacion tesis_signed.pdfHIDEapplication/pdf380706https://repositorio.uniandes.edu.co/bitstreams/f998fb78-7ae7-4d5f-a779-5bfc02c938b8/downloada5244d2390d9719a0550b40a3bce5145MD52LICENSElicense.txtlicense.txttext/plain; charset=utf-82535https://repositorio.uniandes.edu.co/bitstreams/0b20ff66-b0af-44b5-9e06-6440e38957d7/downloadae9e573a68e7f92501b6913cc846c39fMD53CC-LICENSElicense_rdflicense_rdfapplication/rdf+xml; charset=utf-81031https://repositorio.uniandes.edu.co/bitstreams/25d8dda3-3b92-476d-9465-3aee251ce006/download934f4ca17e109e0a05eaeaba504d7ce4MD54TEXTHerramienta de detección de Code Smells de frameworks en Visual Studio Code.pdf.txtHerramienta de detección de Code Smells de frameworks en Visual Studio Code.pdf.txtExtracted texttext/plain36275https://repositorio.uniandes.edu.co/bitstreams/24180dc2-585a-4d6a-8bb0-313b09c38821/download8aec1c242336eab0a75748dcf568b303MD55autorizacion tesis_signed.pdf.txtautorizacion tesis_signed.pdf.txtExtracted texttext/plain2095https://repositorio.uniandes.edu.co/bitstreams/09c9f046-2d89-4ff6-9b08-88c6d01d424c/downloadec959958728393da4bc204ee0eb1cec5MD57THUMBNAILHerramienta de detección de Code Smells de frameworks en Visual Studio Code.pdf.jpgHerramienta de detección de Code Smells de frameworks en Visual Studio Code.pdf.jpgGenerated Thumbnailimage/jpeg9706https://repositorio.uniandes.edu.co/bitstreams/4599aef1-38c0-4405-b62f-7caeb8267cc4/downloadf8e29af300984293f5bc11202b6eb6efMD56autorizacion tesis_signed.pdf.jpgautorizacion tesis_signed.pdf.jpgGenerated Thumbnailimage/jpeg11000https://repositorio.uniandes.edu.co/bitstreams/6e984904-0346-48e0-b3ea-77365db6bb86/download00ba5ef71442f4a84e9b29b0f1389505MD581992/74646oai:repositorio.uniandes.edu.co:1992/746462024-09-12 16:19:55.493http://creativecommons.org/licenses/by-nc-sa/4.0/Attribution-NonCommercial-ShareAlike 4.0 Internationalopen.accesshttps://repositorio.uniandes.edu.coRepositorio institucional Sénecaadminrepositorio@uniandes.edu.coPGgzPjxzdHJvbmc+RGVzY2FyZ28gZGUgUmVzcG9uc2FiaWxpZGFkIC0gTGljZW5jaWEgZGUgQXV0b3JpemFjacOzbjwvc3Ryb25nPjwvaDM+CjxwPjxzdHJvbmc+UG9yIGZhdm9yIGxlZXIgYXRlbnRhbWVudGUgZXN0ZSBkb2N1bWVudG8gcXVlIHBlcm1pdGUgYWwgUmVwb3NpdG9yaW8gSW5zdGl0dWNpb25hbCBTw6luZWNhIHJlcHJvZHVjaXIgeSBkaXN0cmlidWlyIGxvcyByZWN1cnNvcyBkZSBpbmZvcm1hY2nDs24gZGVwb3NpdGFkb3MgbWVkaWFudGUgbGEgYXV0b3JpemFjacOzbiBkZSBsb3Mgc2lndWllbnRlcyB0w6lybWlub3M6PC9zdHJvbmc+PC9wPgo8cD5Db25jZWRhIGxhIGxpY2VuY2lhIGRlIGRlcMOzc2l0byBlc3TDoW5kYXIgc2VsZWNjaW9uYW5kbyBsYSBvcGNpw7NuIDxzdHJvbmc+J0FjZXB0YXIgbG9zIHTDqXJtaW5vcyBhbnRlcmlvcm1lbnRlIGRlc2NyaXRvcyc8L3N0cm9uZz4geSBjb250aW51YXIgZWwgcHJvY2VzbyBkZSBlbnbDrW8gbWVkaWFudGUgZWwgYm90w7NuIDxzdHJvbmc+J1NpZ3VpZW50ZScuPC9zdHJvbmc+PC9wPgo8aHI+CjxwPllvLCBlbiBtaSBjYWxpZGFkIGRlIGF1dG9yIGRlbCB0cmFiYWpvIGRlIHRlc2lzLCBtb25vZ3JhZsOtYSBvIHRyYWJham8gZGUgZ3JhZG8sIGhhZ28gZW50cmVnYSBkZWwgZWplbXBsYXIgcmVzcGVjdGl2byB5IGRlIHN1cyBhbmV4b3MgZGUgc2VyIGVsIGNhc28sIGVuIGZvcm1hdG8gZGlnaXRhbCB5L28gZWxlY3Ryw7NuaWNvIHkgYXV0b3Jpem8gYSBsYSBVbml2ZXJzaWRhZCBkZSBsb3MgQW5kZXMgcGFyYSBxdWUgcmVhbGljZSBsYSBwdWJsaWNhY2nDs24gZW4gZWwgU2lzdGVtYSBkZSBCaWJsaW90ZWNhcyBvIGVuIGN1YWxxdWllciBvdHJvIHNpc3RlbWEgbyBiYXNlIGRlIGRhdG9zIHByb3BpbyBvIGFqZW5vIGEgbGEgVW5pdmVyc2lkYWQgeSBwYXJhIHF1ZSBlbiBsb3MgdMOpcm1pbm9zIGVzdGFibGVjaWRvcyBlbiBsYSBMZXkgMjMgZGUgMTk4MiwgTGV5IDQ0IGRlIDE5OTMsIERlY2lzacOzbiBBbmRpbmEgMzUxIGRlIDE5OTMsIERlY3JldG8gNDYwIGRlIDE5OTUgeSBkZW3DoXMgbm9ybWFzIGdlbmVyYWxlcyBzb2JyZSBsYSBtYXRlcmlhLCB1dGlsaWNlIGVuIHRvZGFzIHN1cyBmb3JtYXMsIGxvcyBkZXJlY2hvcyBwYXRyaW1vbmlhbGVzIGRlIHJlcHJvZHVjY2nDs24sIGNvbXVuaWNhY2nDs24gcMO6YmxpY2EsIHRyYW5zZm9ybWFjacOzbiB5IGRpc3RyaWJ1Y2nDs24gKGFscXVpbGVyLCBwcsOpc3RhbW8gcMO6YmxpY28gZSBpbXBvcnRhY2nDs24pIHF1ZSBtZSBjb3JyZXNwb25kZW4gY29tbyBjcmVhZG9yIGRlIGxhIG9icmEgb2JqZXRvIGRlbCBwcmVzZW50ZSBkb2N1bWVudG8uPC9wPgo8cD5MYSBwcmVzZW50ZSBhdXRvcml6YWNpw7NuIHNlIGVtaXRlIGVuIGNhbGlkYWQgZGUgYXV0b3IgZGUgbGEgb2JyYSBvYmpldG8gZGVsIHByZXNlbnRlIGRvY3VtZW50byB5IG5vIGNvcnJlc3BvbmRlIGEgY2VzacOzbiBkZSBkZXJlY2hvcywgc2lubyBhIGxhIGF1dG9yaXphY2nDs24gZGUgdXNvIGFjYWTDqW1pY28gZGUgY29uZm9ybWlkYWQgY29uIGxvIGFudGVyaW9ybWVudGUgc2XDsWFsYWRvLiBMYSBwcmVzZW50ZSBhdXRvcml6YWNpw7NuIHNlIGhhY2UgZXh0ZW5zaXZhIG5vIHNvbG8gYSBsYXMgZmFjdWx0YWRlcyB5IGRlcmVjaG9zIGRlIHVzbyBzb2JyZSBsYSBvYnJhIGVuIGZvcm1hdG8gbyBzb3BvcnRlIG1hdGVyaWFsLCBzaW5vIHRhbWJpw6luIHBhcmEgZm9ybWF0byBlbGVjdHLDs25pY28sIHkgZW4gZ2VuZXJhbCBwYXJhIGN1YWxxdWllciBmb3JtYXRvIGNvbm9jaWRvIG8gcG9yIGNvbm9jZXIuPC9wPgo8cD5FbCBhdXRvciwgbWFuaWZpZXN0YSBxdWUgbGEgb2JyYSBvYmpldG8gZGUgbGEgcHJlc2VudGUgYXV0b3JpemFjacOzbiBlcyBvcmlnaW5hbCB5IGxhIHJlYWxpesOzIHNpbiB2aW9sYXIgbyB1c3VycGFyIGRlcmVjaG9zIGRlIGF1dG9yIGRlIHRlcmNlcm9zLCBwb3IgbG8gdGFudG8sIGxhIG9icmEgZXMgZGUgc3UgZXhjbHVzaXZhIGF1dG9yw61hIHkgdGllbmUgbGEgdGl0dWxhcmlkYWQgc29icmUgbGEgbWlzbWEuPC9wPgo8cD5FbiBjYXNvIGRlIHByZXNlbnRhcnNlIGN1YWxxdWllciByZWNsYW1hY2nDs24gbyBhY2Npw7NuIHBvciBwYXJ0ZSBkZSB1biB0ZXJjZXJvIGVuIGN1YW50byBhIGxvcyBkZXJlY2hvcyBkZSBhdXRvciBzb2JyZSBsYSBvYnJhIGVuIGN1ZXN0acOzbiwgZWwgYXV0b3IgYXN1bWlyw6EgdG9kYSBsYSByZXNwb25zYWJpbGlkYWQsIHkgc2FsZHLDoSBkZSBkZWZlbnNhIGRlIGxvcyBkZXJlY2hvcyBhcXXDrSBhdXRvcml6YWRvcywgcGFyYSB0b2RvcyBsb3MgZWZlY3RvcyBsYSBVbml2ZXJzaWRhZCBhY3TDumEgY29tbyB1biB0ZXJjZXJvIGRlIGJ1ZW5hIGZlLjwvcD4KPHA+U2kgdGllbmUgYWxndW5hIGR1ZGEgc29icmUgbGEgbGljZW5jaWEsIHBvciBmYXZvciwgY29udGFjdGUgY29uIGVsIDxhIGhyZWY9Im1haWx0bzpiaWJsaW90ZWNhQHVuaWFuZGVzLmVkdS5jbyIgdGFyZ2V0PSJfYmxhbmsiPkFkbWluaXN0cmFkb3IgZGVsIFNpc3RlbWEuPC9hPjwvcD4K |