Modelo de clasificación en Machine Learning para productos del Fondo Nacional de Garantías S.A. - FNG

Este trabajo detalla la implementación de un modelo de clasificación en Machine Learning con el fin de analizar y evaluar garantías en el ámbito del Fondo Nacional de Garantías. Su objetivo principal es mejorar la eficiencia y precisión en la detección de inconsistencias en reclamaciones de garantía...

Full description

Autores:
Duque Carreño, Johan Camilo
Tipo de recurso:
Trabajo de grado de pregrado
Fecha de publicación:
2024
Institución:
Universidad Distrital Francisco José de Caldas
Repositorio:
RIUD: repositorio U. Distrital
Idioma:
spa
OAI Identifier:
oai:repository.udistrital.edu.co:11349/41303
Acceso en línea:
http://hdl.handle.net/11349/41303
Palabra clave:
Machine Learning
Análisis de datos
Python
FNG
Matemáticas -- Tesis y disertaciones académicas
Modelos de clasificación en Machine Learning
Detección de inconsistencias en garantías
Aplicaciones de Machine Learning en finanzas
Optimización de procesos en entidades financieras
Análisis de datos con Python
Machine Learning
Analysis of data
Python
FNG
Rights
License
Abierto (Texto Completo)
id UDISTRITA2_83f5623bf7c8a75409aa726bf9297423
oai_identifier_str oai:repository.udistrital.edu.co:11349/41303
network_acronym_str UDISTRITA2
network_name_str RIUD: repositorio U. Distrital
repository_id_str
dc.title.spa.fl_str_mv Modelo de clasificación en Machine Learning para productos del Fondo Nacional de Garantías S.A. - FNG
dc.title.titleenglish.spa.fl_str_mv Classification Model in Machine Learning for products of the Fondo Nacional de Garantías S.A. - FNG
title Modelo de clasificación en Machine Learning para productos del Fondo Nacional de Garantías S.A. - FNG
spellingShingle Modelo de clasificación en Machine Learning para productos del Fondo Nacional de Garantías S.A. - FNG
Machine Learning
Análisis de datos
Python
FNG
Matemáticas -- Tesis y disertaciones académicas
Modelos de clasificación en Machine Learning
Detección de inconsistencias en garantías
Aplicaciones de Machine Learning en finanzas
Optimización de procesos en entidades financieras
Análisis de datos con Python
Machine Learning
Analysis of data
Python
FNG
title_short Modelo de clasificación en Machine Learning para productos del Fondo Nacional de Garantías S.A. - FNG
title_full Modelo de clasificación en Machine Learning para productos del Fondo Nacional de Garantías S.A. - FNG
title_fullStr Modelo de clasificación en Machine Learning para productos del Fondo Nacional de Garantías S.A. - FNG
title_full_unstemmed Modelo de clasificación en Machine Learning para productos del Fondo Nacional de Garantías S.A. - FNG
title_sort Modelo de clasificación en Machine Learning para productos del Fondo Nacional de Garantías S.A. - FNG
dc.creator.fl_str_mv Duque Carreño, Johan Camilo
dc.contributor.advisor.none.fl_str_mv Villarraga Poveda, Luis Fernando
dc.contributor.author.none.fl_str_mv Duque Carreño, Johan Camilo
dc.subject.spa.fl_str_mv Machine Learning
Análisis de datos
Python
FNG
topic Machine Learning
Análisis de datos
Python
FNG
Matemáticas -- Tesis y disertaciones académicas
Modelos de clasificación en Machine Learning
Detección de inconsistencias en garantías
Aplicaciones de Machine Learning en finanzas
Optimización de procesos en entidades financieras
Análisis de datos con Python
Machine Learning
Analysis of data
Python
FNG
dc.subject.lemb.none.fl_str_mv Matemáticas -- Tesis y disertaciones académicas
Modelos de clasificación en Machine Learning
Detección de inconsistencias en garantías
Aplicaciones de Machine Learning en finanzas
Optimización de procesos en entidades financieras
Análisis de datos con Python
dc.subject.keyword.spa.fl_str_mv Machine Learning
Analysis of data
Python
FNG
description Este trabajo detalla la implementación de un modelo de clasificación en Machine Learning con el fin de analizar y evaluar garantías en el ámbito del Fondo Nacional de Garantías. Su objetivo principal es mejorar la eficiencia y precisión en la detección de inconsistencias en reclamaciones de garantías por parte de intermediarios financieros, optimizando así el proceso. La narrativa se fundamenta en la experiencia del autor durante una pasantía en el Fondo Nacional de Garantías, específicamente en áreas como la Vicepresidencia de Operaciones y la Subdirección de Garantías, desempeñando el rol de analista técnico. El enfoque central del trabajo es identificar los intermediarios financieros que suelen presentar más inconsistencias y definir los productos y tipos de procesos susceptibles de notificación. Se emplea una base de datos que incluye todas las garantías con alguna inconsistencia en el momento de la reclamación para ilustrar la implementación del modelo de clasificación en Machine Learning. El código presentado utiliza Python y bibliotecas como pandas, scikit-learn y openpyxl para cargar, procesar y construir el modelo de clasificación. Se aplican conocimientos matemáticos y estadísticos, como álgebra lineal, probabilidades y lógica booleana. Además, se implementa machine learning mediante un modelo RandomForestClassifier, basado en árboles de decisión y teoría de grafos, con optimización en el entrenamiento del modelo. El marco teórico se centra en la selección y preparación de datos, la exploración detallada y elección adecuada de clases, hasta la implementación y evaluación del modelo. Se analiza la idoneidad de algoritmos de clasificación para optimizar la predicción de inconsistencias y comportamientos de las características de las garantías. Este trabajo contribuye al campo de aplicación de Machine Learning en entidades financieras, ofreciendo un caso de estudio específico y práctico para mejorar procesos en el contexto del Fondo Nacional de Garantías. Se propone examinar la implementación de modelos de clasificación en un contexto empresarial específico, evaluando su impacto en la toma de decisiones y la mejora de la eficiencia operativa.
publishDate 2024
dc.date.accessioned.none.fl_str_mv 2024-10-07T21:19:44Z
dc.date.available.none.fl_str_mv 2024-10-07T21:19:44Z
dc.date.created.none.fl_str_mv 2024-04-16
dc.type.spa.fl_str_mv bachelorThesis
dc.type.degree.spa.fl_str_mv Pasantía
dc.type.driver.spa.fl_str_mv info:eu-repo/semantics/bachelorThesis
dc.type.coar.spa.fl_str_mv http://purl.org/coar/resource_type/c_7a1f
format http://purl.org/coar/resource_type/c_7a1f
dc.identifier.uri.none.fl_str_mv http://hdl.handle.net/11349/41303
url http://hdl.handle.net/11349/41303
dc.language.iso.spa.fl_str_mv spa
language spa
dc.rights.coar.fl_str_mv http://purl.org/coar/access_right/c_abf2
dc.rights.acceso.spa.fl_str_mv Abierto (Texto Completo)
rights_invalid_str_mv Abierto (Texto Completo)
http://purl.org/coar/access_right/c_abf2
dc.format.mimetype.spa.fl_str_mv pdf
institution Universidad Distrital Francisco José de Caldas
bitstream.url.fl_str_mv https://repository.udistrital.edu.co/bitstreams/a1a5cdee-6bed-41fe-9276-4c06607e5a81/download
https://repository.udistrital.edu.co/bitstreams/aca1a702-c170-43ed-9512-e99d470aec5b/download
https://repository.udistrital.edu.co/bitstreams/cc343d33-4e81-408c-abb7-b28256902121/download
https://repository.udistrital.edu.co/bitstreams/1c30f01c-1101-4ee8-af85-dfe5350a07c8/download
https://repository.udistrital.edu.co/bitstreams/b0a35b18-f9ec-4ce4-8262-58c1b0467e22/download
https://repository.udistrital.edu.co/bitstreams/597d859a-d9a0-40f0-a654-fff63afcb757/download
https://repository.udistrital.edu.co/bitstreams/89e586cd-c00a-478d-be13-b9d4222e427e/download
bitstream.checksum.fl_str_mv 997daf6c648c962d566d7b082dac908d
cf1547cca7853af60a5ebc81e5da8614
5cbf7670c69524f271fcc8da20438140
b81aa55da485608598c19e915193560e
8fed868cf537c71d7d37c8e3d0b9b58a
e6c64b8d0fcf0dd0036e45fa01d649d6
ecaf8f71859a31fc07986bf19a664a69
bitstream.checksumAlgorithm.fl_str_mv MD5
MD5
MD5
MD5
MD5
MD5
MD5
repository.name.fl_str_mv Repositorio Universidad Distrital
repository.mail.fl_str_mv repositorio@udistrital.edu.co
_version_ 1837007099029094400
spelling Villarraga Poveda, Luis FernandoDuque Carreño, Johan Camilo2024-10-07T21:19:44Z2024-10-07T21:19:44Z2024-04-16http://hdl.handle.net/11349/41303Este trabajo detalla la implementación de un modelo de clasificación en Machine Learning con el fin de analizar y evaluar garantías en el ámbito del Fondo Nacional de Garantías. Su objetivo principal es mejorar la eficiencia y precisión en la detección de inconsistencias en reclamaciones de garantías por parte de intermediarios financieros, optimizando así el proceso. La narrativa se fundamenta en la experiencia del autor durante una pasantía en el Fondo Nacional de Garantías, específicamente en áreas como la Vicepresidencia de Operaciones y la Subdirección de Garantías, desempeñando el rol de analista técnico. El enfoque central del trabajo es identificar los intermediarios financieros que suelen presentar más inconsistencias y definir los productos y tipos de procesos susceptibles de notificación. Se emplea una base de datos que incluye todas las garantías con alguna inconsistencia en el momento de la reclamación para ilustrar la implementación del modelo de clasificación en Machine Learning. El código presentado utiliza Python y bibliotecas como pandas, scikit-learn y openpyxl para cargar, procesar y construir el modelo de clasificación. Se aplican conocimientos matemáticos y estadísticos, como álgebra lineal, probabilidades y lógica booleana. Además, se implementa machine learning mediante un modelo RandomForestClassifier, basado en árboles de decisión y teoría de grafos, con optimización en el entrenamiento del modelo. El marco teórico se centra en la selección y preparación de datos, la exploración detallada y elección adecuada de clases, hasta la implementación y evaluación del modelo. Se analiza la idoneidad de algoritmos de clasificación para optimizar la predicción de inconsistencias y comportamientos de las características de las garantías. Este trabajo contribuye al campo de aplicación de Machine Learning en entidades financieras, ofreciendo un caso de estudio específico y práctico para mejorar procesos en el contexto del Fondo Nacional de Garantías. Se propone examinar la implementación de modelos de clasificación en un contexto empresarial específico, evaluando su impacto en la toma de decisiones y la mejora de la eficiencia operativa.This work details the implementation of a classification model in Machine Learning in order to analyze and evaluate guarantees in the scope of the National Guarantee Fund. Its main objective is to improve efficiency and precision in the detection of inconsistencies in guarantee claims by financial intermediaries, thus optimizing the process. The narrative is based on the author's experience during an internship at the National Guarantee Fund, specifically in areas such as the Vice Presidency of Operations and the Guarantees Subdirectorate, playing the role of technical analyst. The central focus of the work is to identify the financial intermediaries that tend to present the most inconsistencies and define the products and types of processes susceptible to notification. A database that includes all guarantees with some inconsistency at the time of the claim is used to illustrate the implementation of the classification model in Machine Learning. The code presented uses Python and libraries such as pandas, scikit-learn and openpyxl to load, process and build the model. classification. Mathematical and statistical knowledge is applied, such as linear algebra, probability and Boolean logic. In addition, machine learning is implemented using a RandomForestClassifier model, based on decision trees and graph theory, with optimization in model training. The theoretical framework focuses on the selection and preparation of data, the detailed exploration and appropriate choice of classes, until the implementation and evaluation of the model. The suitability of classification algorithms to optimize the prediction of inconsistencies and behaviors of the characteristics of the guarantees. This work contributes to the field of application of Machine Learning in financial entities, offering a specific and practical case study to improve processes in the context of the National Guarantee Fund. It is proposed to examine the implementation of classification models in a specific business context, evaluating their impact on decision making and improving operational efficiency.pdfspaMachine LearningAnálisis de datosPythonFNGMatemáticas -- Tesis y disertaciones académicasModelos de clasificación en Machine LearningDetección de inconsistencias en garantíasAplicaciones de Machine Learning en finanzasOptimización de procesos en entidades financierasAnálisis de datos con PythonMachine LearningAnalysis of dataPythonFNGModelo de clasificación en Machine Learning para productos del Fondo Nacional de Garantías S.A. - FNGClassification Model in Machine Learning for products of the Fondo Nacional de Garantías S.A. - FNGbachelorThesisPasantíainfo:eu-repo/semantics/bachelorThesishttp://purl.org/coar/resource_type/c_7a1fAbierto (Texto Completo)http://purl.org/coar/access_right/c_abf2LICENSElicense.txtlicense.txttext/plain; charset=utf-87167https://repository.udistrital.edu.co/bitstreams/a1a5cdee-6bed-41fe-9276-4c06607e5a81/download997daf6c648c962d566d7b082dac908dMD57ORIGINALDuqueCarreñoJohanCamilo2024.pdfDuqueCarreñoJohanCamilo2024.pdfTrabajo de Gradoapplication/pdf681911https://repository.udistrital.edu.co/bitstreams/aca1a702-c170-43ed-9512-e99d470aec5b/downloadcf1547cca7853af60a5ebc81e5da8614MD54DuqueCarreñoJohanCamilo2024.AnexoDuqueCarreñoJohanCamilo2024.AnexoAnexosapplication/pdf110235https://repository.udistrital.edu.co/bitstreams/cc343d33-4e81-408c-abb7-b28256902121/download5cbf7670c69524f271fcc8da20438140MD55Licencia y autorización de los autores para publicarLicencia y autorización de los autores para publicarLicencia de uso y publicaciónapplication/pdf770786https://repository.udistrital.edu.co/bitstreams/1c30f01c-1101-4ee8-af85-dfe5350a07c8/downloadb81aa55da485608598c19e915193560eMD56THUMBNAILDuqueCarreñoJohanCamilo2024.pdf.jpgDuqueCarreñoJohanCamilo2024.pdf.jpgIM Thumbnailimage/jpeg7564https://repository.udistrital.edu.co/bitstreams/b0a35b18-f9ec-4ce4-8262-58c1b0467e22/download8fed868cf537c71d7d37c8e3d0b9b58aMD58DuqueCarreñoJohanCamilo2024.Anexo.jpgDuqueCarreñoJohanCamilo2024.Anexo.jpgIM Thumbnailimage/jpeg9330https://repository.udistrital.edu.co/bitstreams/597d859a-d9a0-40f0-a654-fff63afcb757/downloade6c64b8d0fcf0dd0036e45fa01d649d6MD59Licencia y autorización de los autores para publicar.jpgLicencia y autorización de los autores para publicar.jpgIM Thumbnailimage/jpeg9583https://repository.udistrital.edu.co/bitstreams/89e586cd-c00a-478d-be13-b9d4222e427e/downloadecaf8f71859a31fc07986bf19a664a69MD51011349/41303oai:repository.udistrital.edu.co:11349/413032025-03-19 01:14:36.392open.accesshttps://repository.udistrital.edu.coRepositorio Universidad Distritalrepositorio@udistrital.edu.coTElDRU5DSUEgWSBBVVRPUklaQUNJw5NOIEVTUEVDSUFMIFBBUkEgUFVCTElDQVIgWSBQRVJNSVRJUiBMQSBDT05TVUxUQSBZIFVTTyBERSBDT05URU5JRE9TIEVOIEVMIFJFUE9TSVRPUklPIElOU1RJVFVDSU9OQUwgREUgTEEgVU5JVkVSU0lEQUQgRElTVFJJVEFMCgpUw6lybWlub3MgeSBjb25kaWNpb25lcyBkZSB1c28gcGFyYSBwdWJsaWNhY2nDs24gZGUgb2JyYXMgZW4gZWwgUmVwb3NpdG9yaW8gSW5zdGl0dWNpb25hbCBkZSBsYSBVbml2ZXJzaWRhZCBEaXN0cml0YWwgRnJhbmNpc2NvIEpvc8OpIGRlIENhbGRhcyAoUklVRCkKCkNvbW8gdGl0dWxhcihlcykgZGVsKG9zKSBkZXJlY2hvKHMpIGRlIGF1dG9yLCBjb25maWVybyAoZXJpbW9zKSBhIGxhIFVuaXZlcnNpZGFkIERpc3RyaXRhbCBGcmFuY2lzY28gSm9zw6kgZGUgQ2FsZGFzIChlbiBhZGVsYW50ZSwgTEEgVU5JVkVSU0lEQUQpIHVuYSBsaWNlbmNpYSBwYXJhIHVzbyBubyBleGNsdXNpdmEsIGxpbWl0YWRhIHkgZ3JhdHVpdGEgc29icmUgbGEgb2JyYSBxdWUgaW50ZWdyYXLDoSBlbCBSZXBvc2l0b3JpbyBJbnN0aXR1Y2lvbmFsIChlbiBhZGVsYW50ZSwgUklVRCksIGRlIGFjdWVyZG8gYSBsYXMgc2lndWllbnRlcyByZWdsYXMsIGxhcyBjdWFsZXMgZGVjbGFybyAoYW1vcykgY29ub2NlciB5IGFjZXB0YXI6CgphKQlFc3RhcsOhIHZpZ2VudGUgYSBwYXJ0aXIgZGUgbGEgZmVjaGEgZW4gcXVlIHNlIGluY2x1eWEgZW4gZWwgUklVRCB5IGhhc3RhIHBvciB1biBwbGF6byBkZSBkaWV6ICgxMCkgQcOxb3MsIHByb3Jyb2dhYmxlIGluZGVmaW5pZGFtZW50ZSBwb3IgZWwgdGllbXBvIHF1ZSBkdXJlIGVsIGRlcmVjaG8gUGF0cmltb25pYWwgZGVsIGF1dG9yOyBsYSBjdWFsIHBvZHLDoSBkYXJzZSBwb3IgdGVybWluYWRhIHByZXZpYSBzb2xpY2l0dWQgYSBMQSBVTklWRVJTSURBRCBwb3IgZXNjcml0byBjb24gdW5hIGFudGVsYWNpw7NuIGRlIGRvcyAoMikgbWVzZXMgYW50ZXMgZGVsIHZlbmNpbWllbnRvIGRlbCBwbGF6byBpbmljaWFsIG8gZWwgZGUgc3UocykgcHLDs3Jyb2dhKHMpLgoKYikJTEEgVU5JVkVSU0lEQUQgcG9kcsOhIHB1YmxpY2FyIGxhIG9icmEgZW4gbGFzIGRpc3RpbnRhcyB2ZXJzaW9uZXMgcmVxdWVyaWRhcyBwb3IgZWwgUklVRCAoZGlnaXRhbCwgaW1wcmVzbywgZWxlY3Ryw7NuaWNvIHUgb3RybyBtZWRpbyBjb25vY2lkbyBvIHBvciBjb25vY2VyKSBMQSBVTklWRVJTSURBRCBubyBzZXLDoSByZXNwb25zYWJsZSBlbiBlbCBldmVudG8gcXVlIGVsIGRvY3VtZW50byBhcGFyZXpjYSByZWZlcmVuY2lhZG8gZW4gbW90b3JlcyBkZSBiw7pzcXVlZGEgbyByZXBvc2l0b3Jpb3MgZGlmZXJlbnRlcyBhbCBSSVVELCB1bmEgdmV6IGVsKG9zKSBhdXRvcihlcykgc29saWNpdGVuIHN1IGVsaW1pbmFjacOzbiBkZWwgUklVRCwgZGFkbyBxdWUgbGEgbWlzbWEgc2Vyw6EgcHVibGljYWRhIGVuIEludGVybmV0LgoKYykJTGEgYXV0b3JpemFjacOzbiBzZSBoYWNlIGEgdMOtdHVsbyBncmF0dWl0bywgcG9yIGxvIHRhbnRvLCBsb3MgYXV0b3JlcyByZW51bmNpYW4gYSByZWNpYmlyIGJlbmVmaWNpbyBhbGd1bm8gcG9yIGxhIHB1YmxpY2FjacOzbiwgZGlzdHJpYnVjacOzbiwgY29tdW5pY2FjacOzbiBww7pibGljYSB5IGN1YWxxdWllciBvdHJvIHVzbyBxdWUgc2UgaGFnYSBlbiBsb3MgdMOpcm1pbm9zIGRlIGxhIHByZXNlbnRlIGxpY2VuY2lhIHkgZGUgbGEgbGljZW5jaWEgZGUgdXNvIGNvbiBxdWUgc2UgcHVibGljYSAoQ3JlYXRpdmUgQ29tbW9ucykuCgpkKQlMb3MgY29udGVuaWRvcyBwdWJsaWNhZG9zIGVuIGVsIFJJVUQgc29uIG9icmEocykgb3JpZ2luYWwoZXMpIHNvYnJlIGxhIGN1YWwoZXMpIGVsKG9zKSBhdXRvcihlcykgY29tbyB0aXR1bGFyZXMgZGUgbG9zIGRlcmVjaG9zIGRlIGF1dG9yLCBhc3VtZW4gdG90YWwgcmVzcG9uc2FiaWxpZGFkIHBvciBlbCBjb250ZW5pZG8gZGUgc3Ugb2JyYSBhbnRlIExBIFVOSVZFUlNJREFEIHkgYW50ZSB0ZXJjZXJvcy4gRW4gdG9kbyBjYXNvIExBIFVOSVZFUlNJREFEIHNlIGNvbXByb21ldGUgYSBpbmRpY2FyIHNpZW1wcmUgbGEgYXV0b3LDrWEgaW5jbHV5ZW5kbyBlbCBub21icmUgZGVsIGF1dG9yIHkgbGEgZmVjaGEgZGUgcHVibGljYWNpw7NuLgoKZSkJTEEgVU5JVkVSU0lEQUQgcG9kcsOhIGluY2x1aXIgbGEgb2JyYSBlbiBsb3Mgw61uZGljZXMgeSBidXNjYWRvcmVzIHF1ZSBlc3RpbWVuIG5lY2VzYXJpb3MgcGFyYSBtYXhpbWl6YXIgbGEgdmlzaWJpbGlkYWQgZWwgdXNvIHkgZWwgaW1wYWN0byBkZSBsYSBwcm9kdWNjacOzbiBjaWVudMOtZmljYSwgYXJ0w61zdGljYSB5IGFjYWTDqW1pY2EgZW4gbGEgY29tdW5pZGFkIGxvY2FsLCBuYWNpb25hbCBvIGludGVybmFjaW9uYWwuCgoKZikJTEEgVU5JVkVSU0lEQUQgcG9kcsOhIGNvbnZlcnRpciBsYSBvYnJhIGEgY3VhbHF1aWVyIG1lZGlvIG8gZm9ybWF0byBjb24gZWwgZmluIGRlIHN1IHByZXNlcnZhY2nDs24gZW4gZWwgdGllbXBvIHF1ZSBsYSBwcmVzZW50ZSBsaWNlbmNpYSB5IGxhIGRlIHN1cyBwcsOzcnJvZ2FzLgoKCkNvbiBiYXNlIGVuIGxvIGFudGVyaW9yIGF1dG9yaXpvKGFtb3MpLCBhIGZhdm9yIGRlbCBSSVVEIHkgZGUgc3VzIHVzdWFyaW9zLCBsYSBwdWJsaWNhY2nDs24geSBjb25zdWx0YSBkZSBsYSBzaWd1aWVudGUgb2JyYToKClRpdHVsbwoKQXV0b3IgICAgICAgQXBlbGxpZG9zICAgICAgICAgTm9tYnJlcwoKMQoKMgoKMwoKCmcpCUF1dG9yaXpvKGFtb3MpLCBxdWUgbGEgb2JyYSBzZWEgcHVlc3RhIGEgZGlzcG9zaWNpw7NuIGRlbCBww7pibGljbyBlbiBsb3MgdMOpcm1pbm9zIGVzdGFibGVjaWRvcyBlbiBsb3MgbGl0ZXJhbGVzIGFudGVyaW9yZXMsIGJham8gbG9zIGzDrW1pdGVzIGRlZmluaWRvcyBwb3IgTEEgVU5JVkVSU0lEQUQsIGVuIGxhcyDigJxDb25kaWNpb25lcyBkZSB1c28gZGUgZXN0cmljdG8gY3VtcGxpbWllbnRv4oCdIGRlIGxvcyByZWN1cnNvcyBwdWJsaWNhZG9zIGVuIGVsIFJJVUQsIGN1eW8gdGV4dG8gY29tcGxldG8gc2UgcHVlZGUgY29uc3VsdGFyIGVuIGh0dHA6Ly9yZXBvc2l0b3J5LnVkaXN0cml0YWwuZWR1LmNvLwoKaCkJQ29ub3pjbyhjZW1vcykgeSBhY2VwdG8oYW1vcykgcXVlIG90b3JnbyhhbW9zKSB1bmEgbGljZW5jaWEgZXNwZWNpYWwgcGFyYSBwdWJsaWNhY2nDs24gZGUgb2JyYXMgZW4gZWwgUmVwb3NpdG9yaW8gSW5zdGl0dWNpb25hbCBkZSBsYSBVbml2ZXJzaWRhZCBEaXN0cml0YWwgRnJhbmNpc2NvIEpvc8OpIGRlIENhbGRhcywgbGljZW5jaWEgICBkZSBsYSBjdWFsIGhlIChoZW1vcykgb2J0ZW5pZG8gdW5hIGNvcGlhLgoKaSkJTWFuaWZpZXN0byhhbW9zKSBtaSAobnVlc3RybykgdG90YWwgYWN1ZXJkbyBjb24gbGFzIGNvbmRpY2lvbmVzIGRlIHVzbyB5IHB1YmxpY2FjacOzbiBlbiBlbCBSZXBvc2l0b3JpbyBJbnN0aXR1Y2lvbmFsIGRlIGxhIFVuaXZlcnNpZGFkIERpc3RyaXRhbCBGcmFuY2lzY28gSm9zw6kgZGUgQ2FsZGFzIHF1ZSBzZSBkZXNjcmliZW4geSBleHBsaWNhbiBlbiBlbCBwcmVzZW50ZSBkb2N1bWVudG8uCgpqKQlDb25vemNvKGNlbW9zKSBsYSBub3JtYXRpdmlkYWQgaW50ZXJuYSBkZSAgTEEgVU5JVkVSU0lEQUQ7IGVuIGNvbmNyZXRvLCBlbCBBY3VlcmRvIDAwNCBkZSAyMDEyIGRlbCBDU1UsIEFjdWVyZG8gMDIzIGRlIDIwMTIgZGVsIENTVSBzb2JyZSBQb2zDrXRpY2EgRWRpdG9yaWFsLCBBY3VlcmRvIDAyNiAgZGVsIDMxIGRlIGp1bGlvIGRlIDIwMTIgc29icmUgZWwgcHJvY2VkaW1pZW50byBwYXJhIGxhIHB1YmxpY2FjacOzbiBkZSB0ZXNpcyBkZSBwb3N0Z3JhZG8gZGUgbG9zIGVzdHVkaWFudGVzIGRlIGxhIFVuaXZlcnNpZGFkIERpc3RyaXRhbCBGcmFuY2lzY28gSm9zw6kgZGUgQ2FsZGFzLCAgQWN1ZXJkbyAwMzAgZGVsIDAzIGRlIGRpY2llbWJyZSBkZSAyMDEzIHBvciBtZWRpbyBkZWwgY3VhbCBzZSBjcmVhIGVsIFJlcG9zaXRvcmlvIEluc3RpdHVjaW9uYWwgZGUgbGEgVW5pdmVyc2lkYWQgRGlzdHJpdGFsIEZyYW5jaXNjbyBKb3PDqSBkZSBDYWxkYXMsIEFjdWVyZG8gMDM4IGRlIDIwMTUgMjAxNSDigJxwb3IgZWwgY3VhbCBzZSBtb2RpZmljYSBlbCBBY3VlcmRvIDAzMSBkZSAyMDE0IGRlIDIwMTQgcXVlIHJlZ2xhbWVudGEgZWwgdHJhYmFqbyBkZSBncmFkbyBwYXJhIGxvcyBlc3R1ZGlhbnRlcyBkZSBwcmVncmFkbyBkZSBsYSBVbml2ZXJzaWRhZCBEaXN0cml0YWwgRnJhbmNpc2NvIEpvc8OpIGRlIENhbGRhcyB5IHNlIGRpY3RhbiBvdHJhcyBkaXJlY3RyaWNlc+KAnSB5IGxhcyBkZW3DoXMgbm9ybWFzIGNvbmNvcmRhbnRlIHkgY29tcGxlbWVudGFyaWFzIHF1ZSByaWdlbiBhbCByZXNwZWN0bywgZXNwZWNpYWxtZW50ZSBsYSBsZXkgMjMgZGUgMTk4MiwgbGEgbGV5IDQ0IGRlIDE5OTMgeSBsYSBkZWNpc2nDs24gQW5kaW5hIDM1MSBkZSAxOTkzLiBFc3RvcyBkb2N1bWVudG9zIHBvZHLDoW4gc2VyIGNvbnN1bHRhZG9zIHkgZGVzY2FyZ2Fkb3MgZW4gZWwgcG9ydGFsIHdlYiBkZSBsYSBiaWJsaW90ZWNhIGh0dHA6Ly9zaXN0ZW1hZGViaWJsaW90ZWNhcy51ZGlzdHJpdGFsLmVkdS5jby8KCmspCUFjZXB0byhhbW9zKSBxdWUgTEEgVU5JVkVSU0lEQUQgbm8gc2UgcmVzcG9uc2FiaWxpemEgcG9yIGxhcyBpbmZyYWNjaW9uZXMgYSBsYSBwcm9waWVkYWQgaW50ZWxlY3R1YWwgbyBEZXJlY2hvcyBkZSBBdXRvciBjYXVzYWRhcyBwb3IgbG9zIHRpdHVsYXJlcyBkZSBsYSBwcmVzZW50ZSBMaWNlbmNpYSB5IGRlY2xhcmFtb3MgcXVlIG1hbnRlbmRyw6kgKGVtb3MpIGluZGVtbmUgYSBMQSBVTklWRVJTSURBRCBwb3IgbGFzIHJlY2xhbWFjaW9uZXMgbGVnYWxlcyBkZSBjdWFscXVpZXIgdGlwbyBxdWUgbGxlZ2FyZW4gYSBwcmVzZW50YXJzZSBwb3IgdmlvbGFjacOzbiBkZSBkZXJlY2hvcyBhIGxhIHByb3BpZWRhZCBpbnRlbGVjdHVhbCBvIGRlIEF1dG9yIHJlbGFjaW9uYWRvcyBjb24gbG9zIGRvY3VtZW50b3MgcmVnaXN0cmFkb3MgZW4gZWwgUklVRC4KCmwpCUVsIChsb3MpIGF1dG9yKGVzKSBtYW5pZmllc3RhKG1vcykgcXVlIGxhIG9icmEgb2JqZXRvIGRlIGxhIHByZXNlbnRlIGF1dG9yaXphY2nDs24gZXMgb3JpZ2luYWwsIGRlIGV4Y2x1c2l2YSBhdXRvcsOtYSwgeSBzZSByZWFsaXrDsyBzaW4gdmlvbGFyIG8gdXN1cnBhciBkZXJlY2hvcyBkZSBhdXRvciBkZSB0ZXJjZXJvczsgZGUgdGFsIHN1ZXJ0ZSwgZW4gY2FzbyBkZSBwcmVzZW50YXJzZSBjdWFscXVpZXIgcmVjbGFtYWNpw7NuIG8gYWNjacOzbiBwb3IgcGFydGUgZGUgdW4gdGVyY2VybyBlbiBjdWFudG8gYSBsb3MgZGVyZWNob3MgZGUgYXV0b3Igc29icmUgbGEgb2JyYSwgZWwgKGxvcykgZXN0dWRpYW50ZShzKSDigJMgYXV0b3IoZXMpIGFzdW1pcsOhKG4pIHRvZGEgbGEgcmVzcG9uc2FiaWxpZGFkIHkgc2FsZHLDoShuKSBlbiBkZWZlbnNhIGRlIGxvcyBkZXJlY2hvcyBhcXXDrSBhdXRvcml6YWRvcy4gUGFyYSB0b2RvcyBsb3MgZWZlY3RvcywgTEEgVU5JVkVSU0lEQUQgYWN0w7phIGNvbW8gdW4gdGVyY2VybyBkZSBidWVuYSBmZS4KCgptKQlFbCAobG9zKSBhdXRvcihlcykgbWFuaWZpZXN0YShtb3MpIHF1ZSBjb25vemNvKGNlbW9zKSBsYSBhdXRvbm9tw61hIHkgbG9zIGRlcmVjaG9zLCBxdWUgcG9zZWUobW9zKSBzb2JyZSBsYSBvYnJhIHksIGNvbW8gdGFsLCBlcyAoc29tb3MpIHJlc3BvbnNhYmxlKHMpIGRlbCBhbGNhbmNlIGp1csOtZGljbyB5IGxlZ2FsLCBkZSBlc2NvZ2VyIGxhIG9wY2nDs24gZGUgbGEgcHVibGljYWNpw7NuIG8gZGUgcmVzdHJpY2Npw7NuIGRlIGxhIHB1YmxpY2FjacOzbiBkZWwgZG9jdW1lbnRvIHJlZ2lzdHJhZG8gZW4gZWwgUklVRC4KCgoKCgoKU0kgRUwgRE9DVU1FTlRPIFNFIEJBU0EgRU4gVU4gVFJBQkFKTyBRVUUgSEEgU0lETyBQQVRST0NJTkFETyBPIEFQT1lBRE8gUE9SIFVOQSBBR0VOQ0lBIE8gVU5BIE9SR0FOSVpBQ0nDk04sIENPTiBFWENFUENJw5NOIERFIExBIFVOSVZFUlNJREFEIERJU1RSSVRBTCBGUkFOQ0lTQ08gSk9TRSBERSBDQUxEQVMsIExPUyBBVVRPUkVTIEdBUkFOVElaQU4gUVVFIFNFIEhBIENVTVBMSURPIENPTiBMT1MKREVSRUNIT1MgWSBPQkxJR0FDSU9ORVMgUkVRVUVSSURPUyBQT1IgRUwgUkVTUEVDVElWTyBDT05UUkFUTyBPIEFDVUVSRE8uCgoKCgoKCgoKCgoKCgoKCgoKCgoKCkVuIGNvbnN0YW5jaWEgZGUgbG8gYW50ZXJpb3IsIGZpcm1vKGFtb3MpIGVsIHByZXNlbnRlIGRvY3VtZW50bywgZW4gbGEgY2l1ZGFkIGRlIEJvZ290w6EsIEQuQy4sIGEgbG9zCgoKRklSTUEgREUgTE9TIFRJVFVMQVJFUyBERSBERVJFQ0hPUyBERSBBVVRPUgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fICAgQy5DLiBOby4gX19fX19fX19fX19fX19fX19fCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18gICBDLkMuIE5vLiBfX19fX19fX19fX19fX19fX18KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyAgIEMuQy4gTm8uIF9fX19fX19fX19fX19fX19fXwoKCgpDb3JyZW8gRWxlY3Ryw7NuaWNvIEluc3RpdHVjaW9uYWwgZGVsIChkZSBsb3MpIEF1dG9yKGVzKToKCkF1dG9yCSAgICAgIENvcnJlbyBFbGVjdHLDs25pY28KCjEKCjIKCjMKCk5vbWJyZSBkZSBEaXJlY3RvcihlcykgZGUgR3JhZG86CgoxCgoyCgozCgpOb21icmUgRmFjdWx0YWQgeSBQcm95ZWN0byBDdXJyaWN1bGFyOgoKRmFjdWx0YWQJUHJveWVjdG8gQ3VycmljdWxhcgoKCgoKCgoKCk5vdGE6IEVuIGNhc28gcXVlIG5vIGVzdMOpIGRlIGFjdWVyZG8gY29uIGxhcyBjb25kaWNpb25lcyBkZSBsYSBwcmVzZW50ZSBsaWNlbmNpYSwgeSBtYW5pZmllc3RlIGFsZ3VuYSByZXN0cmljY2nDs24gc29icmUgbGEgb2JyYSwganVzdGlmaXF1ZSBsb3MgbW90aXZvcyBwb3IgbG9zIGN1YWxlcyBlbCBkb2N1bWVudG8geSBzdXMgYW5leG9zIG5vIHB1ZWRlbiBzZXIgcHVibGljYWRvcyBlbiBlbCBSZXBvc2l0b3JpbyBJbnN0aXR1Y2lvbmFsIGRlIGxhIFVuaXZlcnNpZGFkIERpc3RyaXRhbCBGcmFuY2lzY28gSm9zw6kgZGUgQ2FsZGFzIFJJVUQuCgoKU2kgcmVxdWllcmUgbcOhcyBlc3BhY2lvLCBwdWVkZSBhbmV4YXIgdW5hIGNvcGlhIHNpbWlsYXIgYSBlc3RhIGhvamEK