Diseño e implementación del criptosistema SIMON en FPGA

Incluye tablas, gráficos y anexos.

Autores:
Rincón González, José Gabriel
Tipo de recurso:
Trabajo de grado de pregrado
Fecha de publicación:
2021
Institución:
Universidad de los Llanos
Repositorio:
Repositorio Digital Universidad de los LLanos
Idioma:
spa
OAI Identifier:
oai:repositorio.unillanos.edu.co:001/5455
Acceso en línea:
https://repositorio.unillanos.edu.co/handle/001/5455
https://repositorio.unillanos.edu.co/
Palabra clave:
Amplificadores (Electrónica)
Conductores de línea (Circuitos integrados)
Análisis de circuitos eléctricos
Circuitos asíncronos
Criptosistema simon
FPGA
Criptoanálisis
Criptografía
Criptografía asimétrica
Descifrador
Criptoprocesador SIMON32/64
Rights
openAccess
License
Derechos Reservados - Universidad de los Llanos, 2021
id Unillanos2_c41d202597bf6df0f129cb88fed98294
oai_identifier_str oai:repositorio.unillanos.edu.co:001/5455
network_acronym_str Unillanos2
network_name_str Repositorio Digital Universidad de los LLanos
repository_id_str
dc.title.spa.fl_str_mv Diseño e implementación del criptosistema SIMON en FPGA
title Diseño e implementación del criptosistema SIMON en FPGA
spellingShingle Diseño e implementación del criptosistema SIMON en FPGA
Amplificadores (Electrónica)
Conductores de línea (Circuitos integrados)
Análisis de circuitos eléctricos
Circuitos asíncronos
Criptosistema simon
FPGA
Criptoanálisis
Criptografía
Criptografía asimétrica
Descifrador
Criptoprocesador SIMON32/64
title_short Diseño e implementación del criptosistema SIMON en FPGA
title_full Diseño e implementación del criptosistema SIMON en FPGA
title_fullStr Diseño e implementación del criptosistema SIMON en FPGA
title_full_unstemmed Diseño e implementación del criptosistema SIMON en FPGA
title_sort Diseño e implementación del criptosistema SIMON en FPGA
dc.creator.fl_str_mv Rincón González, José Gabriel
dc.contributor.advisor.none.fl_str_mv Velásquez Clavijo, Fabian
dc.contributor.author.none.fl_str_mv Rincón González, José Gabriel
dc.contributor.jury.none.fl_str_mv Velásquez Clavijo, Fabian
dc.subject.armarc.none.fl_str_mv Amplificadores (Electrónica)
Conductores de línea (Circuitos integrados)
Análisis de circuitos eléctricos
Circuitos asíncronos
topic Amplificadores (Electrónica)
Conductores de línea (Circuitos integrados)
Análisis de circuitos eléctricos
Circuitos asíncronos
Criptosistema simon
FPGA
Criptoanálisis
Criptografía
Criptografía asimétrica
Descifrador
Criptoprocesador SIMON32/64
dc.subject.proposal.spa.fl_str_mv Criptosistema simon
FPGA
Criptoanálisis
Criptografía
Criptografía asimétrica
Descifrador
Criptoprocesador SIMON32/64
description Incluye tablas, gráficos y anexos.
publishDate 2021
dc.date.issued.none.fl_str_mv 2021
dc.date.accessioned.none.fl_str_mv 2025-10-27T15:51:05Z
dc.date.available.none.fl_str_mv 2025-10-27T15:51:05Z
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/publishedVersion
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.coarversion.none.fl_str_mv http://purl.org/coar/version/c_970fb48d4fbd8a85
dc.type.category.none.fl_str_mv Proyectos de investigación
format http://purl.org/coar/resource_type/c_7a1f
status_str publishedVersion
dc.identifier.citation.none.fl_str_mv Rincón González, José Gabriel (2021). Diseño e implementación del criptosistema SIMON en FPGA [Trabajo de grado, Universidad de los Llanos]. Repositorio digital Universidad de los Llanos.
dc.identifier.uri.none.fl_str_mv https://repositorio.unillanos.edu.co/handle/001/5455
dc.identifier.instname.none.fl_str_mv Universidad de los Llanos
dc.identifier.reponame.none.fl_str_mv Repositorio digital Universidad de los Llanos
dc.identifier.repourl.none.fl_str_mv https://repositorio.unillanos.edu.co/
identifier_str_mv Rincón González, José Gabriel (2021). Diseño e implementación del criptosistema SIMON en FPGA [Trabajo de grado, Universidad de los Llanos]. Repositorio digital Universidad de los Llanos.
Universidad de los Llanos
Repositorio digital Universidad de los Llanos
url https://repositorio.unillanos.edu.co/handle/001/5455
https://repositorio.unillanos.edu.co/
dc.language.iso.none.fl_str_mv spa
language spa
dc.relation.references.none.fl_str_mv A. Menezes, P. van Oorschot, and S. Vanstone, “Handbook of Applied Cryptography,” 1996, p. 591~634.
E. Savaş and Ç. K. Koç, “Finite field arithmetic for cryptography,” IEEE Circuits Syst. Mag., vol. 10, no. 2, pp. 40–56, 2010, doi: 10.1109/MCAS.2010.936785.
M. M. Martinez, “Una introduccion a la criptografia. El criptosistema R.S.A.,” I.E.S. Cardenal Lòpez de Mendoza, 2004.
L. W. Ray Beaulieu, Douglas Shors, Jason Smith, Stefan Treatman-Clark, Bryan Weeks, “THE SIMON AND SPECK FAMILIES OF LIGHTWEIGHT BLOCK CIPHERS,” Natl. Secur. Agency, p. 42, 2013.
J. Aguirre, CURSO DE SEGURIDAD INFORMÁTICA Y CRIPTOGRAFÍA, vol. 3.1. 2003.
M. P. Martorell, “CRIPTOLOGÌA,” Esc. Univ. Politec. Matarò, p. 40.
A. Jorge, Libro Electrònico de Seguridad Informatica y Criptografia, 6th ed. 2006.
M. Rao, A. Kaknjo, E. Omerdic, D. Toal, and T. Newe, “An efficient high speed AES implementation using traditional FPGA and LabVIEW FPGA platforms,” 2019, pp. 93–100, doi: 10.1109/CyberC.2018.00028.
C. G. Justo, Seguridad en Redes Telemàticas. Madrid España, 2004.
N. Velasquez and N. Pineda, “Diseño e Implementacion de un Prototipo Criptoprocesador AES-Rijndael en FPGA,” Universidad de Los Llanos, 2007.
A. Bogdanov, L. R. Knudsen, G. Leander, C. Paar, and A. Poschmann, “PRESENT : An Ultra-Lightweight Block Cipher.”
X. Fan, K. Mandal, and G. Gong, “WG-8: A lightweight stream cipher for resource-constrained smart devices,” Lect. Notes Inst. Comput. Sci. Soc. Telecommun. Eng. LNICST, vol. 115, pp. 617–632, 2013, doi: 10.1007/9783-642-37949-9_54.
W. Diehl, A. Abdulgadir, J. P. Kaps, and K. Gaj, “Comparing the cost of protecting selected lightweight block ciphers against differential power analysis in low-cost FPGAs,” Computers, vol. 7, no. 2, pp. 128–135, 2018, doi: 10.3390/computers7020028.
S. Abed, R. Jaffal, B. J. Mohd, and M. Alshayeji, “FPGA modeling and optimization of a SIMON lightweight block cipher,” Sensors (Switzerland), vol. 19, no. 4, 2019, doi: 10.3390/s19040913.
P. Maene and I. Verbauwhede, “Single-cycle implementations of block ciphers,” Lect. Notes Comput. Sci. (including Subser. Lect. Notes Artif. Intell. Lect. Notes Bioinformatics), vol. 9542, pp. 131–147, 2016, doi: 10.1007/9783-319-29078-2_8.
A. Shahverdi, M. Taha, and T. Eisenbarth, “Lightweight Side Channel Resistance: Threshold Implementations of Simon,” IEEE Trans. Comput., vol. 66, no. 4, pp. 661–671, 2017, doi: 10.1109/TC.2016.2614504.
B. Rashidi, “High-throughput and lightweight hardware structures of HIGHT and PRESENT block ciphers,” Microelectronics J., vol. 90, no. June 2018, pp. 232–252, 2019, doi: 10.1016/j.mejo.2019.06.012.
S. B. Basturk, C. E. J. Dancer, and T. McNally, “High-throughput Configurable SIMON Architecture for Flexible Security,” Pharmacol. Res., p. 104743, 2020, doi: 10.1016/j.mejo.2021.105085.
W. El Hadj Youssef, A. Abdelli, F. Dridi, and M. Machhout, “Hardware implementation of secure lightweight cryptographic designs for IoT applications,” Secur. Commun. Networks, vol. 2020, 2020, doi: 10.1155/2020/8860598.
S. Sadiya Shireen, B. Murali Krishna, K. Naga Lakshmi Prasanna, and A. Poorna Chander Reddy, “FPGA based RSA authenticated data hiding in image through steganography,” Int. J. Innov. Technol. Explor. Eng., vol. 8, no. 4, pp. 550–554, 2019, [Online]. Available: https://www.scopus.com/inward/record.uri?eid=2-s2.085061568077&partnerID=40&md5=2eb1b8bdee6547d6f4cb4395f65bc41b.
F. Velasquez Clavijo, “Diseño e implementación de un prototipo de transmisión de datos punto a punto con encriptación basada en curvas elipticas.,” 2006.
R. Darrel and A. Scott, Guide to Elliptic Curve Cryptography. 2004.
J. Guajardo, S. S. Kumar, C. Paar, and J. Pelzl, “Efficient software- implementation of finite fields with applications to cryptography,” Acta Appl. Math., vol. 93, no. 1–3, pp. 3–32, 2006, doi: 10.1007/s10440-006-9046-1.
B. Schneier, Schneier’s Cryptography Classics Library: Applied Cryptography, Secrets and Lies, and Practical Cryptography. 2007.
F. Rodriguez and A. Díaz, Cryptographic Algorithms on Reconfigurable Hardware. 2011.
C. D. E. Algoritmos et al., Introducción a La Teoría de Números Ejemplos y Algoritmos. 2006.
E. Sava and C. K. Koc, “The Montgomery Modular Inverse - Revisited,” IEEE Trans. Comput., vol. 49, no. 7, pp. 763–766, 2000.
D. Stebila and S. C. Shantz, “Generic GF ( 2 m ) Arithmetic in Software and its Application to ECC.”
J.-P. Deschamps, J. L. Imaña, and G. Sutter, Hardware Implementation of Finite-Field Arithmetic. 2013.
“GitHub - KULeuven-COSIC/UnrolledBlockCiphers.” https://github.com/KULeuven-COSIC/UnrolledBlockCiphers (accessed Sep. 10, 2021).
“Basys 3 Reference Manual - Digilent Reference.” https://digilent.com/reference/programmable-logic/basys-3/referencemanual?redirect=1 (accessed Sep. 13, 2021).
dc.rights.none.fl_str_mv Derechos Reservados - Universidad de los Llanos, 2021
dc.rights.uri.none.fl_str_mv https://creativecommons.org/licenses/by-nc-nd/4.0/
dc.rights.license.none.fl_str_mv Atribución-NoComercial-SinDerivadas 4.0 Internacional (CC BY-NC-ND 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 Derechos Reservados - Universidad de los Llanos, 2021
https://creativecommons.org/licenses/by-nc-nd/4.0/
Atribución-NoComercial-SinDerivadas 4.0 Internacional (CC BY-NC-ND 4.0)
http://purl.org/coar/access_right/c_abf2
eu_rights_str_mv openAccess
dc.format.extent.none.fl_str_mv 110 páginas
dc.format.mimetype.none.fl_str_mv application/pdf
dc.publisher.none.fl_str_mv Universidad de los Llanos
dc.publisher.faculty.none.fl_str_mv Facultad de Ciencias Básicas e Ingeniería
dc.publisher.place.none.fl_str_mv Villavicencio
dc.publisher.program.none.fl_str_mv Ingeniería Electrónica
dc.publisher.branch.none.fl_str_mv Sede Barcelona
publisher.none.fl_str_mv Universidad de los Llanos
institution Universidad de los Llanos
bitstream.url.fl_str_mv https://repositorio.unillanos.edu.co/bitstreams/098d1466-f118-4a9e-88dd-9757220ac060/download
https://repositorio.unillanos.edu.co/bitstreams/334bd06c-1ab2-40be-816f-1c7720409f26/download
https://repositorio.unillanos.edu.co/bitstreams/062daefa-6351-48c7-8c4b-29e8c786c4dd/download
https://repositorio.unillanos.edu.co/bitstreams/1c8dcfbd-04be-4fa6-994c-c329bd1179a0/download
https://repositorio.unillanos.edu.co/bitstreams/9c179056-8ca5-4779-aeec-8110dfee8632/download
https://repositorio.unillanos.edu.co/bitstreams/35fee543-4163-477d-8bd2-3f8c7f158630/download
https://repositorio.unillanos.edu.co/bitstreams/bffdb406-f1a8-48b0-a4c5-660700085474/download
bitstream.checksum.fl_str_mv 73a5432e0b76442b22b026844140d683
cfd5e1cc05a6b2115c257201afe570a9
66b1c9e59898a1a5fdf9ac0a8c18204a
5603c99a363f85122f22b76dd9dac79b
4de76efbf030ebe94d6ddd530389a8b1
82a5c62585c994767d751d09651eb072
37cd52c1db7403d94fb5c2699462263a
bitstream.checksumAlgorithm.fl_str_mv MD5
MD5
MD5
MD5
MD5
MD5
MD5
repository.name.fl_str_mv Repositorio Universidad de Los Llanos
repository.mail.fl_str_mv repositorio@unillanos.edu.co
_version_ 1851059040862339072
spelling Velásquez Clavijo, Fabianvirtual::1400-1Rincón González, José GabrielVelásquez Clavijo, Fabianvirtual::1401-12025-10-27T15:51:05Z2025-10-27T15:51:05Z2021Rincón González, José Gabriel (2021). Diseño e implementación del criptosistema SIMON en FPGA [Trabajo de grado, Universidad de los Llanos]. Repositorio digital Universidad de los Llanos.https://repositorio.unillanos.edu.co/handle/001/5455Universidad de los LlanosRepositorio digital Universidad de los Llanoshttps://repositorio.unillanos.edu.co/Incluye tablas, gráficos y anexos.En este trabajo de grado se presenta el diseño de la arquitectura en hardware de un criptoprocesador SIMON32/64 utilizando como dispositivo de lógica programable una FPGA Artix-7, integrada en la tarjeta de desarrollo Basys 3 de Digilent, con lenguaje de descripción de hardware VHDL. En el proyecto se utilizó el entorno de desarrollo integrado VIVADO de Xilinx en su versión 2020.2, en la cual se sintetizó y simuló la arquitectura diseñada. Esta implementación realiza el cifrado y descifrado en circuitos combinacionales respectivamente, soporta bloques de datos de 32 bits y una longitud de clave de 64 bits, desarrollando 32 rondas en cada proceso, siguiendo las consideraciones sugeridas por la NSA (Agencia de Seguridad Nacional) para la implementación más pequeña del algoritmo SIMON. Los resultados de la operación de cifrado y descifrado SIMON32/64 se visualizaron en un circuito externo de displays de siete segmentos conectados con los puertos Pmod de la Basys 3, mientras que el ingreso de los datos y la selección de la operación se realizó con algunos periféricos de la tarjeta como switches y botones. Otra parte importante del presente proyecto fue el estudio de algunos algoritmos que implementan operaciones aritméticas en campos primos y en campos binarios, tales como la suma, la multiplicación, el cuadrado y la exponenciación de elementos del campo. Los algoritmos seleccionados fueron programados en lenguaje Python, obteniéndose un conjunto de funciones que conforman una librería, la cual es un complemento del proyecto principal del cual hace parte el presente trabajo, que se denomina MODELAMIENTO Y SIMULACIÓN DE LA ARITMÉTICA DE CAMPOS DE GALOIS () APLICADA EN LA CRIPTOGRAFÍA DE CLPÚBLICA,LICA realizado por los grupos de investigación MACRYPT y EYSI de la Universidad de Los Llanos.Resumen. -- Introducción. -- 1. Marco teórico. -- 1.1. Preliminares de estructuras algebraicas. -- 1.1.1. Grupos. -- 1.1.2. Anillos. -- 1.1.3. Campos finitos o de Galois. -- 1.2. Base teórica de cristología. -- 1.2.1. Criptoanálisis. -- 1.2.2. Criptografía. -- 1.2.3. Criptografía simétrica o de clave secreta. -- 1.2.4. Criptografía asimétrica o de clave pública. -- 1.3. Aritmética de campo. -- 1.3.1. Aritmética de campo primo (). -- 1.3.1.1. Suma mod p. . -- 1.3.1.2. Multiplicación mod p. . -- 1.3.1.3. Exponenciación mod p. . -- 1.3.1.4. Inversión . -- 1.3.2. Aritmética de campo binario (2). -- 1.3.2.1. Suma (). -- 1.3.2.2. Multiplicación (). -- 1.3.2.3. Cuadrado (). -- 1.3.2.4. Exponenciación mod f(x(). -- 1.4. Dispositivo FPGA. -- 1.5. Lenguaje VHDL. -- 1.6. Criptosistema SIMON. -- 1.6.1. Estructura del algoritmo. -- 1.6.2. Proceso de cifrado y descifrado. -- 1.6.3. Proceso de expansión de claves. -- 2. Metodología. -- 2.1. Fases del proyecto. -- 2.1.1. Estudio temático y análisis de los conceptos preliminares. -- 2.1.1.1 Análisis de seguridad informática en las telecomunicaciones. -- 2.1.1.2 Análisis del criptosistema SIMON. -- 2.1.1.3 Análisis de los conceptos matemáticos requeridos para la implementación de las operaciones en campos primos y binarios. -- 2.1.1.4 Estudio del requerimiento de la implementación del hardware. -- 2.1.2 Fase de diseño. -- 2.1.2.1 Diseño del criptoprocesador. -- 2.1.2.1.1 Bloque de cifrado. -- 2.1.2.1.2 Bloque de descifrado. -- 2.1.2.2 Diseño de la implementación del criptoprocesador. -- 2.1.2.3 Selección de algoritmos para operaciones aritméticas en (). -- 2.1.2.4 Selección de algoritmos para operaciones aritméticas en (2). -- 3. Resultados. -- 3.1 Implementación del cifrador. -- 3.2 Implementación del descifrador. -- 3.3 Implementación del criptoprocesador SIMON32/64. -- 3.4 Implementación de las operaciones aritméticas en (). -- 4. Análisis de resultados. -- 5. Conclusiones. -- 6. Bibliografía. -- 7. Anexo 1 Código VHDL de la función de ronda para SIMON32/64. -- 8. Anexo 2 Código VHDL de la función generación de claves de ronda para SIMON32/64. -- 9. Anexo 3 Código VHDL para generar el bloque cifrador SIMON32/64. -- 10. Anexo 4 Código VHDL para Testbench del cifrador SIMON32/64. -- 11. Anexo 5 Código VHDL para circuito del descifrador SIMON32/64. -- 12. Anexo 6 Código VHDL para testbench del descifrador SIMON32/64. -- 13. Anexo 7. Interfaz gráfica implementada en Python para testear el criptosistema SIMON, AES y DES.Trabajo de grado presentado como requisito parcial para optar al título de ingeniero electrónico.PregradoIngeniero(a) Electrónico(a)110 páginasapplication/pdfspaUniversidad de los LlanosFacultad de Ciencias Básicas e IngenieríaVillavicencioIngeniería ElectrónicaSede BarcelonaDerechos Reservados - Universidad de los Llanos, 2021https://creativecommons.org/licenses/by-nc-nd/4.0/Atribución-NoComercial-SinDerivadas 4.0 Internacional (CC BY-NC-ND 4.0)info:eu-repo/semantics/openAccesshttp://purl.org/coar/access_right/c_abf2Diseño e implementación del criptosistema SIMON en FPGATrabajo de grado - Pregradoinfo:eu-repo/semantics/bachelorThesisinfo:eu-repo/semantics/publishedVersionhttp://purl.org/coar/resource_type/c_7a1fTexthttp://purl.org/coar/version/c_970fb48d4fbd8a85Proyectos de investigaciónA. Menezes, P. van Oorschot, and S. Vanstone, “Handbook of Applied Cryptography,” 1996, p. 591~634.E. Savaş and Ç. K. Koç, “Finite field arithmetic for cryptography,” IEEE Circuits Syst. Mag., vol. 10, no. 2, pp. 40–56, 2010, doi: 10.1109/MCAS.2010.936785.M. M. Martinez, “Una introduccion a la criptografia. El criptosistema R.S.A.,” I.E.S. Cardenal Lòpez de Mendoza, 2004.L. W. Ray Beaulieu, Douglas Shors, Jason Smith, Stefan Treatman-Clark, Bryan Weeks, “THE SIMON AND SPECK FAMILIES OF LIGHTWEIGHT BLOCK CIPHERS,” Natl. Secur. Agency, p. 42, 2013.J. Aguirre, CURSO DE SEGURIDAD INFORMÁTICA Y CRIPTOGRAFÍA, vol. 3.1. 2003.M. P. Martorell, “CRIPTOLOGÌA,” Esc. Univ. Politec. Matarò, p. 40.A. Jorge, Libro Electrònico de Seguridad Informatica y Criptografia, 6th ed. 2006.M. Rao, A. Kaknjo, E. Omerdic, D. Toal, and T. Newe, “An efficient high speed AES implementation using traditional FPGA and LabVIEW FPGA platforms,” 2019, pp. 93–100, doi: 10.1109/CyberC.2018.00028.C. G. Justo, Seguridad en Redes Telemàticas. Madrid España, 2004.N. Velasquez and N. Pineda, “Diseño e Implementacion de un Prototipo Criptoprocesador AES-Rijndael en FPGA,” Universidad de Los Llanos, 2007.A. Bogdanov, L. R. Knudsen, G. Leander, C. Paar, and A. Poschmann, “PRESENT : An Ultra-Lightweight Block Cipher.”X. Fan, K. Mandal, and G. Gong, “WG-8: A lightweight stream cipher for resource-constrained smart devices,” Lect. Notes Inst. Comput. Sci. Soc. Telecommun. Eng. LNICST, vol. 115, pp. 617–632, 2013, doi: 10.1007/9783-642-37949-9_54.W. Diehl, A. Abdulgadir, J. P. Kaps, and K. Gaj, “Comparing the cost of protecting selected lightweight block ciphers against differential power analysis in low-cost FPGAs,” Computers, vol. 7, no. 2, pp. 128–135, 2018, doi: 10.3390/computers7020028.S. Abed, R. Jaffal, B. J. Mohd, and M. Alshayeji, “FPGA modeling and optimization of a SIMON lightweight block cipher,” Sensors (Switzerland), vol. 19, no. 4, 2019, doi: 10.3390/s19040913.P. Maene and I. Verbauwhede, “Single-cycle implementations of block ciphers,” Lect. Notes Comput. Sci. (including Subser. Lect. Notes Artif. Intell. Lect. Notes Bioinformatics), vol. 9542, pp. 131–147, 2016, doi: 10.1007/9783-319-29078-2_8.A. Shahverdi, M. Taha, and T. Eisenbarth, “Lightweight Side Channel Resistance: Threshold Implementations of Simon,” IEEE Trans. Comput., vol. 66, no. 4, pp. 661–671, 2017, doi: 10.1109/TC.2016.2614504.B. Rashidi, “High-throughput and lightweight hardware structures of HIGHT and PRESENT block ciphers,” Microelectronics J., vol. 90, no. June 2018, pp. 232–252, 2019, doi: 10.1016/j.mejo.2019.06.012.S. B. Basturk, C. E. J. Dancer, and T. McNally, “High-throughput Configurable SIMON Architecture for Flexible Security,” Pharmacol. Res., p. 104743, 2020, doi: 10.1016/j.mejo.2021.105085.W. El Hadj Youssef, A. Abdelli, F. Dridi, and M. Machhout, “Hardware implementation of secure lightweight cryptographic designs for IoT applications,” Secur. Commun. Networks, vol. 2020, 2020, doi: 10.1155/2020/8860598.S. Sadiya Shireen, B. Murali Krishna, K. Naga Lakshmi Prasanna, and A. Poorna Chander Reddy, “FPGA based RSA authenticated data hiding in image through steganography,” Int. J. Innov. Technol. Explor. Eng., vol. 8, no. 4, pp. 550–554, 2019, [Online]. Available: https://www.scopus.com/inward/record.uri?eid=2-s2.085061568077&partnerID=40&md5=2eb1b8bdee6547d6f4cb4395f65bc41b.F. Velasquez Clavijo, “Diseño e implementación de un prototipo de transmisión de datos punto a punto con encriptación basada en curvas elipticas.,” 2006.R. Darrel and A. Scott, Guide to Elliptic Curve Cryptography. 2004.J. Guajardo, S. S. Kumar, C. Paar, and J. Pelzl, “Efficient software- implementation of finite fields with applications to cryptography,” Acta Appl. Math., vol. 93, no. 1–3, pp. 3–32, 2006, doi: 10.1007/s10440-006-9046-1.B. Schneier, Schneier’s Cryptography Classics Library: Applied Cryptography, Secrets and Lies, and Practical Cryptography. 2007.F. Rodriguez and A. Díaz, Cryptographic Algorithms on Reconfigurable Hardware. 2011.C. D. E. Algoritmos et al., Introducción a La Teoría de Números Ejemplos y Algoritmos. 2006.E. Sava and C. K. Koc, “The Montgomery Modular Inverse - Revisited,” IEEE Trans. Comput., vol. 49, no. 7, pp. 763–766, 2000.D. Stebila and S. C. Shantz, “Generic GF ( 2 m ) Arithmetic in Software and its Application to ECC.”J.-P. Deschamps, J. L. Imaña, and G. Sutter, Hardware Implementation of Finite-Field Arithmetic. 2013.“GitHub - KULeuven-COSIC/UnrolledBlockCiphers.” https://github.com/KULeuven-COSIC/UnrolledBlockCiphers (accessed Sep. 10, 2021).“Basys 3 Reference Manual - Digilent Reference.” https://digilent.com/reference/programmable-logic/basys-3/referencemanual?redirect=1 (accessed Sep. 13, 2021).Amplificadores (Electrónica)Conductores de línea (Circuitos integrados)Análisis de circuitos eléctricosCircuitos asíncronosCriptosistema simonFPGACriptoanálisisCriptografíaCriptografía asimétricaDescifradorCriptoprocesador SIMON32/64Publicationhttps://scholar.google.es/citations?user=3p9rItQAAAAJ&hl=esvirtual::1400-1https://scholar.google.es/citations?user=3p9rItQAAAAJ&hl=esvirtual::1401-1https://scienti.minciencias.gov.co/cvlac/visualizador/generarCurriculoCv.do?cod_rh=0000869740virtual::1400-1https://scienti.minciencias.gov.co/cvlac/visualizador/generarCurriculoCv.do?cod_rh=0000869740virtual::1401-19164f7a7-be74-44ef-82b8-ee048a615442virtual::1400-19164f7a7-be74-44ef-82b8-ee048a615442virtual::1400-19164f7a7-be74-44ef-82b8-ee048a615442virtual::1401-19164f7a7-be74-44ef-82b8-ee048a615442virtual::1401-1LICENSElicense.txtlicense.txttext/plain; charset=utf-815543https://repositorio.unillanos.edu.co/bitstreams/098d1466-f118-4a9e-88dd-9757220ac060/download73a5432e0b76442b22b026844140d683MD51ORIGINALTrabajo de gradoTrabajo de gradoapplication/pdf3439860https://repositorio.unillanos.edu.co/bitstreams/334bd06c-1ab2-40be-816f-1c7720409f26/downloadcfd5e1cc05a6b2115c257201afe570a9MD52Carta de autorizaciónCarta de autorizaciónapplication/pdf730630https://repositorio.unillanos.edu.co/bitstreams/062daefa-6351-48c7-8c4b-29e8c786c4dd/download66b1c9e59898a1a5fdf9ac0a8c18204aMD53TEXTTrabajo de grado.txtTrabajo de grado.txtExtracted texttext/plain104951https://repositorio.unillanos.edu.co/bitstreams/1c8dcfbd-04be-4fa6-994c-c329bd1179a0/download5603c99a363f85122f22b76dd9dac79bMD54Carta de autorización.txtCarta de autorización.txtExtracted texttext/plain2064https://repositorio.unillanos.edu.co/bitstreams/9c179056-8ca5-4779-aeec-8110dfee8632/download4de76efbf030ebe94d6ddd530389a8b1MD56THUMBNAILTrabajo de grado.jpgTrabajo de grado.jpgGenerated Thumbnailimage/jpeg6002https://repositorio.unillanos.edu.co/bitstreams/35fee543-4163-477d-8bd2-3f8c7f158630/download82a5c62585c994767d751d09651eb072MD55Carta de autorización.jpgCarta de autorización.jpgGenerated Thumbnailimage/jpeg11571https://repositorio.unillanos.edu.co/bitstreams/bffdb406-f1a8-48b0-a4c5-660700085474/download37cd52c1db7403d94fb5c2699462263aMD57001/5455oai:repositorio.unillanos.edu.co:001/54552025-10-28 04:00:50.072https://creativecommons.org/licenses/by-nc-nd/4.0/Derechos Reservados - Universidad de los Llanos, 2021open.accesshttps://repositorio.unillanos.edu.coRepositorio Universidad de Los Llanosrepositorio@unillanos.edu.coPHA+TEEgT0JSQSAoVEFMIFkgQ09NTyBTRSBERUZJTkUgTcOBUyBBREVMQU5URSkgU0UgT1RPUkdBIEJBSk8gTE9TIFRFUk1JTk9TIERFIEVTVEEgTElDRU5DSUEgUMOaQkxJQ0EgREUgQ1JFQVRJVkUgQ09NTU9OUyAo4oCcTFBDQ+KAnSBPIOKAnExJQ0VOQ0lB4oCdKS4gTEEgT0JSQSBFU1TDgSBQUk9URUdJREEgUE9SIERFUkVDSE9TIERFIEFVVE9SIFkvVSBPVFJBUyBMRVlFUyBBUExJQ0FCTEVTLiBRVUVEQSBQUk9ISUJJRE8gQ1VBTFFVSUVSIFVTTyBRVUUgU0UgSEFHQSBERSBMQSBPQlJBIFFVRSBOTyBDVUVOVEUgQ09OIExBIEFVVE9SSVpBQ0nDk04gUEVSVElORU5URSBERSBDT05GT1JNSURBRCBDT04gTE9TIFTDiVJNSU5PUyBERSBFU1RBIExJQ0VOQ0lBIFkgREUgTEEgTEVZIERFIERFUkVDSE8gREUgQVVUT1IuPC9wPgo8cD5NRURJQU5URSBFTCBFSkVSQ0lDSU8gREUgQ1VBTFFVSUVSQSBERSBMT1MgREVSRUNIT1MgUVVFIFNFIE9UT1JHQU4gRU4gRVNUQSBMSUNFTkNJQSwgVVNURUQgQUNFUFRBIFkgQUNVRVJEQSBRVUVEQVIgT0JMSUdBRE8gRU4gTE9TIFRFUk1JTk9TIFFVRSBTRSBTRcORQUxBTiBFTiBFTExBLiBFTCBMSUNFTkNJQU5URSBDT05DRURFIEEgVVNURUQgTE9TIERFUkVDSE9TIENPTlRFTklET1MgRU4gRVNUQSBMSUNFTkNJQSBDT05ESUNJT05BRE9TIEEgTEEgQUNFUFRBQ0nDk04gREUgU1VTIFRFUk1JTk9TIFkgQ09ORElDSU9ORVMuPC9wPgo8b2wgdHlwZT0iMSI+CiAgPGxpPgogICAgRGVmaW5pY2lvbmVzCiAgICA8b2wgdHlwZT1hPgogICAgICA8bGk+T2JyYSBDb2xlY3RpdmEgZXMgdW5hIG9icmEsIHRhbCBjb21vIHVuYSBwdWJsaWNhY2nDs24gcGVyacOzZGljYSwgdW5hIGFudG9sb2fDrWEsIG8gdW5hIGVuY2ljbG9wZWRpYSwgZW4gbGEgcXVlIGxhIG9icmEgZW4gc3UgdG90YWxpZGFkLCBzaW4gbW9kaWZpY2FjacOzbiBhbGd1bmEsIGp1bnRvIGNvbiB1biBncnVwbyBkZSBvdHJhcyBjb250cmlidWNpb25lcyBxdWUgY29uc3RpdHV5ZW4gb2JyYXMgc2VwYXJhZGFzIGUgaW5kZXBlbmRpZW50ZXMgZW4gc8OtIG1pc21hcywgc2UgaW50ZWdyYW4gZW4gdW4gdG9kbyBjb2xlY3Rpdm8uIFVuYSBPYnJhIHF1ZSBjb25zdGl0dXllIHVuYSBvYnJhIGNvbGVjdGl2YSBubyBzZSBjb25zaWRlcmFyw6EgdW5hIE9icmEgRGVyaXZhZGEgKGNvbW8gc2UgZGVmaW5lIGFiYWpvKSBwYXJhIGxvcyBwcm9ww7NzaXRvcyBkZSBlc3RhIGxpY2VuY2lhLiBhcXVlbGxhIHByb2R1Y2lkYSBwb3IgdW4gZ3J1cG8gZGUgYXV0b3JlcywgZW4gcXVlIGxhIE9icmEgc2UgZW5jdWVudHJhIHNpbiBtb2RpZmljYWNpb25lcywganVudG8gY29uIHVuYSBjaWVydGEgY2FudGlkYWQgZGUgb3RyYXMgY29udHJpYnVjaW9uZXMsIHF1ZSBjb25zdGl0dXllbiBlbiBzw60gbWlzbW9zIHRyYWJham9zIHNlcGFyYWRvcyBlIGluZGVwZW5kaWVudGVzLCBxdWUgc29uIGludGVncmFkb3MgYWwgdG9kbyBjb2xlY3Rpdm8sIHRhbGVzIGNvbW8gcHVibGljYWNpb25lcyBwZXJpw7NkaWNhcywgYW50b2xvZ8OtYXMgbyBlbmNpY2xvcGVkaWFzLjwvbGk+CiAgICAgIDxsaT5PYnJhIERlcml2YWRhIHNpZ25pZmljYSB1bmEgb2JyYSBiYXNhZGEgZW4gbGEgb2JyYSBvYmpldG8gZGUgZXN0YSBsaWNlbmNpYSBvIGVuIMOpc3RhIHkgb3RyYXMgb2JyYXMgcHJlZXhpc3RlbnRlcywgdGFsZXMgY29tbyB0cmFkdWNjaW9uZXMsIGFycmVnbG9zIG11c2ljYWxlcywgZHJhbWF0aXphY2lvbmVzLCDigJxmaWNjaW9uYWxpemFjaW9uZXPigJ0sIHZlcnNpb25lcyBwYXJhIGNpbmUsIOKAnGdyYWJhY2lvbmVzIGRlIHNvbmlkb+KAnSwgcmVwcm9kdWNjaW9uZXMgZGUgYXJ0ZSwgcmVzw7ptZW5lcywgY29uZGVuc2FjaW9uZXMsIG8gY3VhbHF1aWVyIG90cmEgZW4gbGEgcXVlIGxhIG9icmEgcHVlZGEgc2VyIHRyYW5zZm9ybWFkYSwgY2FtYmlhZGEgbyBhZGFwdGFkYSwgZXhjZXB0byBhcXVlbGxhcyBxdWUgY29uc3RpdHV5YW4gdW5hIG9icmEgY29sZWN0aXZhLCBsYXMgcXVlIG5vIHNlcsOhbiBjb25zaWRlcmFkYXMgdW5hIG9icmEgZGVyaXZhZGEgcGFyYSBlZmVjdG9zIGRlIGVzdGEgbGljZW5jaWEuIChQYXJhIGV2aXRhciBkdWRhcywgZW4gZWwgY2FzbyBkZSBxdWUgbGEgT2JyYSBzZWEgdW5hIGNvbXBvc2ljacOzbiBtdXNpY2FsIG8gdW5hIGdyYWJhY2nDs24gc29ub3JhLCBwYXJhIGxvcyBlZmVjdG9zIGRlIGVzdGEgTGljZW5jaWEgbGEgc2luY3Jvbml6YWNpw7NuIHRlbXBvcmFsIGRlIGxhIE9icmEgY29uIHVuYSBpbWFnZW4gZW4gbW92aW1pZW50byBzZSBjb25zaWRlcmFyw6EgdW5hIE9icmEgRGVyaXZhZGEgcGFyYSBsb3MgZmluZXMgZGUgZXN0YSBsaWNlbmNpYSkuPC9saT4KICAgICAgPGxpPkxpY2VuY2lhbnRlLCBlcyBlbCBpbmRpdmlkdW8gbyBsYSBlbnRpZGFkIHRpdHVsYXIgZGUgbG9zIGRlcmVjaG9zIGRlIGF1dG9yIHF1ZSBvZnJlY2UgbGEgT2JyYSBlbiBjb25mb3JtaWRhZCBjb24gbGFzIGNvbmRpY2lvbmVzIGRlIGVzdGEgTGljZW5jaWEuPC9saT4KICAgICAgPGxpPkF1dG9yIG9yaWdpbmFsLCBlcyBlbCBpbmRpdmlkdW8gcXVlIGNyZcOzIGxhIE9icmEuPC9saT4KICAgICAgPGxpPk9icmEsIGVzIGFxdWVsbGEgb2JyYSBzdXNjZXB0aWJsZSBkZSBwcm90ZWNjacOzbiBwb3IgZWwgcsOpZ2ltZW4gZGUgRGVyZWNobyBkZSBBdXRvciB5IHF1ZSBlcyBvZnJlY2lkYSBlbiBsb3MgdMOpcm1pbm9zIGRlIGVzdGEgbGljZW5jaWE8L2xpPgogICAgICA8bGk+VXN0ZWQsIGVzIGVsIGluZGl2aWR1byBvIGxhIGVudGlkYWQgcXVlIGVqZXJjaXRhIGxvcyBkZXJlY2hvcyBvdG9yZ2Fkb3MgYWwgYW1wYXJvIGRlIGVzdGEgTGljZW5jaWEgeSBxdWUgY29uIGFudGVyaW9yaWRhZCBubyBoYSB2aW9sYWRvIGxhcyBjb25kaWNpb25lcyBkZSBsYSBtaXNtYSByZXNwZWN0byBhIGxhIE9icmEsIG8gcXVlIGhheWEgb2J0ZW5pZG8gYXV0b3JpemFjacOzbiBleHByZXNhIHBvciBwYXJ0ZSBkZWwgTGljZW5jaWFudGUgcGFyYSBlamVyY2VyIGxvcyBkZXJlY2hvcyBhbCBhbXBhcm8gZGUgZXN0YSBMaWNlbmNpYSBwZXNlIGEgdW5hIHZpb2xhY2nDs24gYW50ZXJpb3IuPC9saT4KICAgIDwvb2w+CiAgPC9saT4KICA8YnIvPgogIDxsaT4KICAgIERlcmVjaG9zIGRlIFVzb3MgSG9ucmFkb3MgeSBleGNlcGNpb25lcyBMZWdhbGVzLgogICAgPHA+TmFkYSBlbiBlc3RhIExpY2VuY2lhIHBvZHLDoSBzZXIgaW50ZXJwcmV0YWRvIGNvbW8gdW5hIGRpc21pbnVjacOzbiwgbGltaXRhY2nDs24gbyByZXN0cmljY2nDs24gZGUgbG9zIGRlcmVjaG9zIGRlcml2YWRvcyBkZWwgdXNvIGhvbnJhZG8geSBvdHJhcyBsaW1pdGFjaW9uZXMgbyBleGNlcGNpb25lcyBhIGxvcyBkZXJlY2hvcyBkZWwgYXV0b3IgYmFqbyBlbCByw6lnaW1lbiBsZWdhbCB2aWdlbnRlIG8gZGVyaXZhZG8gZGUgY3VhbHF1aWVyIG90cmEgbm9ybWEgcXVlIHNlIGxlIGFwbGlxdWUuPC9wPgogIDwvbGk+CiAgPGxpPgogICAgQ29uY2VzacOzbiBkZSBsYSBMaWNlbmNpYS4KICAgIDxwPkJham8gbG9zIHTDqXJtaW5vcyB5IGNvbmRpY2lvbmVzIGRlIGVzdGEgTGljZW5jaWEsIGVsIExpY2VuY2lhbnRlIG90b3JnYSBhIFVzdGVkIHVuYSBsaWNlbmNpYSBtdW5kaWFsLCBsaWJyZSBkZSByZWdhbMOtYXMsIG5vIGV4Y2x1c2l2YSB5IHBlcnBldHVhIChkdXJhbnRlIHRvZG8gZWwgcGVyw61vZG8gZGUgdmlnZW5jaWEgZGUgbG9zIGRlcmVjaG9zIGRlIGF1dG9yKSBwYXJhIGVqZXJjZXIgZXN0b3MgZGVyZWNob3Mgc29icmUgbGEgT2JyYSB0YWwgeSBjb21vIHNlIGluZGljYSBhIGNvbnRpbnVhY2nDs246PC9wPgogICAgPG9sIHR5cGU9ImEiPgogICAgICA8bGk+UmVwcm9kdWNpciBsYSBPYnJhLCBpbmNvcnBvcmFyIGxhIE9icmEgZW4gdW5hIG8gbcOhcyBPYnJhcyBDb2xlY3RpdmFzLCB5IHJlcHJvZHVjaXIgbGEgT2JyYSBpbmNvcnBvcmFkYSBlbiBsYXMgT2JyYXMgQ29sZWN0aXZhcy48L2xpPgogICAgICA8bGk+RGlzdHJpYnVpciBjb3BpYXMgbyBmb25vZ3JhbWFzIGRlIGxhcyBPYnJhcywgZXhoaWJpcmxhcyBww7pibGljYW1lbnRlLCBlamVjdXRhcmxhcyBww7pibGljYW1lbnRlIHkvbyBwb25lcmxhcyBhIGRpc3Bvc2ljacOzbiBww7pibGljYSwgaW5jbHV5w6luZG9sYXMgY29tbyBpbmNvcnBvcmFkYXMgZW4gT2JyYXMgQ29sZWN0aXZhcywgc2Vnw7puIGNvcnJlc3BvbmRhLjwvbGk+CiAgICAgIDxsaT5EaXN0cmlidWlyIGNvcGlhcyBkZSBsYXMgT2JyYXMgRGVyaXZhZGFzIHF1ZSBzZSBnZW5lcmVuLCBleGhpYmlybGFzIHDDumJsaWNhbWVudGUsIGVqZWN1dGFybGFzIHDDumJsaWNhbWVudGUgeS9vIHBvbmVybGFzIGEgZGlzcG9zaWNpw7NuIHDDumJsaWNhLjwvbGk+CiAgICA8L29sPgogICAgPHA+TG9zIGRlcmVjaG9zIG1lbmNpb25hZG9zIGFudGVyaW9ybWVudGUgcHVlZGVuIHNlciBlamVyY2lkb3MgZW4gdG9kb3MgbG9zIG1lZGlvcyB5IGZvcm1hdG9zLCBhY3R1YWxtZW50ZSBjb25vY2lkb3MgbyBxdWUgc2UgaW52ZW50ZW4gZW4gZWwgZnV0dXJvLiBMb3MgZGVyZWNob3MgYW50ZXMgbWVuY2lvbmFkb3MgaW5jbHV5ZW4gZWwgZGVyZWNobyBhIHJlYWxpemFyIGRpY2hhcyBtb2RpZmljYWNpb25lcyBlbiBsYSBtZWRpZGEgcXVlIHNlYW4gdMOpY25pY2FtZW50ZSBuZWNlc2FyaWFzIHBhcmEgZWplcmNlciBsb3MgZGVyZWNob3MgZW4gb3RybyBtZWRpbyBvIGZvcm1hdG9zLCBwZXJvIGRlIG90cmEgbWFuZXJhIHVzdGVkIG5vIGVzdMOhIGF1dG9yaXphZG8gcGFyYSByZWFsaXphciBvYnJhcyBkZXJpdmFkYXMuIFRvZG9zIGxvcyBkZXJlY2hvcyBubyBvdG9yZ2Fkb3MgZXhwcmVzYW1lbnRlIHBvciBlbCBMaWNlbmNpYW50ZSBxdWVkYW4gcG9yIGVzdGUgbWVkaW8gcmVzZXJ2YWRvcywgaW5jbHV5ZW5kbyBwZXJvIHNpbiBsaW1pdGFyc2UgYSBhcXVlbGxvcyBxdWUgc2UgbWVuY2lvbmFuIGVuIGxhcyBzZWNjaW9uZXMgNChkKSB5IDQoZSkuPC9wPgogIDwvbGk+CiAgPGJyLz4KICA8bGk+CiAgICBSZXN0cmljY2lvbmVzLgogICAgPHA+TGEgbGljZW5jaWEgb3RvcmdhZGEgZW4gbGEgYW50ZXJpb3IgU2VjY2nDs24gMyBlc3TDoSBleHByZXNhbWVudGUgc3VqZXRhIHkgbGltaXRhZGEgcG9yIGxhcyBzaWd1aWVudGVzIHJlc3RyaWNjaW9uZXM6PC9wPgogICAgPG9sIHR5cGU9ImEiPgogICAgICA8bGk+VXN0ZWQgcHVlZGUgZGlzdHJpYnVpciwgZXhoaWJpciBww7pibGljYW1lbnRlLCBlamVjdXRhciBww7pibGljYW1lbnRlLCBvIHBvbmVyIGEgZGlzcG9zaWNpw7NuIHDDumJsaWNhIGxhIE9icmEgc8OzbG8gYmFqbyBsYXMgY29uZGljaW9uZXMgZGUgZXN0YSBMaWNlbmNpYSwgeSBVc3RlZCBkZWJlIGluY2x1aXIgdW5hIGNvcGlhIGRlIGVzdGEgbGljZW5jaWEgbyBkZWwgSWRlbnRpZmljYWRvciBVbml2ZXJzYWwgZGUgUmVjdXJzb3MgZGUgbGEgbWlzbWEgY29uIGNhZGEgY29waWEgZGUgbGEgT2JyYSBxdWUgZGlzdHJpYnV5YSwgZXhoaWJhIHDDumJsaWNhbWVudGUsIGVqZWN1dGUgcMO6YmxpY2FtZW50ZSBvIHBvbmdhIGEgZGlzcG9zaWNpw7NuIHDDumJsaWNhLiBObyBlcyBwb3NpYmxlIG9mcmVjZXIgbyBpbXBvbmVyIG5pbmd1bmEgY29uZGljacOzbiBzb2JyZSBsYSBPYnJhIHF1ZSBhbHRlcmUgbyBsaW1pdGUgbGFzIGNvbmRpY2lvbmVzIGRlIGVzdGEgTGljZW5jaWEgbyBlbCBlamVyY2ljaW8gZGUgbG9zIGRlcmVjaG9zIGRlIGxvcyBkZXN0aW5hdGFyaW9zIG90b3JnYWRvcyBlbiBlc3RlIGRvY3VtZW50by4gTm8gZXMgcG9zaWJsZSBzdWJsaWNlbmNpYXIgbGEgT2JyYS4gVXN0ZWQgZGViZSBtYW50ZW5lciBpbnRhY3RvcyB0b2RvcyBsb3MgYXZpc29zIHF1ZSBoYWdhbiByZWZlcmVuY2lhIGEgZXN0YSBMaWNlbmNpYSB5IGEgbGEgY2zDoXVzdWxhIGRlIGxpbWl0YWNpw7NuIGRlIGdhcmFudMOtYXMuIFVzdGVkIG5vIHB1ZWRlIGRpc3RyaWJ1aXIsIGV4aGliaXIgcMO6YmxpY2FtZW50ZSwgZWplY3V0YXIgcMO6YmxpY2FtZW50ZSwgbyBwb25lciBhIGRpc3Bvc2ljacOzbiBww7pibGljYSBsYSBPYnJhIGNvbiBhbGd1bmEgbWVkaWRhIHRlY25vbMOzZ2ljYSBxdWUgY29udHJvbGUgZWwgYWNjZXNvIG8gbGEgdXRpbGl6YWNpw7NuIGRlIGVsbGEgZGUgdW5hIGZvcm1hIHF1ZSBzZWEgaW5jb25zaXN0ZW50ZSBjb24gbGFzIGNvbmRpY2lvbmVzIGRlIGVzdGEgTGljZW5jaWEuIExvIGFudGVyaW9yIHNlIGFwbGljYSBhIGxhIE9icmEgaW5jb3Jwb3JhZGEgYSB1bmEgT2JyYSBDb2xlY3RpdmEsIHBlcm8gZXN0byBubyBleGlnZSBxdWUgbGEgT2JyYSBDb2xlY3RpdmEgYXBhcnRlIGRlIGxhIG9icmEgbWlzbWEgcXVlZGUgc3VqZXRhIGEgbGFzIGNvbmRpY2lvbmVzIGRlIGVzdGEgTGljZW5jaWEuIFNpIFVzdGVkIGNyZWEgdW5hIE9icmEgQ29sZWN0aXZhLCBwcmV2aW8gYXZpc28gZGUgY3VhbHF1aWVyIExpY2VuY2lhbnRlIGRlYmUsIGVuIGxhIG1lZGlkYSBkZSBsbyBwb3NpYmxlLCBlbGltaW5hciBkZSBsYSBPYnJhIENvbGVjdGl2YSBjdWFscXVpZXIgcmVmZXJlbmNpYSBhIGRpY2hvIExpY2VuY2lhbnRlIG8gYWwgQXV0b3IgT3JpZ2luYWwsIHNlZ8O6biBsbyBzb2xpY2l0YWRvIHBvciBlbCBMaWNlbmNpYW50ZSB5IGNvbmZvcm1lIGxvIGV4aWdlIGxhIGNsw6F1c3VsYSA0KGMpLjwvbGk+CiAgICAgIDxsaT5Vc3RlZCBubyBwdWVkZSBlamVyY2VyIG5pbmd1bm8gZGUgbG9zIGRlcmVjaG9zIHF1ZSBsZSBoYW4gc2lkbyBvdG9yZ2Fkb3MgZW4gbGEgU2VjY2nDs24gMyBwcmVjZWRlbnRlIGRlIG1vZG8gcXVlIGVzdMOpbiBwcmluY2lwYWxtZW50ZSBkZXN0aW5hZG9zIG8gZGlyZWN0YW1lbnRlIGRpcmlnaWRvcyBhIGNvbnNlZ3VpciB1biBwcm92ZWNobyBjb21lcmNpYWwgbyB1bmEgY29tcGVuc2FjacOzbiBtb25ldGFyaWEgcHJpdmFkYS4gRWwgaW50ZXJjYW1iaW8gZGUgbGEgT2JyYSBwb3Igb3RyYXMgb2JyYXMgcHJvdGVnaWRhcyBwb3IgZGVyZWNob3MgZGUgYXV0b3IsIHlhIHNlYSBhIHRyYXbDqXMgZGUgdW4gc2lzdGVtYSBwYXJhIGNvbXBhcnRpciBhcmNoaXZvcyBkaWdpdGFsZXMgKGRpZ2l0YWwgZmlsZS1zaGFyaW5nKSBvIGRlIGN1YWxxdWllciBvdHJhIG1hbmVyYSBubyBzZXLDoSBjb25zaWRlcmFkbyBjb21vIGVzdGFyIGRlc3RpbmFkbyBwcmluY2lwYWxtZW50ZSBvIGRpcmlnaWRvIGRpcmVjdGFtZW50ZSBhIGNvbnNlZ3VpciB1biBwcm92ZWNobyBjb21lcmNpYWwgbyB1bmEgY29tcGVuc2FjacOzbiBtb25ldGFyaWEgcHJpdmFkYSwgc2llbXByZSBxdWUgbm8gc2UgcmVhbGljZSB1biBwYWdvIG1lZGlhbnRlIHVuYSBjb21wZW5zYWNpw7NuIG1vbmV0YXJpYSBlbiByZWxhY2nDs24gY29uIGVsIGludGVyY2FtYmlvIGRlIG9icmFzIHByb3RlZ2lkYXMgcG9yIGVsIGRlcmVjaG8gZGUgYXV0b3IuPC9saT4KICAgICAgPGxpPlNpIHVzdGVkIGRpc3RyaWJ1eWUsIGV4aGliZSBww7pibGljYW1lbnRlLCBlamVjdXRhIHDDumJsaWNhbWVudGUgbyBlamVjdXRhIHDDumJsaWNhbWVudGUgZW4gZm9ybWEgZGlnaXRhbCBsYSBPYnJhIG8gY3VhbHF1aWVyIE9icmEgRGVyaXZhZGEgdSBPYnJhIENvbGVjdGl2YSwgVXN0ZWQgZGViZSBtYW50ZW5lciBpbnRhY3RhIHRvZGEgbGEgaW5mb3JtYWNpw7NuIGRlIGRlcmVjaG8gZGUgYXV0b3IgZGUgbGEgT2JyYSB5IHByb3BvcmNpb25hciwgZGUgZm9ybWEgcmF6b25hYmxlIHNlZ8O6biBlbCBtZWRpbyBvIG1hbmVyYSBxdWUgVXN0ZWQgZXN0w6kgdXRpbGl6YW5kbzogKGkpIGVsIG5vbWJyZSBkZWwgQXV0b3IgT3JpZ2luYWwgc2kgZXN0w6EgcHJvdmlzdG8gKG8gc2V1ZMOzbmltbywgc2kgZnVlcmUgYXBsaWNhYmxlKSwgeS9vIChpaSkgZWwgbm9tYnJlIGRlIGxhIHBhcnRlIG8gbGFzIHBhcnRlcyBxdWUgZWwgQXV0b3IgT3JpZ2luYWwgeS9vIGVsIExpY2VuY2lhbnRlIGh1YmllcmVuIGRlc2lnbmFkbyBwYXJhIGxhIGF0cmlidWNpw7NuICh2LmcuLCB1biBpbnN0aXR1dG8gcGF0cm9jaW5hZG9yLCBlZGl0b3JpYWwsIHB1YmxpY2FjacOzbikgZW4gbGEgaW5mb3JtYWNpw7NuIGRlIGxvcyBkZXJlY2hvcyBkZSBhdXRvciBkZWwgTGljZW5jaWFudGUsIHTDqXJtaW5vcyBkZSBzZXJ2aWNpb3MgbyBkZSBvdHJhcyBmb3JtYXMgcmF6b25hYmxlczsgZWwgdMOtdHVsbyBkZSBsYSBPYnJhIHNpIGVzdMOhIHByb3Zpc3RvOyBlbiBsYSBtZWRpZGEgZGUgbG8gcmF6b25hYmxlbWVudGUgZmFjdGlibGUgeSwgc2kgZXN0w6EgcHJvdmlzdG8sIGVsIElkZW50aWZpY2Fkb3IgVW5pZm9ybWUgZGUgUmVjdXJzb3MgKFVuaWZvcm0gUmVzb3VyY2UgSWRlbnRpZmllcikgcXVlIGVsIExpY2VuY2lhbnRlIGVzcGVjaWZpY2EgcGFyYSBzZXIgYXNvY2lhZG8gY29uIGxhIE9icmEsIHNhbHZvIHF1ZSB0YWwgVVJJIG5vIHNlIHJlZmllcmEgYSBsYSBub3RhIHNvYnJlIGxvcyBkZXJlY2hvcyBkZSBhdXRvciBvIGEgbGEgaW5mb3JtYWNpw7NuIHNvYnJlIGVsIGxpY2VuY2lhbWllbnRvIGRlIGxhIE9icmE7IHkgZW4gZWwgY2FzbyBkZSB1bmEgT2JyYSBEZXJpdmFkYSwgYXRyaWJ1aXIgZWwgY3LDqWRpdG8gaWRlbnRpZmljYW5kbyBlbCB1c28gZGUgbGEgT2JyYSBlbiBsYSBPYnJhIERlcml2YWRhICh2LmcuLCAiVHJhZHVjY2nDs24gRnJhbmNlc2EgZGUgbGEgT2JyYSBkZWwgQXV0b3IgT3JpZ2luYWwsIiBvICJHdWnDs24gQ2luZW1hdG9ncsOhZmljbyBiYXNhZG8gZW4gbGEgT2JyYSBvcmlnaW5hbCBkZWwgQXV0b3IgT3JpZ2luYWwiKS4gVGFsIGNyw6lkaXRvIHB1ZWRlIHNlciBpbXBsZW1lbnRhZG8gZGUgY3VhbHF1aWVyIGZvcm1hIHJhem9uYWJsZTsgZW4gZWwgY2Fzbywgc2luIGVtYmFyZ28sIGRlIE9icmFzIERlcml2YWRhcyB1IE9icmFzIENvbGVjdGl2YXMsIHRhbCBjcsOpZGl0byBhcGFyZWNlcsOhLCBjb21vIG3DrW5pbW8sIGRvbmRlIGFwYXJlY2UgZWwgY3LDqWRpdG8gZGUgY3VhbHF1aWVyIG90cm8gYXV0b3IgY29tcGFyYWJsZSB5IGRlIHVuYSBtYW5lcmEsIGFsIG1lbm9zLCB0YW4gZGVzdGFjYWRhIGNvbW8gZWwgY3LDqWRpdG8gZGUgb3RybyBhdXRvciBjb21wYXJhYmxlLjwvbGk+CiAgICAgIDxsaT4KICAgICAgICBQYXJhIGV2aXRhciB0b2RhIGNvbmZ1c2nDs24sIGVsIExpY2VuY2lhbnRlIGFjbGFyYSBxdWUsIGN1YW5kbyBsYSBvYnJhIGVzIHVuYSBjb21wb3NpY2nDs24gbXVzaWNhbDoKICAgICAgICA8b2wgdHlwZT0iaSI+CiAgICAgICAgICA8bGk+UmVnYWzDrWFzIHBvciBpbnRlcnByZXRhY2nDs24geSBlamVjdWNpw7NuIGJham8gbGljZW5jaWFzIGdlbmVyYWxlcy4gRWwgTGljZW5jaWFudGUgc2UgcmVzZXJ2YSBlbCBkZXJlY2hvIGV4Y2x1c2l2byBkZSBhdXRvcml6YXIgbGEgZWplY3VjacOzbiBww7pibGljYSBvIGxhIGVqZWN1Y2nDs24gcMO6YmxpY2EgZGlnaXRhbCBkZSBsYSBvYnJhIHkgZGUgcmVjb2xlY3Rhciwgc2VhIGluZGl2aWR1YWxtZW50ZSBvIGEgdHJhdsOpcyBkZSB1bmEgc29jaWVkYWQgZGUgZ2VzdGnDs24gY29sZWN0aXZhIGRlIGRlcmVjaG9zIGRlIGF1dG9yIHkgZGVyZWNob3MgY29uZXhvcyAocG9yIGVqZW1wbG8sIFNBWUNPKSwgbGFzIHJlZ2Fsw61hcyBwb3IgbGEgZWplY3VjacOzbiBww7pibGljYSBvIHBvciBsYSBlamVjdWNpw7NuIHDDumJsaWNhIGRpZ2l0YWwgZGUgbGEgb2JyYSAocG9yIGVqZW1wbG8gV2ViY2FzdCkgbGljZW5jaWFkYSBiYWpvIGxpY2VuY2lhcyBnZW5lcmFsZXMsIHNpIGxhIGludGVycHJldGFjacOzbiBvIGVqZWN1Y2nDs24gZGUgbGEgb2JyYSBlc3TDoSBwcmltb3JkaWFsbWVudGUgb3JpZW50YWRhIHBvciBvIGRpcmlnaWRhIGEgbGEgb2J0ZW5jacOzbiBkZSB1bmEgdmVudGFqYSBjb21lcmNpYWwgbyB1bmEgY29tcGVuc2FjacOzbiBtb25ldGFyaWEgcHJpdmFkYS48L2xpPgogICAgICAgICAgPGxpPlJlZ2Fsw61hcyBwb3IgRm9ub2dyYW1hcy4gRWwgTGljZW5jaWFudGUgc2UgcmVzZXJ2YSBlbCBkZXJlY2hvIGV4Y2x1c2l2byBkZSByZWNvbGVjdGFyLCBpbmRpdmlkdWFsbWVudGUgbyBhIHRyYXbDqXMgZGUgdW5hIHNvY2llZGFkIGRlIGdlc3Rpw7NuIGNvbGVjdGl2YSBkZSBkZXJlY2hvcyBkZSBhdXRvciB5IGRlcmVjaG9zIGNvbmV4b3MgKHBvciBlamVtcGxvLCBsb3MgY29uc2FncmFkb3MgcG9yIGxhIFNBWUNPKSwgdW5hIGFnZW5jaWEgZGUgZGVyZWNob3MgbXVzaWNhbGVzIG8gYWxnw7puIGFnZW50ZSBkZXNpZ25hZG8sIGxhcyByZWdhbMOtYXMgcG9yIGN1YWxxdWllciBmb25vZ3JhbWEgcXVlIFVzdGVkIGNyZWUgYSBwYXJ0aXIgZGUgbGEgb2JyYSAo4oCcdmVyc2nDs24gY292ZXLigJ0pIHkgZGlzdHJpYnV5YSwgZW4gbG9zIHTDqXJtaW5vcyBkZWwgcsOpZ2ltZW4gZGUgZGVyZWNob3MgZGUgYXV0b3IsIHNpIGxhIGNyZWFjacOzbiBvIGRpc3RyaWJ1Y2nDs24gZGUgZXNhIHZlcnNpw7NuIGNvdmVyIGVzdMOhIHByaW1vcmRpYWxtZW50ZSBkZXN0aW5hZGEgbyBkaXJpZ2lkYSBhIG9idGVuZXIgdW5hIHZlbnRhamEgY29tZXJjaWFsIG8gdW5hIGNvbXBlbnNhY2nDs24gbW9uZXRhcmlhIHByaXZhZGEuPC9saT4KICAgICAgICA8L29sPgogICAgICA8L2xpPgogICAgICA8bGk+R2VzdGnDs24gZGUgRGVyZWNob3MgZGUgQXV0b3Igc29icmUgSW50ZXJwcmV0YWNpb25lcyB5IEVqZWN1Y2lvbmVzIERpZ2l0YWxlcyAoV2ViQ2FzdGluZykuIFBhcmEgZXZpdGFyIHRvZGEgY29uZnVzacOzbiwgZWwgTGljZW5jaWFudGUgYWNsYXJhIHF1ZSwgY3VhbmRvIGxhIG9icmEgc2VhIHVuIGZvbm9ncmFtYSwgZWwgTGljZW5jaWFudGUgc2UgcmVzZXJ2YSBlbCBkZXJlY2hvIGV4Y2x1c2l2byBkZSBhdXRvcml6YXIgbGEgZWplY3VjacOzbiBww7pibGljYSBkaWdpdGFsIGRlIGxhIG9icmEgKHBvciBlamVtcGxvLCB3ZWJjYXN0KSB5IGRlIHJlY29sZWN0YXIsIGluZGl2aWR1YWxtZW50ZSBvIGEgdHJhdsOpcyBkZSB1bmEgc29jaWVkYWQgZGUgZ2VzdGnDs24gY29sZWN0aXZhIGRlIGRlcmVjaG9zIGRlIGF1dG9yIHkgZGVyZWNob3MgY29uZXhvcyAocG9yIGVqZW1wbG8sIEFDSU5QUk8pLCBsYXMgcmVnYWzDrWFzIHBvciBsYSBlamVjdWNpw7NuIHDDumJsaWNhIGRpZ2l0YWwgZGUgbGEgb2JyYSAocG9yIGVqZW1wbG8sIHdlYmNhc3QpLCBzdWpldGEgYSBsYXMgZGlzcG9zaWNpb25lcyBhcGxpY2FibGVzIGRlbCByw6lnaW1lbiBkZSBEZXJlY2hvIGRlIEF1dG9yLCBzaSBlc3RhIGVqZWN1Y2nDs24gcMO6YmxpY2EgZGlnaXRhbCBlc3TDoSBwcmltb3JkaWFsbWVudGUgZGlyaWdpZGEgYSBvYnRlbmVyIHVuYSB2ZW50YWphIGNvbWVyY2lhbCBvIHVuYSBjb21wZW5zYWNpw7NuIG1vbmV0YXJpYSBwcml2YWRhLjwvbGk+CiAgICA8L29sPgogIDwvbGk+CiAgPGJyLz4KICA8bGk+CiAgICBSZXByZXNlbnRhY2lvbmVzLCBHYXJhbnTDrWFzIHkgTGltaXRhY2lvbmVzIGRlIFJlc3BvbnNhYmlsaWRhZC4KICAgIDxwPkEgTUVOT1MgUVVFIExBUyBQQVJURVMgTE8gQUNPUkRBUkFOIERFIE9UUkEgRk9STUEgUE9SIEVTQ1JJVE8sIEVMIExJQ0VOQ0lBTlRFIE9GUkVDRSBMQSBPQlJBIChFTiBFTCBFU1RBRE8gRU4gRUwgUVVFIFNFIEVOQ1VFTlRSQSkg4oCcVEFMIENVQUzigJ0sIFNJTiBCUklOREFSIEdBUkFOVMONQVMgREUgQ0xBU0UgQUxHVU5BIFJFU1BFQ1RPIERFIExBIE9CUkEsIFlBIFNFQSBFWFBSRVNBLCBJTVBMw41DSVRBLCBMRUdBTCBPIENVQUxRVUlFUkEgT1RSQSwgSU5DTFVZRU5ETywgU0lOIExJTUlUQVJTRSBBIEVMTEFTLCBHQVJBTlTDjUFTIERFIFRJVFVMQVJJREFELCBDT01FUkNJQUJJTElEQUQsIEFEQVBUQUJJTElEQUQgTyBBREVDVUFDScOTTiBBIFBST1DDk1NJVE8gREVURVJNSU5BRE8sIEFVU0VOQ0lBIERFIElORlJBQ0NJw5NOLCBERSBBVVNFTkNJQSBERSBERUZFQ1RPUyBMQVRFTlRFUyBPIERFIE9UUk8gVElQTywgTyBMQSBQUkVTRU5DSUEgTyBBVVNFTkNJQSBERSBFUlJPUkVTLCBTRUFOIE8gTk8gREVTQ1VCUklCTEVTIChQVUVEQU4gTyBOTyBTRVIgRVNUT1MgREVTQ1VCSUVSVE9TKS4gQUxHVU5BUyBKVVJJU0RJQ0NJT05FUyBOTyBQRVJNSVRFTiBMQSBFWENMVVNJw5NOIERFIEdBUkFOVMONQVMgSU1QTMONQ0lUQVMsIEVOIENVWU8gQ0FTTyBFU1RBIEVYQ0xVU0nDk04gUFVFREUgTk8gQVBMSUNBUlNFIEEgVVNURUQuPC9wPgogIDwvbGk+CiAgPGJyLz4KICA8bGk+CiAgICBMaW1pdGFjacOzbiBkZSByZXNwb25zYWJpbGlkYWQuCiAgICA8cD5BIE1FTk9TIFFVRSBMTyBFWElKQSBFWFBSRVNBTUVOVEUgTEEgTEVZIEFQTElDQUJMRSwgRUwgTElDRU5DSUFOVEUgTk8gU0VSw4EgUkVTUE9OU0FCTEUgQU5URSBVU1RFRCBQT1IgREHDkU8gQUxHVU5PLCBTRUEgUE9SIFJFU1BPTlNBQklMSURBRCBFWFRSQUNPTlRSQUNUVUFMLCBQUkVDT05UUkFDVFVBTCBPIENPTlRSQUNUVUFMLCBPQkpFVElWQSBPIFNVQkpFVElWQSwgU0UgVFJBVEUgREUgREHDkU9TIE1PUkFMRVMgTyBQQVRSSU1PTklBTEVTLCBESVJFQ1RPUyBPIElORElSRUNUT1MsIFBSRVZJU1RPUyBPIElNUFJFVklTVE9TIFBST0RVQ0lET1MgUE9SIEVMIFVTTyBERSBFU1RBIExJQ0VOQ0lBIE8gREUgTEEgT0JSQSwgQVVOIENVQU5ETyBFTCBMSUNFTkNJQU5URSBIQVlBIFNJRE8gQURWRVJUSURPIERFIExBIFBPU0lCSUxJREFEIERFIERJQ0hPUyBEQcORT1MuIEFMR1VOQVMgTEVZRVMgTk8gUEVSTUlURU4gTEEgRVhDTFVTScOTTiBERSBDSUVSVEEgUkVTUE9OU0FCSUxJREFELCBFTiBDVVlPIENBU08gRVNUQSBFWENMVVNJw5NOIFBVRURFIE5PIEFQTElDQVJTRSBBIFVTVEVELjwvcD4KICA8L2xpPgogIDxici8+CiAgPGxpPgogICAgVMOpcm1pbm8uCiAgICA8b2wgdHlwZT0iYSI+CiAgICAgIDxsaT5Fc3RhIExpY2VuY2lhIHkgbG9zIGRlcmVjaG9zIG90b3JnYWRvcyBlbiB2aXJ0dWQgZGUgZWxsYSB0ZXJtaW5hcsOhbiBhdXRvbcOhdGljYW1lbnRlIHNpIFVzdGVkIGluZnJpbmdlIGFsZ3VuYSBjb25kaWNpw7NuIGVzdGFibGVjaWRhIGVuIGVsbGEuIFNpbiBlbWJhcmdvLCBsb3MgaW5kaXZpZHVvcyBvIGVudGlkYWRlcyBxdWUgaGFuIHJlY2liaWRvIE9icmFzIERlcml2YWRhcyBvIENvbGVjdGl2YXMgZGUgVXN0ZWQgZGUgY29uZm9ybWlkYWQgY29uIGVzdGEgTGljZW5jaWEsIG5vIHZlcsOhbiB0ZXJtaW5hZGFzIHN1cyBsaWNlbmNpYXMsIHNpZW1wcmUgcXVlIGVzdG9zIGluZGl2aWR1b3MgbyBlbnRpZGFkZXMgc2lnYW4gY3VtcGxpZW5kbyDDrW50ZWdyYW1lbnRlIGxhcyBjb25kaWNpb25lcyBkZSBlc3RhcyBsaWNlbmNpYXMuIExhcyBTZWNjaW9uZXMgMSwgMiwgNSwgNiwgNywgeSA4IHN1YnNpc3RpcsOhbiBhIGN1YWxxdWllciB0ZXJtaW5hY2nDs24gZGUgZXN0YSBMaWNlbmNpYS48L2xpPgogICAgICA8bGk+U3VqZXRhIGEgbGFzIGNvbmRpY2lvbmVzIHkgdMOpcm1pbm9zIGFudGVyaW9yZXMsIGxhIGxpY2VuY2lhIG90b3JnYWRhIGFxdcOtIGVzIHBlcnBldHVhIChkdXJhbnRlIGVsIHBlcsOtb2RvIGRlIHZpZ2VuY2lhIGRlIGxvcyBkZXJlY2hvcyBkZSBhdXRvciBkZSBsYSBvYnJhKS4gTm8gb2JzdGFudGUgbG8gYW50ZXJpb3IsIGVsIExpY2VuY2lhbnRlIHNlIHJlc2VydmEgZWwgZGVyZWNobyBhIHB1YmxpY2FyIHkvbyBlc3RyZW5hciBsYSBPYnJhIGJham8gY29uZGljaW9uZXMgZGUgbGljZW5jaWEgZGlmZXJlbnRlcyBvIGEgZGVqYXIgZGUgZGlzdHJpYnVpcmxhIGVuIGxvcyB0w6lybWlub3MgZGUgZXN0YSBMaWNlbmNpYSBlbiBjdWFscXVpZXIgbW9tZW50bzsgZW4gZWwgZW50ZW5kaWRvLCBzaW4gZW1iYXJnbywgcXVlIGVzYSBlbGVjY2nDs24gbm8gc2Vydmlyw6EgcGFyYSByZXZvY2FyIGVzdGEgbGljZW5jaWEgbyBxdWUgZGViYSBzZXIgb3RvcmdhZGEgLCBiYWpvIGxvcyB0w6lybWlub3MgZGUgZXN0YSBsaWNlbmNpYSksIHkgZXN0YSBsaWNlbmNpYSBjb250aW51YXLDoSBlbiBwbGVubyB2aWdvciB5IGVmZWN0byBhIG1lbm9zIHF1ZSBzZWEgdGVybWluYWRhIGNvbW8gc2UgZXhwcmVzYSBhdHLDoXMuIExhIExpY2VuY2lhIHJldm9jYWRhIGNvbnRpbnVhcsOhIHNpZW5kbyBwbGVuYW1lbnRlIHZpZ2VudGUgeSBlZmVjdGl2YSBzaSBubyBzZSBsZSBkYSB0w6lybWlubyBlbiBsYXMgY29uZGljaW9uZXMgaW5kaWNhZGFzIGFudGVyaW9ybWVudGUuPC9saT4KICAgIDwvb2w+CiAgPC9saT4KICA8YnIvPgogIDxsaT4KICAgIFZhcmlvcy4KICAgIDxvbCB0eXBlPSJhIj4KICAgICAgPGxpPkNhZGEgdmV6IHF1ZSBVc3RlZCBkaXN0cmlidXlhIG8gcG9uZ2EgYSBkaXNwb3NpY2nDs24gcMO6YmxpY2EgbGEgT2JyYSBvIHVuYSBPYnJhIENvbGVjdGl2YSwgZWwgTGljZW5jaWFudGUgb2ZyZWNlcsOhIGFsIGRlc3RpbmF0YXJpbyB1bmEgbGljZW5jaWEgZW4gbG9zIG1pc21vcyB0w6lybWlub3MgeSBjb25kaWNpb25lcyBxdWUgbGEgbGljZW5jaWEgb3RvcmdhZGEgYSBVc3RlZCBiYWpvIGVzdGEgTGljZW5jaWEuPC9saT4KICAgICAgPGxpPlNpIGFsZ3VuYSBkaXNwb3NpY2nDs24gZGUgZXN0YSBMaWNlbmNpYSByZXN1bHRhIGludmFsaWRhZGEgbyBubyBleGlnaWJsZSwgc2Vnw7puIGxhIGxlZ2lzbGFjacOzbiB2aWdlbnRlLCBlc3RvIG5vIGFmZWN0YXLDoSBuaSBsYSB2YWxpZGV6IG5pIGxhIGFwbGljYWJpbGlkYWQgZGVsIHJlc3RvIGRlIGNvbmRpY2lvbmVzIGRlIGVzdGEgTGljZW5jaWEgeSwgc2luIGFjY2nDs24gYWRpY2lvbmFsIHBvciBwYXJ0ZSBkZSBsb3Mgc3VqZXRvcyBkZSBlc3RlIGFjdWVyZG8sIGFxdcOpbGxhIHNlIGVudGVuZGVyw6EgcmVmb3JtYWRhIGxvIG3DrW5pbW8gbmVjZXNhcmlvIHBhcmEgaGFjZXIgcXVlIGRpY2hhIGRpc3Bvc2ljacOzbiBzZWEgdsOhbGlkYSB5IGV4aWdpYmxlLjwvbGk+CiAgICAgIDxsaT5OaW5nw7puIHTDqXJtaW5vIG8gZGlzcG9zaWNpw7NuIGRlIGVzdGEgTGljZW5jaWEgc2UgZXN0aW1hcsOhIHJlbnVuY2lhZGEgeSBuaW5ndW5hIHZpb2xhY2nDs24gZGUgZWxsYSBzZXLDoSBjb25zZW50aWRhIGEgbWVub3MgcXVlIGVzYSByZW51bmNpYSBvIGNvbnNlbnRpbWllbnRvIHNlYSBvdG9yZ2FkbyBwb3IgZXNjcml0byB5IGZpcm1hZG8gcG9yIGxhIHBhcnRlIHF1ZSByZW51bmNpZSBvIGNvbnNpZW50YS48L2xpPgogICAgICA8bGk+RXN0YSBMaWNlbmNpYSByZWZsZWphIGVsIGFjdWVyZG8gcGxlbm8gZW50cmUgbGFzIHBhcnRlcyByZXNwZWN0byBhIGxhIE9icmEgYXF1w60gbGljZW5jaWFkYS4gTm8gaGF5IGFycmVnbG9zLCBhY3VlcmRvcyBvIGRlY2xhcmFjaW9uZXMgcmVzcGVjdG8gYSBsYSBPYnJhIHF1ZSBubyBlc3TDqW4gZXNwZWNpZmljYWRvcyBlbiBlc3RlIGRvY3VtZW50by4gRWwgTGljZW5jaWFudGUgbm8gc2UgdmVyw6EgbGltaXRhZG8gcG9yIG5pbmd1bmEgZGlzcG9zaWNpw7NuIGFkaWNpb25hbCBxdWUgcHVlZGEgc3VyZ2lyIGVuIGFsZ3VuYSBjb211bmljYWNpw7NuIGVtYW5hZGEgZGUgVXN0ZWQuIEVzdGEgTGljZW5jaWEgbm8gcHVlZGUgc2VyIG1vZGlmaWNhZGEgc2luIGVsIGNvbnNlbnRpbWllbnRvIG11dHVvIHBvciBlc2NyaXRvIGRlbCBMaWNlbmNpYW50ZSB5IFVzdGVkLjwvbGk+CiAgICA8L29sPgogIDwvbGk+CiAgPGJyLz4KPC9vbD4K