Towards a model-driven engineering approach for trusted execution environments
As digital cities evolve, the integration of diverse services becomes critical. However, the challenge lies not so much in traditional integration platforms such as Apache Camel or Mule, but in environments in which these platforms are deployed, which may lack mechanisms to guarantee the privacy and...
- 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:
- eng
- OAI Identifier:
- oai:repositorio.uniandes.edu.co:1992/76223
- Acceso en línea:
- https://hdl.handle.net/1992/76223
- Palabra clave:
- Trusted Execution Environment
Morello Board
CHERI
Model-Driven Engineering
Code Generation
Sirius
Acceleo
Digital Cities
Secure Integration
Ingeniería
- Rights
- openAccess
- License
- Attribution 4.0 International
id |
UNIANDES2_78a5451512f8294dd384a58477c88adf |
---|---|
oai_identifier_str |
oai:repositorio.uniandes.edu.co:1992/76223 |
network_acronym_str |
UNIANDES2 |
network_name_str |
Séneca: repositorio Uniandes |
repository_id_str |
|
dc.title.eng.fl_str_mv |
Towards a model-driven engineering approach for trusted execution environments |
title |
Towards a model-driven engineering approach for trusted execution environments |
spellingShingle |
Towards a model-driven engineering approach for trusted execution environments Trusted Execution Environment Morello Board CHERI Model-Driven Engineering Code Generation Sirius Acceleo Digital Cities Secure Integration Ingeniería |
title_short |
Towards a model-driven engineering approach for trusted execution environments |
title_full |
Towards a model-driven engineering approach for trusted execution environments |
title_fullStr |
Towards a model-driven engineering approach for trusted execution environments |
title_full_unstemmed |
Towards a model-driven engineering approach for trusted execution environments |
title_sort |
Towards a model-driven engineering approach for trusted execution environments |
dc.creator.fl_str_mv |
Jáuregui Rozo, Juan Manuel |
dc.contributor.advisor.none.fl_str_mv |
Bocanegra Garcia, Jose Joaquin |
dc.contributor.author.none.fl_str_mv |
Jáuregui Rozo, Juan Manuel |
dc.subject.keyword.eng.fl_str_mv |
Trusted Execution Environment Morello Board CHERI Model-Driven Engineering Code Generation Sirius Acceleo Digital Cities Secure Integration |
topic |
Trusted Execution Environment Morello Board CHERI Model-Driven Engineering Code Generation Sirius Acceleo Digital Cities Secure Integration Ingeniería |
dc.subject.themes.spa.fl_str_mv |
Ingeniería |
description |
As digital cities evolve, the integration of diverse services becomes critical. However, the challenge lies not so much in traditional integration platforms such as Apache Camel or Mule, but in environments in which these platforms are deployed, which may lack mechanisms to guarantee the privacy and integrity of the data. Trusted Execution Environments (TEEs) offer secure compartments in memory for the execution of code and processing of sensitive data, providing stronger protection against attacks. Among these TEE, the Morello Board has the capabilities for compartmentalized execution using the CHERI architecture. Despite its potential, development for the Morello platform is hindered by the complexity of writing secure code in C. To address this, we propose a model-driven approach that enables automatic generation of code in C for TEEs. Our methodology includes the definition of a metamodel and model using Sirius and code generation using Acceleo. This generated code is compatible with the Morello Board. Furthermore, we demonstrate the feasibility of this approach using a case study focused on the integration of secure services in the context of smart cities. |
publishDate |
2025 |
dc.date.accessioned.none.fl_str_mv |
2025-05-30T13:18:34Z |
dc.date.available.none.fl_str_mv |
2025-05-30T13:18:34Z |
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/76223 |
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/76223 |
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 |
eng |
language |
eng |
dc.relation.references.none.fl_str_mv |
Apache Software Foundation: Apache camel – integration framework based on enterprise integration patterns. https://camel.apache.org/, accessed May 2025 Apvrille, L., Roudier, Y.: Sysml-sec: A model driven approach for securing embed- ded systems. In: 12th International Workshop on Modeling in Software Engineer- ing. pp. 29–35. IEEE (2015), https://arxiv.org/pdf/1404.1985 ARM Ltd.: Arm trustzone technology. https://www.arm.com/technologies/trustzone- for-cortex-a (2023), accessed 8 May 2025 Costan, V., Devadas, S.: Intel sgx explained. IACR Cryptology ePrint Archive pp. 1–118 (2016) Eclipse Foundation: Acceleo - code generator. https://www.eclipse.org/acceleo/, accessed May 2025 Hamid, B., Geisel, J., Ziani, A., Bruel, J.M., Perez, J.: An mde-based framework for designing safe and secure embedded systems. In: Software Engineering for Em- bedded Systems, pp. 72–90. Springer (2013). https://doi.org/10.1007/978-3-642- 38911-5_5 MuleSoft Inc.: Mulesoft – anypoint platform for apis and integrations. https://www.mulesoft.com/, accessed May 2025 Obeo: Sirius - the open source graphical modeling workbench. https://www.eclipse.org/sirius/, accessed May 2025 Sabt, M., Achemlal, M., Bouabdallah, A.: Trusted execution environment: What it is, and what it is not. In: 2015 IEEE Trustcom/BigDataSE/ISPA. vol. 1, pp. 57–64. IEEE (2015). https://doi.org/10.1109/Trustcom.2015.357 Watson, R.N., Moore, S.W., Sewell, P., Neumann, P.G.: Capability hardware en- hanced risc instructions (cheri): Notes on the design and implementation. Tech- nical Report UCAM-CL-TR-927, University of Cambridge, Computer Laboratory (2019) |
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 |
10 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/ae4a03aa-c2d5-4090-8fd0-c89886d4ab3b/download https://repositorio.uniandes.edu.co/bitstreams/ee8c2c1e-7e44-4276-bc23-86ddda124239/download https://repositorio.uniandes.edu.co/bitstreams/4df55644-c8ef-4238-b0cb-2e5360c3b15d/download https://repositorio.uniandes.edu.co/bitstreams/b90f4e8f-3dab-48d5-9f4b-64299ce34469/download https://repositorio.uniandes.edu.co/bitstreams/f0fe11f2-fa4c-4eb7-8f2f-a7ef902e6068/download https://repositorio.uniandes.edu.co/bitstreams/81d6a285-3787-4600-99a3-ca34fdb9fc5f/download https://repositorio.uniandes.edu.co/bitstreams/c99dfa22-3214-477f-9396-a94cc1cddbb6/download https://repositorio.uniandes.edu.co/bitstreams/098821c2-1203-4a34-8e94-e6a30667e16a/download |
bitstream.checksum.fl_str_mv |
4d2b348244d8566f17adf3d9d6c278ef 51fe4fdfd27f9afd5eb1cbf83f208031 ae9e573a68e7f92501b6913cc846c39f 0175ea4a2d4caec4bbcc37e300941108 aed361a96c2f4229ed90080500ccc6d4 bada479e7dd8b16997f9c17ffbd518bc c5614ef528f2ef2eb3f35b2db2b46a61 e399576615c69281cfd345e8cec9417a |
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_ |
1837005222147260416 |
spelling |
Bocanegra Garcia, Jose Joaquinvirtual::24124-1Jáuregui Rozo, Juan Manuel2025-05-30T13:18:34Z2025-05-30T13:18:34Z2025-05-29https://hdl.handle.net/1992/76223instname:Universidad de los Andesreponame:Repositorio Institucional Sénecarepourl:https://repositorio.uniandes.edu.co/As digital cities evolve, the integration of diverse services becomes critical. However, the challenge lies not so much in traditional integration platforms such as Apache Camel or Mule, but in environments in which these platforms are deployed, which may lack mechanisms to guarantee the privacy and integrity of the data. Trusted Execution Environments (TEEs) offer secure compartments in memory for the execution of code and processing of sensitive data, providing stronger protection against attacks. Among these TEE, the Morello Board has the capabilities for compartmentalized execution using the CHERI architecture. Despite its potential, development for the Morello platform is hindered by the complexity of writing secure code in C. To address this, we propose a model-driven approach that enables automatic generation of code in C for TEEs. Our methodology includes the definition of a metamodel and model using Sirius and code generation using Acceleo. This generated code is compatible with the Morello Board. Furthermore, we demonstrate the feasibility of this approach using a case study focused on the integration of secure services in the context of smart cities.Pregrado10 páginasapplication/pdfengUniversidad de los AndesIngeniería de Sistemas y ComputaciónFacultad de IngenieríaDepartamento de Ingeniería de Sistemas y ComputaciónAttribution 4.0 Internationalhttp://creativecommons.org/licenses/by/4.0/info:eu-repo/semantics/openAccesshttp://purl.org/coar/access_right/c_abf2Towards a model-driven engineering approach for trusted execution environmentsTrabajo de grado - Pregradoinfo:eu-repo/semantics/bachelorThesisinfo:eu-repo/semantics/acceptedVersionhttp://purl.org/coar/resource_type/c_7a1fTexthttp://purl.org/redcol/resource_type/TPTrusted Execution EnvironmentMorello BoardCHERIModel-Driven EngineeringCode GenerationSiriusAcceleoDigital CitiesSecure IntegrationIngenieríaApache Software Foundation: Apache camel – integration framework based on enterprise integration patterns. https://camel.apache.org/, accessed May 2025Apvrille, L., Roudier, Y.: Sysml-sec: A model driven approach for securing embed- ded systems. In: 12th International Workshop on Modeling in Software Engineer- ing. pp. 29–35. IEEE (2015), https://arxiv.org/pdf/1404.1985ARM Ltd.: Arm trustzone technology. https://www.arm.com/technologies/trustzone- for-cortex-a (2023), accessed 8 May 2025Costan, V., Devadas, S.: Intel sgx explained. IACR Cryptology ePrint Archive pp. 1–118 (2016)Eclipse Foundation: Acceleo - code generator. https://www.eclipse.org/acceleo/, accessed May 2025Hamid, B., Geisel, J., Ziani, A., Bruel, J.M., Perez, J.: An mde-based framework for designing safe and secure embedded systems. In: Software Engineering for Em- bedded Systems, pp. 72–90. Springer (2013). https://doi.org/10.1007/978-3-642- 38911-5_5MuleSoft Inc.: Mulesoft – anypoint platform for apis and integrations. https://www.mulesoft.com/, accessed May 2025Obeo: Sirius - the open source graphical modeling workbench. https://www.eclipse.org/sirius/, accessed May 2025Sabt, M., Achemlal, M., Bouabdallah, A.: Trusted execution environment: What it is, and what it is not. In: 2015 IEEE Trustcom/BigDataSE/ISPA. vol. 1, pp. 57–64. IEEE (2015). https://doi.org/10.1109/Trustcom.2015.357Watson, R.N., Moore, S.W., Sewell, P., Neumann, P.G.: Capability hardware en- hanced risc instructions (cheri): Notes on the design and implementation. Tech- nical Report UCAM-CL-TR-927, University of Cambridge, Computer Laboratory (2019)201922481Publication0000-0002-8342-7346virtual::24124-1https://scienti.minciencias.gov.co/cvlac/visualizador/generarCurriculoCv.do?cod_rh=0000425192virtual::24124-185f75f85-ca3a-4d29-bd1c-312b6813e2a8virtual::24124-185f75f85-ca3a-4d29-bd1c-312b6813e2a8virtual::24124-1ORIGINALFormato de Autorización y Entrega de Tesis al Sistema de Bibliotecas - ISIS.pdfFormato de Autorización y Entrega de Tesis al Sistema de Bibliotecas - ISIS.pdfHIDEapplication/pdf343490https://repositorio.uniandes.edu.co/bitstreams/ae4a03aa-c2d5-4090-8fd0-c89886d4ab3b/download4d2b348244d8566f17adf3d9d6c278efMD51Towards_a_Model_Driven_Enginnering_Approach_for_Trusted_Execution_Environments.pdfTowards_a_Model_Driven_Enginnering_Approach_for_Trusted_Execution_Environments.pdfapplication/pdf6458183https://repositorio.uniandes.edu.co/bitstreams/ee8c2c1e-7e44-4276-bc23-86ddda124239/download51fe4fdfd27f9afd5eb1cbf83f208031MD52LICENSElicense.txtlicense.txttext/plain; charset=utf-82535https://repositorio.uniandes.edu.co/bitstreams/4df55644-c8ef-4238-b0cb-2e5360c3b15d/downloadae9e573a68e7f92501b6913cc846c39fMD54CC-LICENSElicense_rdflicense_rdfapplication/rdf+xml; charset=utf-8908https://repositorio.uniandes.edu.co/bitstreams/b90f4e8f-3dab-48d5-9f4b-64299ce34469/download0175ea4a2d4caec4bbcc37e300941108MD55TEXTFormato de Autorización y Entrega de Tesis al Sistema de Bibliotecas - ISIS.pdf.txtFormato de Autorización y Entrega de Tesis al Sistema de Bibliotecas - ISIS.pdf.txtExtracted texttext/plain2009https://repositorio.uniandes.edu.co/bitstreams/f0fe11f2-fa4c-4eb7-8f2f-a7ef902e6068/downloadaed361a96c2f4229ed90080500ccc6d4MD56Towards_a_Model_Driven_Enginnering_Approach_for_Trusted_Execution_Environments.pdf.txtTowards_a_Model_Driven_Enginnering_Approach_for_Trusted_Execution_Environments.pdf.txtExtracted texttext/plain21131https://repositorio.uniandes.edu.co/bitstreams/81d6a285-3787-4600-99a3-ca34fdb9fc5f/downloadbada479e7dd8b16997f9c17ffbd518bcMD58THUMBNAILFormato de Autorización y Entrega de Tesis al Sistema de Bibliotecas - ISIS.pdf.jpgFormato de Autorización y Entrega de Tesis al Sistema de Bibliotecas - ISIS.pdf.jpgIM Thumbnailimage/jpeg14728https://repositorio.uniandes.edu.co/bitstreams/c99dfa22-3214-477f-9396-a94cc1cddbb6/downloadc5614ef528f2ef2eb3f35b2db2b46a61MD57Towards_a_Model_Driven_Enginnering_Approach_for_Trusted_Execution_Environments.pdf.jpgTowards_a_Model_Driven_Enginnering_Approach_for_Trusted_Execution_Environments.pdf.jpgIM Thumbnailimage/jpeg15418https://repositorio.uniandes.edu.co/bitstreams/098821c2-1203-4a34-8e94-e6a30667e16a/downloade399576615c69281cfd345e8cec9417aMD591992/76223oai:repositorio.uniandes.edu.co:1992/762232025-05-31 04:05:48.084http://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 |