GeoModel-GIS: plug-in para QGIS de clasificación geológica y geotérmica de datos de magnetotelúrica para la comprensión de sistemas geotérmicos hidrotermales
La exploración de recursos geotérmicos es fundamental como parte del desarrollo económico y social de los gobiernos nacionales,para identificar el volumen, ubicación y profundidad de estos recursos utilizando métodos geológicos, geofísicos y geoquímicos. Este proceso requiere una clasificación preci...
- Autores:
-
Rodriguez Rodriguez, Gilbert Fabian
- Tipo de recurso:
- Fecha de publicación:
- 2024
- Institución:
- Universidad Distrital Francisco José de Caldas
- Repositorio:
- RIUD: repositorio U. Distrital
- Idioma:
- OAI Identifier:
- oai:repository.udistrital.edu.co:11349/93784
- Acceso en línea:
- http://hdl.handle.net/11349/93784
- Palabra clave:
- Python
Magnetotelúrica
Clasificación geoeléctrica
Resistividad aparente
Modelo de capas
Exploracion geotérmica
Especialización en Sistemas de Información Geográfica -- Tesis y disertaciones académicas
Python
Magnetotelluric
Geoelectrical classification
Apparent resistivity
Layer model
Geothermal exploration
- Rights
- License
- Abierto (Texto Completo)
id |
UDISTRITA2_03a812e615e1c43e71a66ca80c8df9d7 |
---|---|
oai_identifier_str |
oai:repository.udistrital.edu.co:11349/93784 |
network_acronym_str |
UDISTRITA2 |
network_name_str |
RIUD: repositorio U. Distrital |
repository_id_str |
|
dc.title.none.fl_str_mv |
GeoModel-GIS: plug-in para QGIS de clasificación geológica y geotérmica de datos de magnetotelúrica para la comprensión de sistemas geotérmicos hidrotermales |
dc.title.titleenglish.none.fl_str_mv |
GeoModel-GIS: plug-in for QGIS for geological and geothermal classification of magnetotelluric data for the understanding of hydrothermal geothermal systems |
title |
GeoModel-GIS: plug-in para QGIS de clasificación geológica y geotérmica de datos de magnetotelúrica para la comprensión de sistemas geotérmicos hidrotermales |
spellingShingle |
GeoModel-GIS: plug-in para QGIS de clasificación geológica y geotérmica de datos de magnetotelúrica para la comprensión de sistemas geotérmicos hidrotermales Python Magnetotelúrica Clasificación geoeléctrica Resistividad aparente Modelo de capas Exploracion geotérmica Especialización en Sistemas de Información Geográfica -- Tesis y disertaciones académicas Python Magnetotelluric Geoelectrical classification Apparent resistivity Layer model Geothermal exploration |
title_short |
GeoModel-GIS: plug-in para QGIS de clasificación geológica y geotérmica de datos de magnetotelúrica para la comprensión de sistemas geotérmicos hidrotermales |
title_full |
GeoModel-GIS: plug-in para QGIS de clasificación geológica y geotérmica de datos de magnetotelúrica para la comprensión de sistemas geotérmicos hidrotermales |
title_fullStr |
GeoModel-GIS: plug-in para QGIS de clasificación geológica y geotérmica de datos de magnetotelúrica para la comprensión de sistemas geotérmicos hidrotermales |
title_full_unstemmed |
GeoModel-GIS: plug-in para QGIS de clasificación geológica y geotérmica de datos de magnetotelúrica para la comprensión de sistemas geotérmicos hidrotermales |
title_sort |
GeoModel-GIS: plug-in para QGIS de clasificación geológica y geotérmica de datos de magnetotelúrica para la comprensión de sistemas geotérmicos hidrotermales |
dc.creator.fl_str_mv |
Rodriguez Rodriguez, Gilbert Fabian |
dc.contributor.advisor.none.fl_str_mv |
Ramírez Fernández, Salomón Einstein |
dc.contributor.author.none.fl_str_mv |
Rodriguez Rodriguez, Gilbert Fabian |
dc.subject.none.fl_str_mv |
Python Magnetotelúrica Clasificación geoeléctrica Resistividad aparente Modelo de capas Exploracion geotérmica |
topic |
Python Magnetotelúrica Clasificación geoeléctrica Resistividad aparente Modelo de capas Exploracion geotérmica Especialización en Sistemas de Información Geográfica -- Tesis y disertaciones académicas Python Magnetotelluric Geoelectrical classification Apparent resistivity Layer model Geothermal exploration |
dc.subject.lemb.none.fl_str_mv |
Especialización en Sistemas de Información Geográfica -- Tesis y disertaciones académicas |
dc.subject.keyword.none.fl_str_mv |
Python Magnetotelluric Geoelectrical classification Apparent resistivity Layer model Geothermal exploration |
description |
La exploración de recursos geotérmicos es fundamental como parte del desarrollo económico y social de los gobiernos nacionales,para identificar el volumen, ubicación y profundidad de estos recursos utilizando métodos geológicos, geofísicos y geoquímicos. Este proceso requiere una clasificación precisa de datos, clave para decisiones estratégicas en sectores como la energía y minería. En este contexto, se diseñó e implementó el Plug-In GeoModel-GIS en QGIS, utilizando metodologías ágiles como Scrum y prácticas de Extreme Programming (XP) para identificar requerimientos funcionales y no funcionales, y desarrollar una herramienta con una base de código robusta basada en PyQGIS y PyQt5. El diseño del Plug-In se apoyó en la arquitectura 4+1, con diagramas de clases, secuencias y actividades que guiaron el desarrollo. Su implementación automatizada mostró altos niveles de aceptación entre los profesionales consultados, aunque se identificó la necesidad de integrar métodos adicionales de exploración geológica, geofísica y geoquímica para mejorar el análisis y la comprensión de las zonas geotérmicas. El Plug-In GeoModel-GIS permite automatizar la clasificación de capas del subsuelo según valores de resistividad aparente de datos de magnetotelúrica , y asignar su correspondiente significado geológico y geotérmico. Esto facilita la identificación de componentes clave de sistemas geotérmicos hidrotermales, como capas sello, posibles reservorios y tipos de basamentos. La herramienta incluye una interfaz gráfica organizada en dos módulos principales para la clasificación y edición de datos, con soporte para archivos en formato .txt de los modelos unidimensionales de datos magnetotelúricos y ademas brinda una seria de validadores generados automaticamente que le permiten al usuario corregir errores en la carga o edición de los datos. |
publishDate |
2024 |
dc.date.created.none.fl_str_mv |
2024-12-03 |
dc.date.accessioned.none.fl_str_mv |
2025-03-18T17:53:19Z |
dc.date.available.none.fl_str_mv |
2025-03-18T17:53:19Z |
dc.type.none.fl_str_mv |
bachelorThesis |
dc.type.coar.fl_str_mv |
http://purl.org/coar/resource_type/c_7a1f |
dc.type.degree.none.fl_str_mv |
Monografía |
dc.identifier.uri.none.fl_str_mv |
http://hdl.handle.net/11349/93784 |
url |
http://hdl.handle.net/11349/93784 |
dc.relation.references.none.fl_str_mv |
Abdul, M. 2012. Calidad en la industria del software. La norma ISO 9126. Instituto Politécnico Nacional “La técnica al servicio de la Patria”. Gobierno de Mexico. https://www.nacionmulticultural.unam.mx/empresasindigenas/docs/2094.pdf Corbo, C. (2006). Modelo geofísico del acuífero guaraní: zona comprendida entre Uruguay y Argentina. Tesis de Maestria. Universidad Nacional Autónoma de México, México D.F. https://repositorio.unam.mx/contenidos?c=b7wv2o&d=false&q=*:*&i=5&v=1&t=search_1&as=0 Energy Sector Management Assistance Program (ESMAP). 2012. Manual de geotermia: como planificar y financiar la generación de electricidad. Informe Técnico 002/12. Banco Internacional para la Reconstrucción y el Desarrollo / Grupo del Banco Mundial. Washington D.C., EE. UU. https://www.esmap.org/sites/default/files/esmap- files/ESMAP_GEOTHERMAL_Spanish_book_Optimized.pdf Martí, A. 2006. A Magnetotelluric investigation of Geoelectrical Dimensionality and Study of the Central Betic Crustal Structure (Ph.D. Thesis, Universitat de Barcelona). https://www.fundaciongarciasineriz.es/wp-content/uploads/attachments/AMarti.pdf Nielse, J. y Landauer, K. 1993. A matematical model of the finding of usability problems. Proceedings of the SIGCHI Conference on Human Factors in Computing Systems - CHI ’93. doi:10.1145/169059.169166 Organización latinoamericana de Energía (OLADE) y Banco Interamericano de Desarrollo (BID). 1994. Guía para estudios de reconocimiento y prefactibilidad geotérmicos. Quito, Ecuador. https://biblioteca.olade.org/opac-tmpl/Documentos/old0406.pdf Pous, J., y Marcuello, A. (2003). El método magnetotelúrico: descripcion y aportaciones en investigaciones de ámbito regional. Barcelona, España: Boletín Geológico y Minero. https://diposit.ub.edu/dspace/bitstream/2445/34916/3/03.JLF_3de3.pdf Shah, S.K., Verma, O. y Gogoi, K. (2020). Fundamentals of Stratigraphy, Stratigraphy and palaentology. Volumen 1, stratigraphy. Indira Gandhi National Open University School of Science. https://egyankosh.ac.in/handle/123456789/69596 Vozoff, K. (1991). The magnetotelluric method. In Nabighian, M. N. (Ed.), Electromagnetic Methods in Applied Geophysics, Vol. 2, Applications, Society of Exploration Geophysicists |
dc.rights.coar.fl_str_mv |
http://purl.org/coar/access_right/c_abf2 |
dc.rights.acceso.none.fl_str_mv |
Abierto (Texto Completo) |
rights_invalid_str_mv |
Abierto (Texto Completo) http://purl.org/coar/access_right/c_abf2 |
dc.format.mimetype.none.fl_str_mv |
pdf |
institution |
Universidad Distrital Francisco José de Caldas |
bitstream.url.fl_str_mv |
https://repository.udistrital.edu.co/bitstreams/f6e2dc2e-f4ae-482e-8e43-155d9527bab8/download https://repository.udistrital.edu.co/bitstreams/1e4aa7d1-9a26-40f2-9401-21c5dd178544/download https://repository.udistrital.edu.co/bitstreams/6a9c60ef-4cee-4668-9318-03f90bbbaf99/download https://repository.udistrital.edu.co/bitstreams/f7bf3bcc-4675-40f9-9292-c69b3f331b57/download https://repository.udistrital.edu.co/bitstreams/45f760fe-1598-452b-a0b9-45f521b3c547/download |
bitstream.checksum.fl_str_mv |
f69574c399bf15e9a924fe2dad72451f 9870bf5d30381770dde7d48d41ac882f 997daf6c648c962d566d7b082dac908d 5fe5682c26dc7780a8416cbc28ea2205 d76d0fd4f6803502ce89cd54f076a95e |
bitstream.checksumAlgorithm.fl_str_mv |
MD5 MD5 MD5 MD5 MD5 |
repository.name.fl_str_mv |
Repositorio Universidad Distrital |
repository.mail.fl_str_mv |
repositorio@udistrital.edu.co |
_version_ |
1828165462927605760 |
spelling |
Ramírez Fernández, Salomón EinsteinRodriguez Rodriguez, Gilbert Fabian2025-03-18T17:53:19Z2025-03-18T17:53:19Z2024-12-03http://hdl.handle.net/11349/93784La exploración de recursos geotérmicos es fundamental como parte del desarrollo económico y social de los gobiernos nacionales,para identificar el volumen, ubicación y profundidad de estos recursos utilizando métodos geológicos, geofísicos y geoquímicos. Este proceso requiere una clasificación precisa de datos, clave para decisiones estratégicas en sectores como la energía y minería. En este contexto, se diseñó e implementó el Plug-In GeoModel-GIS en QGIS, utilizando metodologías ágiles como Scrum y prácticas de Extreme Programming (XP) para identificar requerimientos funcionales y no funcionales, y desarrollar una herramienta con una base de código robusta basada en PyQGIS y PyQt5. El diseño del Plug-In se apoyó en la arquitectura 4+1, con diagramas de clases, secuencias y actividades que guiaron el desarrollo. Su implementación automatizada mostró altos niveles de aceptación entre los profesionales consultados, aunque se identificó la necesidad de integrar métodos adicionales de exploración geológica, geofísica y geoquímica para mejorar el análisis y la comprensión de las zonas geotérmicas. El Plug-In GeoModel-GIS permite automatizar la clasificación de capas del subsuelo según valores de resistividad aparente de datos de magnetotelúrica , y asignar su correspondiente significado geológico y geotérmico. Esto facilita la identificación de componentes clave de sistemas geotérmicos hidrotermales, como capas sello, posibles reservorios y tipos de basamentos. La herramienta incluye una interfaz gráfica organizada en dos módulos principales para la clasificación y edición de datos, con soporte para archivos en formato .txt de los modelos unidimensionales de datos magnetotelúricos y ademas brinda una seria de validadores generados automaticamente que le permiten al usuario corregir errores en la carga o edición de los datos.The exploration of geothermal resources is fundamental as part of the economic and social development of national governments, where it seeks to identify the volume, location and depth of these resources using geological, geophysical and geochemical methods. This process requires precise classification of data, key for strategic decisions in sectors such as energy and mining. In this context, the GeoModel-GIS Plug-In was designed and implemented in QGIS, using agile methodologies such as Scrum and Extreme Programming (XP) practices to identify functional and non-functional requirements, and develop a tool with a robust code base based in PyQGIS and PyQt5. The design of the Plug-In was based on the 4+1 architecture, with class diagrams, sequences and activities that guided the development. Its automated implementation showed high levels of acceptance among the professionals consulted, although the need to integrate additional geological, geophysical and geochemical exploration methods was identified to improve the analysis and understanding of geothermal zones. The GeoModel-GIS Plug-In allows you to automate the classification of subsoil layers according to apparent resistivity values from magnetotelluric data, and assign their corresponding geological and geothermal meaning. This facilitates the identification of key components of hydrothermal geothermal systems, such as seal layers, possible reservoirs and basement types. The tool includes a graphical interface organized in two main modules for data classification and editing, with support for files in .txt format of the one-dimensional models of magnetotelluric data and also provides a series of automatically generated validators that allow the user to correct errors in loading or editing data.pdfPythonMagnetotelúricaClasificación geoeléctricaResistividad aparenteModelo de capasExploracion geotérmicaEspecialización en Sistemas de Información Geográfica -- Tesis y disertaciones académicasPythonMagnetotelluricGeoelectrical classificationApparent resistivityLayer modelGeothermal explorationGeoModel-GIS: plug-in para QGIS de clasificación geológica y geotérmica de datos de magnetotelúrica para la comprensión de sistemas geotérmicos hidrotermalesGeoModel-GIS: plug-in for QGIS for geological and geothermal classification of magnetotelluric data for the understanding of hydrothermal geothermal systemsbachelorThesisMonografíahttp://purl.org/coar/resource_type/c_7a1fAbierto (Texto Completo)http://purl.org/coar/access_right/c_abf2Abdul, M. 2012. Calidad en la industria del software. La norma ISO 9126. Instituto Politécnico Nacional “La técnica al servicio de la Patria”. Gobierno de Mexico. https://www.nacionmulticultural.unam.mx/empresasindigenas/docs/2094.pdfCorbo, C. (2006). Modelo geofísico del acuífero guaraní: zona comprendida entre Uruguay y Argentina. Tesis de Maestria. Universidad Nacional Autónoma de México, México D.F. https://repositorio.unam.mx/contenidos?c=b7wv2o&d=false&q=*:*&i=5&v=1&t=search_1&as=0Energy Sector Management Assistance Program (ESMAP). 2012. Manual de geotermia: como planificar y financiar la generación de electricidad. Informe Técnico 002/12. Banco Internacional para la Reconstrucción y el Desarrollo / Grupo del Banco Mundial. Washington D.C., EE. UU. https://www.esmap.org/sites/default/files/esmap- files/ESMAP_GEOTHERMAL_Spanish_book_Optimized.pdfMartí, A. 2006. A Magnetotelluric investigation of Geoelectrical Dimensionality and Study of the Central Betic Crustal Structure (Ph.D. Thesis, Universitat de Barcelona). https://www.fundaciongarciasineriz.es/wp-content/uploads/attachments/AMarti.pdfNielse, J. y Landauer, K. 1993. A matematical model of the finding of usability problems. Proceedings of the SIGCHI Conference on Human Factors in Computing Systems - CHI ’93. doi:10.1145/169059.169166Organización latinoamericana de Energía (OLADE) y Banco Interamericano de Desarrollo (BID). 1994. Guía para estudios de reconocimiento y prefactibilidad geotérmicos. Quito, Ecuador. https://biblioteca.olade.org/opac-tmpl/Documentos/old0406.pdfPous, J., y Marcuello, A. (2003). El método magnetotelúrico: descripcion y aportaciones en investigaciones de ámbito regional. Barcelona, España: Boletín Geológico y Minero. https://diposit.ub.edu/dspace/bitstream/2445/34916/3/03.JLF_3de3.pdfShah, S.K., Verma, O. y Gogoi, K. (2020). Fundamentals of Stratigraphy, Stratigraphy and palaentology. Volumen 1, stratigraphy. Indira Gandhi National Open University School of Science. https://egyankosh.ac.in/handle/123456789/69596Vozoff, K. (1991). The magnetotelluric method. In Nabighian, M. N. (Ed.), Electromagnetic Methods in Applied Geophysics, Vol. 2, Applications, Society of Exploration GeophysicistsORIGINALRodriguezRodriguezGilbertFabian2024.pdfRodriguezRodriguezGilbertFabian2024.pdfapplication/pdf1699377https://repository.udistrital.edu.co/bitstreams/f6e2dc2e-f4ae-482e-8e43-155d9527bab8/downloadf69574c399bf15e9a924fe2dad72451fMD51Licencia de uso y publicacion editable RIUD_.pdfLicencia de uso y publicacion editable RIUD_.pdfapplication/pdf249623https://repository.udistrital.edu.co/bitstreams/1e4aa7d1-9a26-40f2-9401-21c5dd178544/download9870bf5d30381770dde7d48d41ac882fMD52LICENSElicense.txtlicense.txttext/plain; charset=utf-87167https://repository.udistrital.edu.co/bitstreams/6a9c60ef-4cee-4668-9318-03f90bbbaf99/download997daf6c648c962d566d7b082dac908dMD53THUMBNAILRodriguezRodriguezGilbertFabian2024.pdf.jpgRodriguezRodriguezGilbertFabian2024.pdf.jpgIM Thumbnailimage/jpeg3671https://repository.udistrital.edu.co/bitstreams/f7bf3bcc-4675-40f9-9292-c69b3f331b57/download5fe5682c26dc7780a8416cbc28ea2205MD54Licencia de uso y publicacion editable RIUD_.pdf.jpgLicencia de uso y publicacion editable RIUD_.pdf.jpgIM Thumbnailimage/jpeg12082https://repository.udistrital.edu.co/bitstreams/45f760fe-1598-452b-a0b9-45f521b3c547/downloadd76d0fd4f6803502ce89cd54f076a95eMD5511349/93784oai:repository.udistrital.edu.co:11349/937842025-03-19 01:04:39.406open.accesshttps://repository.udistrital.edu.coRepositorio Universidad Distritalrepositorio@udistrital.edu.coTElDRU5DSUEgWSBBVVRPUklaQUNJw5NOIEVTUEVDSUFMIFBBUkEgUFVCTElDQVIgWSBQRVJNSVRJUiBMQSBDT05TVUxUQSBZIFVTTyBERSBDT05URU5JRE9TIEVOIEVMIFJFUE9TSVRPUklPIElOU1RJVFVDSU9OQUwgREUgTEEgVU5JVkVSU0lEQUQgRElTVFJJVEFMCgpUw6lybWlub3MgeSBjb25kaWNpb25lcyBkZSB1c28gcGFyYSBwdWJsaWNhY2nDs24gZGUgb2JyYXMgZW4gZWwgUmVwb3NpdG9yaW8gSW5zdGl0dWNpb25hbCBkZSBsYSBVbml2ZXJzaWRhZCBEaXN0cml0YWwgRnJhbmNpc2NvIEpvc8OpIGRlIENhbGRhcyAoUklVRCkKCkNvbW8gdGl0dWxhcihlcykgZGVsKG9zKSBkZXJlY2hvKHMpIGRlIGF1dG9yLCBjb25maWVybyAoZXJpbW9zKSBhIGxhIFVuaXZlcnNpZGFkIERpc3RyaXRhbCBGcmFuY2lzY28gSm9zw6kgZGUgQ2FsZGFzIChlbiBhZGVsYW50ZSwgTEEgVU5JVkVSU0lEQUQpIHVuYSBsaWNlbmNpYSBwYXJhIHVzbyBubyBleGNsdXNpdmEsIGxpbWl0YWRhIHkgZ3JhdHVpdGEgc29icmUgbGEgb2JyYSBxdWUgaW50ZWdyYXLDoSBlbCBSZXBvc2l0b3JpbyBJbnN0aXR1Y2lvbmFsIChlbiBhZGVsYW50ZSwgUklVRCksIGRlIGFjdWVyZG8gYSBsYXMgc2lndWllbnRlcyByZWdsYXMsIGxhcyBjdWFsZXMgZGVjbGFybyAoYW1vcykgY29ub2NlciB5IGFjZXB0YXI6CgphKQlFc3RhcsOhIHZpZ2VudGUgYSBwYXJ0aXIgZGUgbGEgZmVjaGEgZW4gcXVlIHNlIGluY2x1eWEgZW4gZWwgUklVRCB5IGhhc3RhIHBvciB1biBwbGF6byBkZSBkaWV6ICgxMCkgQcOxb3MsIHByb3Jyb2dhYmxlIGluZGVmaW5pZGFtZW50ZSBwb3IgZWwgdGllbXBvIHF1ZSBkdXJlIGVsIGRlcmVjaG8gUGF0cmltb25pYWwgZGVsIGF1dG9yOyBsYSBjdWFsIHBvZHLDoSBkYXJzZSBwb3IgdGVybWluYWRhIHByZXZpYSBzb2xpY2l0dWQgYSBMQSBVTklWRVJTSURBRCBwb3IgZXNjcml0byBjb24gdW5hIGFudGVsYWNpw7NuIGRlIGRvcyAoMikgbWVzZXMgYW50ZXMgZGVsIHZlbmNpbWllbnRvIGRlbCBwbGF6byBpbmljaWFsIG8gZWwgZGUgc3UocykgcHLDs3Jyb2dhKHMpLgoKYikJTEEgVU5JVkVSU0lEQUQgcG9kcsOhIHB1YmxpY2FyIGxhIG9icmEgZW4gbGFzIGRpc3RpbnRhcyB2ZXJzaW9uZXMgcmVxdWVyaWRhcyBwb3IgZWwgUklVRCAoZGlnaXRhbCwgaW1wcmVzbywgZWxlY3Ryw7NuaWNvIHUgb3RybyBtZWRpbyBjb25vY2lkbyBvIHBvciBjb25vY2VyKSBMQSBVTklWRVJTSURBRCBubyBzZXLDoSByZXNwb25zYWJsZSBlbiBlbCBldmVudG8gcXVlIGVsIGRvY3VtZW50byBhcGFyZXpjYSByZWZlcmVuY2lhZG8gZW4gbW90b3JlcyBkZSBiw7pzcXVlZGEgbyByZXBvc2l0b3Jpb3MgZGlmZXJlbnRlcyBhbCBSSVVELCB1bmEgdmV6IGVsKG9zKSBhdXRvcihlcykgc29saWNpdGVuIHN1IGVsaW1pbmFjacOzbiBkZWwgUklVRCwgZGFkbyBxdWUgbGEgbWlzbWEgc2Vyw6EgcHVibGljYWRhIGVuIEludGVybmV0LgoKYykJTGEgYXV0b3JpemFjacOzbiBzZSBoYWNlIGEgdMOtdHVsbyBncmF0dWl0bywgcG9yIGxvIHRhbnRvLCBsb3MgYXV0b3JlcyByZW51bmNpYW4gYSByZWNpYmlyIGJlbmVmaWNpbyBhbGd1bm8gcG9yIGxhIHB1YmxpY2FjacOzbiwgZGlzdHJpYnVjacOzbiwgY29tdW5pY2FjacOzbiBww7pibGljYSB5IGN1YWxxdWllciBvdHJvIHVzbyBxdWUgc2UgaGFnYSBlbiBsb3MgdMOpcm1pbm9zIGRlIGxhIHByZXNlbnRlIGxpY2VuY2lhIHkgZGUgbGEgbGljZW5jaWEgZGUgdXNvIGNvbiBxdWUgc2UgcHVibGljYSAoQ3JlYXRpdmUgQ29tbW9ucykuCgpkKQlMb3MgY29udGVuaWRvcyBwdWJsaWNhZG9zIGVuIGVsIFJJVUQgc29uIG9icmEocykgb3JpZ2luYWwoZXMpIHNvYnJlIGxhIGN1YWwoZXMpIGVsKG9zKSBhdXRvcihlcykgY29tbyB0aXR1bGFyZXMgZGUgbG9zIGRlcmVjaG9zIGRlIGF1dG9yLCBhc3VtZW4gdG90YWwgcmVzcG9uc2FiaWxpZGFkIHBvciBlbCBjb250ZW5pZG8gZGUgc3Ugb2JyYSBhbnRlIExBIFVOSVZFUlNJREFEIHkgYW50ZSB0ZXJjZXJvcy4gRW4gdG9kbyBjYXNvIExBIFVOSVZFUlNJREFEIHNlIGNvbXByb21ldGUgYSBpbmRpY2FyIHNpZW1wcmUgbGEgYXV0b3LDrWEgaW5jbHV5ZW5kbyBlbCBub21icmUgZGVsIGF1dG9yIHkgbGEgZmVjaGEgZGUgcHVibGljYWNpw7NuLgoKZSkJTEEgVU5JVkVSU0lEQUQgcG9kcsOhIGluY2x1aXIgbGEgb2JyYSBlbiBsb3Mgw61uZGljZXMgeSBidXNjYWRvcmVzIHF1ZSBlc3RpbWVuIG5lY2VzYXJpb3MgcGFyYSBtYXhpbWl6YXIgbGEgdmlzaWJpbGlkYWQgZWwgdXNvIHkgZWwgaW1wYWN0byBkZSBsYSBwcm9kdWNjacOzbiBjaWVudMOtZmljYSwgYXJ0w61zdGljYSB5IGFjYWTDqW1pY2EgZW4gbGEgY29tdW5pZGFkIGxvY2FsLCBuYWNpb25hbCBvIGludGVybmFjaW9uYWwuCgoKZikJTEEgVU5JVkVSU0lEQUQgcG9kcsOhIGNvbnZlcnRpciBsYSBvYnJhIGEgY3VhbHF1aWVyIG1lZGlvIG8gZm9ybWF0byBjb24gZWwgZmluIGRlIHN1IHByZXNlcnZhY2nDs24gZW4gZWwgdGllbXBvIHF1ZSBsYSBwcmVzZW50ZSBsaWNlbmNpYSB5IGxhIGRlIHN1cyBwcsOzcnJvZ2FzLgoKCkNvbiBiYXNlIGVuIGxvIGFudGVyaW9yIGF1dG9yaXpvKGFtb3MpLCBhIGZhdm9yIGRlbCBSSVVEIHkgZGUgc3VzIHVzdWFyaW9zLCBsYSBwdWJsaWNhY2nDs24geSBjb25zdWx0YSBkZSBsYSBzaWd1aWVudGUgb2JyYToKClRpdHVsbwoKQXV0b3IgICAgICAgQXBlbGxpZG9zICAgICAgICAgTm9tYnJlcwoKMQoKMgoKMwoKCmcpCUF1dG9yaXpvKGFtb3MpLCBxdWUgbGEgb2JyYSBzZWEgcHVlc3RhIGEgZGlzcG9zaWNpw7NuIGRlbCBww7pibGljbyBlbiBsb3MgdMOpcm1pbm9zIGVzdGFibGVjaWRvcyBlbiBsb3MgbGl0ZXJhbGVzIGFudGVyaW9yZXMsIGJham8gbG9zIGzDrW1pdGVzIGRlZmluaWRvcyBwb3IgTEEgVU5JVkVSU0lEQUQsIGVuIGxhcyDigJxDb25kaWNpb25lcyBkZSB1c28gZGUgZXN0cmljdG8gY3VtcGxpbWllbnRv4oCdIGRlIGxvcyByZWN1cnNvcyBwdWJsaWNhZG9zIGVuIGVsIFJJVUQsIGN1eW8gdGV4dG8gY29tcGxldG8gc2UgcHVlZGUgY29uc3VsdGFyIGVuIGh0dHA6Ly9yZXBvc2l0b3J5LnVkaXN0cml0YWwuZWR1LmNvLwoKaCkJQ29ub3pjbyhjZW1vcykgeSBhY2VwdG8oYW1vcykgcXVlIG90b3JnbyhhbW9zKSB1bmEgbGljZW5jaWEgZXNwZWNpYWwgcGFyYSBwdWJsaWNhY2nDs24gZGUgb2JyYXMgZW4gZWwgUmVwb3NpdG9yaW8gSW5zdGl0dWNpb25hbCBkZSBsYSBVbml2ZXJzaWRhZCBEaXN0cml0YWwgRnJhbmNpc2NvIEpvc8OpIGRlIENhbGRhcywgbGljZW5jaWEgICBkZSBsYSBjdWFsIGhlIChoZW1vcykgb2J0ZW5pZG8gdW5hIGNvcGlhLgoKaSkJTWFuaWZpZXN0byhhbW9zKSBtaSAobnVlc3RybykgdG90YWwgYWN1ZXJkbyBjb24gbGFzIGNvbmRpY2lvbmVzIGRlIHVzbyB5IHB1YmxpY2FjacOzbiBlbiBlbCBSZXBvc2l0b3JpbyBJbnN0aXR1Y2lvbmFsIGRlIGxhIFVuaXZlcnNpZGFkIERpc3RyaXRhbCBGcmFuY2lzY28gSm9zw6kgZGUgQ2FsZGFzIHF1ZSBzZSBkZXNjcmliZW4geSBleHBsaWNhbiBlbiBlbCBwcmVzZW50ZSBkb2N1bWVudG8uCgpqKQlDb25vemNvKGNlbW9zKSBsYSBub3JtYXRpdmlkYWQgaW50ZXJuYSBkZSAgTEEgVU5JVkVSU0lEQUQ7IGVuIGNvbmNyZXRvLCBlbCBBY3VlcmRvIDAwNCBkZSAyMDEyIGRlbCBDU1UsIEFjdWVyZG8gMDIzIGRlIDIwMTIgZGVsIENTVSBzb2JyZSBQb2zDrXRpY2EgRWRpdG9yaWFsLCBBY3VlcmRvIDAyNiAgZGVsIDMxIGRlIGp1bGlvIGRlIDIwMTIgc29icmUgZWwgcHJvY2VkaW1pZW50byBwYXJhIGxhIHB1YmxpY2FjacOzbiBkZSB0ZXNpcyBkZSBwb3N0Z3JhZG8gZGUgbG9zIGVzdHVkaWFudGVzIGRlIGxhIFVuaXZlcnNpZGFkIERpc3RyaXRhbCBGcmFuY2lzY28gSm9zw6kgZGUgQ2FsZGFzLCAgQWN1ZXJkbyAwMzAgZGVsIDAzIGRlIGRpY2llbWJyZSBkZSAyMDEzIHBvciBtZWRpbyBkZWwgY3VhbCBzZSBjcmVhIGVsIFJlcG9zaXRvcmlvIEluc3RpdHVjaW9uYWwgZGUgbGEgVW5pdmVyc2lkYWQgRGlzdHJpdGFsIEZyYW5jaXNjbyBKb3PDqSBkZSBDYWxkYXMsIEFjdWVyZG8gMDM4IGRlIDIwMTUgMjAxNSDigJxwb3IgZWwgY3VhbCBzZSBtb2RpZmljYSBlbCBBY3VlcmRvIDAzMSBkZSAyMDE0IGRlIDIwMTQgcXVlIHJlZ2xhbWVudGEgZWwgdHJhYmFqbyBkZSBncmFkbyBwYXJhIGxvcyBlc3R1ZGlhbnRlcyBkZSBwcmVncmFkbyBkZSBsYSBVbml2ZXJzaWRhZCBEaXN0cml0YWwgRnJhbmNpc2NvIEpvc8OpIGRlIENhbGRhcyB5IHNlIGRpY3RhbiBvdHJhcyBkaXJlY3RyaWNlc+KAnSB5IGxhcyBkZW3DoXMgbm9ybWFzIGNvbmNvcmRhbnRlIHkgY29tcGxlbWVudGFyaWFzIHF1ZSByaWdlbiBhbCByZXNwZWN0bywgZXNwZWNpYWxtZW50ZSBsYSBsZXkgMjMgZGUgMTk4MiwgbGEgbGV5IDQ0IGRlIDE5OTMgeSBsYSBkZWNpc2nDs24gQW5kaW5hIDM1MSBkZSAxOTkzLiBFc3RvcyBkb2N1bWVudG9zIHBvZHLDoW4gc2VyIGNvbnN1bHRhZG9zIHkgZGVzY2FyZ2Fkb3MgZW4gZWwgcG9ydGFsIHdlYiBkZSBsYSBiaWJsaW90ZWNhIGh0dHA6Ly9zaXN0ZW1hZGViaWJsaW90ZWNhcy51ZGlzdHJpdGFsLmVkdS5jby8KCmspCUFjZXB0byhhbW9zKSBxdWUgTEEgVU5JVkVSU0lEQUQgbm8gc2UgcmVzcG9uc2FiaWxpemEgcG9yIGxhcyBpbmZyYWNjaW9uZXMgYSBsYSBwcm9waWVkYWQgaW50ZWxlY3R1YWwgbyBEZXJlY2hvcyBkZSBBdXRvciBjYXVzYWRhcyBwb3IgbG9zIHRpdHVsYXJlcyBkZSBsYSBwcmVzZW50ZSBMaWNlbmNpYSB5IGRlY2xhcmFtb3MgcXVlIG1hbnRlbmRyw6kgKGVtb3MpIGluZGVtbmUgYSBMQSBVTklWRVJTSURBRCBwb3IgbGFzIHJlY2xhbWFjaW9uZXMgbGVnYWxlcyBkZSBjdWFscXVpZXIgdGlwbyBxdWUgbGxlZ2FyZW4gYSBwcmVzZW50YXJzZSBwb3IgdmlvbGFjacOzbiBkZSBkZXJlY2hvcyBhIGxhIHByb3BpZWRhZCBpbnRlbGVjdHVhbCBvIGRlIEF1dG9yIHJlbGFjaW9uYWRvcyBjb24gbG9zIGRvY3VtZW50b3MgcmVnaXN0cmFkb3MgZW4gZWwgUklVRC4KCmwpCUVsIChsb3MpIGF1dG9yKGVzKSBtYW5pZmllc3RhKG1vcykgcXVlIGxhIG9icmEgb2JqZXRvIGRlIGxhIHByZXNlbnRlIGF1dG9yaXphY2nDs24gZXMgb3JpZ2luYWwsIGRlIGV4Y2x1c2l2YSBhdXRvcsOtYSwgeSBzZSByZWFsaXrDsyBzaW4gdmlvbGFyIG8gdXN1cnBhciBkZXJlY2hvcyBkZSBhdXRvciBkZSB0ZXJjZXJvczsgZGUgdGFsIHN1ZXJ0ZSwgZW4gY2FzbyBkZSBwcmVzZW50YXJzZSBjdWFscXVpZXIgcmVjbGFtYWNpw7NuIG8gYWNjacOzbiBwb3IgcGFydGUgZGUgdW4gdGVyY2VybyBlbiBjdWFudG8gYSBsb3MgZGVyZWNob3MgZGUgYXV0b3Igc29icmUgbGEgb2JyYSwgZWwgKGxvcykgZXN0dWRpYW50ZShzKSDigJMgYXV0b3IoZXMpIGFzdW1pcsOhKG4pIHRvZGEgbGEgcmVzcG9uc2FiaWxpZGFkIHkgc2FsZHLDoShuKSBlbiBkZWZlbnNhIGRlIGxvcyBkZXJlY2hvcyBhcXXDrSBhdXRvcml6YWRvcy4gUGFyYSB0b2RvcyBsb3MgZWZlY3RvcywgTEEgVU5JVkVSU0lEQUQgYWN0w7phIGNvbW8gdW4gdGVyY2VybyBkZSBidWVuYSBmZS4KCgptKQlFbCAobG9zKSBhdXRvcihlcykgbWFuaWZpZXN0YShtb3MpIHF1ZSBjb25vemNvKGNlbW9zKSBsYSBhdXRvbm9tw61hIHkgbG9zIGRlcmVjaG9zLCBxdWUgcG9zZWUobW9zKSBzb2JyZSBsYSBvYnJhIHksIGNvbW8gdGFsLCBlcyAoc29tb3MpIHJlc3BvbnNhYmxlKHMpIGRlbCBhbGNhbmNlIGp1csOtZGljbyB5IGxlZ2FsLCBkZSBlc2NvZ2VyIGxhIG9wY2nDs24gZGUgbGEgcHVibGljYWNpw7NuIG8gZGUgcmVzdHJpY2Npw7NuIGRlIGxhIHB1YmxpY2FjacOzbiBkZWwgZG9jdW1lbnRvIHJlZ2lzdHJhZG8gZW4gZWwgUklVRC4KCgoKCgoKU0kgRUwgRE9DVU1FTlRPIFNFIEJBU0EgRU4gVU4gVFJBQkFKTyBRVUUgSEEgU0lETyBQQVRST0NJTkFETyBPIEFQT1lBRE8gUE9SIFVOQSBBR0VOQ0lBIE8gVU5BIE9SR0FOSVpBQ0nDk04sIENPTiBFWENFUENJw5NOIERFIExBIFVOSVZFUlNJREFEIERJU1RSSVRBTCBGUkFOQ0lTQ08gSk9TRSBERSBDQUxEQVMsIExPUyBBVVRPUkVTIEdBUkFOVElaQU4gUVVFIFNFIEhBIENVTVBMSURPIENPTiBMT1MKREVSRUNIT1MgWSBPQkxJR0FDSU9ORVMgUkVRVUVSSURPUyBQT1IgRUwgUkVTUEVDVElWTyBDT05UUkFUTyBPIEFDVUVSRE8uCgoKCgoKCgoKCgoKCgoKCgoKCgoKCkVuIGNvbnN0YW5jaWEgZGUgbG8gYW50ZXJpb3IsIGZpcm1vKGFtb3MpIGVsIHByZXNlbnRlIGRvY3VtZW50bywgZW4gbGEgY2l1ZGFkIGRlIEJvZ290w6EsIEQuQy4sIGEgbG9zCgoKRklSTUEgREUgTE9TIFRJVFVMQVJFUyBERSBERVJFQ0hPUyBERSBBVVRPUgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fICAgQy5DLiBOby4gX19fX19fX19fX19fX19fX19fCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18gICBDLkMuIE5vLiBfX19fX19fX19fX19fX19fX18KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyAgIEMuQy4gTm8uIF9fX19fX19fX19fX19fX19fXwoKCgpDb3JyZW8gRWxlY3Ryw7NuaWNvIEluc3RpdHVjaW9uYWwgZGVsIChkZSBsb3MpIEF1dG9yKGVzKToKCkF1dG9yCSAgICAgIENvcnJlbyBFbGVjdHLDs25pY28KCjEKCjIKCjMKCk5vbWJyZSBkZSBEaXJlY3RvcihlcykgZGUgR3JhZG86CgoxCgoyCgozCgpOb21icmUgRmFjdWx0YWQgeSBQcm95ZWN0byBDdXJyaWN1bGFyOgoKRmFjdWx0YWQJUHJveWVjdG8gQ3VycmljdWxhcgoKCgoKCgoKCk5vdGE6IEVuIGNhc28gcXVlIG5vIGVzdMOpIGRlIGFjdWVyZG8gY29uIGxhcyBjb25kaWNpb25lcyBkZSBsYSBwcmVzZW50ZSBsaWNlbmNpYSwgeSBtYW5pZmllc3RlIGFsZ3VuYSByZXN0cmljY2nDs24gc29icmUgbGEgb2JyYSwganVzdGlmaXF1ZSBsb3MgbW90aXZvcyBwb3IgbG9zIGN1YWxlcyBlbCBkb2N1bWVudG8geSBzdXMgYW5leG9zIG5vIHB1ZWRlbiBzZXIgcHVibGljYWRvcyBlbiBlbCBSZXBvc2l0b3JpbyBJbnN0aXR1Y2lvbmFsIGRlIGxhIFVuaXZlcnNpZGFkIERpc3RyaXRhbCBGcmFuY2lzY28gSm9zw6kgZGUgQ2FsZGFzIFJJVUQuCgoKU2kgcmVxdWllcmUgbcOhcyBlc3BhY2lvLCBwdWVkZSBhbmV4YXIgdW5hIGNvcGlhIHNpbWlsYXIgYSBlc3RhIGhvamEK |