Implementación de un sistema de predicción de medidas LTE utilizando la tarjeta de desarrollo Zedboard y Machine Learning

Diversas condiciones sobre las que operan las redes móviles LTE visibilizan la necesidad de establecer estrategias que permitan la interpretación de distintas variables que intervienen en su diseño, construcción, despliegue y funcionamiento. Una de estas variables clave dentro del contexto móvil LTE...

Full description

Autores:
Porras Garzón, Nicolás
Gómez Pérez, Helmunt Alberto
Tipo de recurso:
Trabajo de grado de pregrado
Fecha de publicación:
2023
Institución:
Universidad Distrital Francisco José de Caldas
Repositorio:
RIUD: repositorio U. Distrital
Idioma:
spa
OAI Identifier:
oai:repository.udistrital.edu.co:11349/41055
Acceso en línea:
http://hdl.handle.net/11349/41055
Palabra clave:
Estación base
FPGA
LTE
Machine Learning
Modelos predictivos
Python
RSSI
Ingeniería en Telecomunicaciones -- Tesis y disertacioes académicas
Predicción de medidas LTE
Machine Learning en telecomunicaciones
Modelos predictivos en redes móviles
Calidad de señal en LTE
Base station
FPGA
LTE
Machine Learning
Predictive Model
Python
RSSI
Rights
License
Attribution-NonCommercial-NoDerivatives 4.0 Internacional
id UDISTRITA2_894b5b47011825d50c64f4e691919608
oai_identifier_str oai:repository.udistrital.edu.co:11349/41055
network_acronym_str UDISTRITA2
network_name_str RIUD: repositorio U. Distrital
repository_id_str
dc.title.none.fl_str_mv Implementación de un sistema de predicción de medidas LTE utilizando la tarjeta de desarrollo Zedboard y Machine Learning
dc.title.titleenglish.none.fl_str_mv mplementation of an LTE measurement prediction system using the Zedboard development board and Machine Learning
title Implementación de un sistema de predicción de medidas LTE utilizando la tarjeta de desarrollo Zedboard y Machine Learning
spellingShingle Implementación de un sistema de predicción de medidas LTE utilizando la tarjeta de desarrollo Zedboard y Machine Learning
Estación base
FPGA
LTE
Machine Learning
Modelos predictivos
Python
RSSI
Ingeniería en Telecomunicaciones -- Tesis y disertacioes académicas
Predicción de medidas LTE
Machine Learning en telecomunicaciones
Modelos predictivos en redes móviles
Calidad de señal en LTE
Base station
FPGA
LTE
Machine Learning
Predictive Model
Python
RSSI
title_short Implementación de un sistema de predicción de medidas LTE utilizando la tarjeta de desarrollo Zedboard y Machine Learning
title_full Implementación de un sistema de predicción de medidas LTE utilizando la tarjeta de desarrollo Zedboard y Machine Learning
title_fullStr Implementación de un sistema de predicción de medidas LTE utilizando la tarjeta de desarrollo Zedboard y Machine Learning
title_full_unstemmed Implementación de un sistema de predicción de medidas LTE utilizando la tarjeta de desarrollo Zedboard y Machine Learning
title_sort Implementación de un sistema de predicción de medidas LTE utilizando la tarjeta de desarrollo Zedboard y Machine Learning
dc.creator.fl_str_mv Porras Garzón, Nicolás
Gómez Pérez, Helmunt Alberto
dc.contributor.advisor.none.fl_str_mv Pedraza Martínez, Luis Fernando
dc.contributor.author.none.fl_str_mv Porras Garzón, Nicolás
Gómez Pérez, Helmunt Alberto
dc.subject.none.fl_str_mv Estación base
FPGA
LTE
Machine Learning
Modelos predictivos
Python
RSSI
topic Estación base
FPGA
LTE
Machine Learning
Modelos predictivos
Python
RSSI
Ingeniería en Telecomunicaciones -- Tesis y disertacioes académicas
Predicción de medidas LTE
Machine Learning en telecomunicaciones
Modelos predictivos en redes móviles
Calidad de señal en LTE
Base station
FPGA
LTE
Machine Learning
Predictive Model
Python
RSSI
dc.subject.lemb.none.fl_str_mv Ingeniería en Telecomunicaciones -- Tesis y disertacioes académicas
Predicción de medidas LTE
Machine Learning en telecomunicaciones
Modelos predictivos en redes móviles
Calidad de señal en LTE
dc.subject.keyword.none.fl_str_mv Base station
FPGA
LTE
Machine Learning
Predictive Model
Python
RSSI
description Diversas condiciones sobre las que operan las redes móviles LTE visibilizan la necesidad de establecer estrategias que permitan la interpretación de distintas variables que intervienen en su diseño, construcción, despliegue y funcionamiento. Una de estas variables clave dentro del contexto móvil LTE son las medidas de relación de potencia y calidad de señal, RSSI, RSRP y RSRQ. Los principales métodos usados para cuantificar estas medidas en un entorno físico, más allá de la medición en sitio, pueden ser los modelos de propagación, sin embargo, además de la construcción matemática que significa su uso e implementación, no son realmente herramientas que pronostiquen o predigan el comportamiento de la señal en un entorno específico, mostrando claramente una necesidad que no se ha suplido adecuadamente en esta área. En esta perspectiva, una opción viable a la predicción de estas medidas son los modelos predictivos, pero si además del problema de predecir propiamente, se suma el contexto de trabajo con equipos móviles y entornos al aire libre, tiene sentido encaminar estos modelos de predicción en un dispositivo que ofrezca portabilidad de alguna forma. Las tarjetas reprogramables tipo FPGA o los sistemas embebidos, proveen de una cantidad de recursos de procesamiento moderada que, en aplicaciones como las requeridas para este problema, resultan ser suficientes para implementar modelos predictivos. Es así como ZedBoard, en conjunto de un sistema operativo dedicado que soporte lenguajes de programación especializados en Machine Learning como Python, es un candidato adecuado para el prototipado de código en este campo. Se plantea entonces el diseño y ejecución en un ambiente interactivo de código Python, como Jupyter Notebook, el desarrollo de tres modelos predictivos basándose en los algoritmos de Regresión lineal, Regresión Polinomial, y Bosques Aleatorios, respectivamente, usando como referencia las mediciones reales tomadas de una estación base LTE sobre un terminal móvil. Adicionalmente, se desarrolla un modelo predictivo basado en Redes Neuronales Recurrentes fuera de la tarjeta ZedBoard, esto tiene como finalidad, en primer lugar, diversificar las alternativas en cuanto algoritmos Machine Learning usados; y también, sustentar técnicamente que la efectividad y utilidad que tiene el uso de otros modelos en embebidos que aparentemente no tienen la potencia necesaria en este tipo de aplicaciones, son también capaces de ofrecer soluciones completas en un área en el que no suelen ser considerados. Al finalizar el diseño y despliegue sobre los datos de prueba, las predicciones hechas por cada modelo son concluyentes y reafirman la posibilidad real que existe para implementar modelos predictivos basados en técnicas Machine Learning en sistemas embebidos, y dentro del contexto de las telecomunicaciones móviles. Para esta problemática en concreto, el modelo de Bosques Aleatorios mostró ser muy superior y adaptarse adecuadamente a las características propias de las variables LTE analizadas con un margen de error inferior al 6% en cualquier caso, incluso por encima del modelo Red Neuronal Recurrente que no fue ejecutado en ZedBoard, permitiendo deducir que existen otras opciones en relación con el pronóstico de señales móviles y ofreciendo nuevas alternativas a los métodos clásicos de planificación, dimensionamiento y caracterización de una red celular LTE.
publishDate 2023
dc.date.created.none.fl_str_mv 2023-10-13
dc.date.accessioned.none.fl_str_mv 2024-09-25T20:25:49Z
dc.date.available.none.fl_str_mv 2024-09-25T20:25:49Z
dc.type.spa.fl_str_mv bachelorThesis
dc.type.degree.spa.fl_str_mv Monografía
dc.type.driver.none.fl_str_mv info:eu-repo/semantics/bachelorThesis
dc.type.coar.none.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/41055
url http://hdl.handle.net/11349/41055
dc.language.iso.none.fl_str_mv spa
language spa
dc.rights.*.fl_str_mv Attribution-NonCommercial-NoDerivatives 4.0 Internacional
Attribution-NonCommercial-NoDerivatives 4.0 Internacional
Attribution-NonCommercial-NoDerivatives 4.0 Internacional
Attribution-NonCommercial-NoDerivatives 4.0 Internacional
Attribution-NonCommercial-NoDerivatives 4.0 Internacional
Attribution-NonCommercial-NoDerivatives 4.0 Internacional
dc.rights.coar.fl_str_mv http://purl.org/coar/access_right/c_abf2
dc.rights.uri.*.fl_str_mv http://creativecommons.org/licenses/by-nc-nd/4.0/
dc.rights.acceso.spa.fl_str_mv Abierto (Texto Completo)
rights_invalid_str_mv Attribution-NonCommercial-NoDerivatives 4.0 Internacional
http://creativecommons.org/licenses/by-nc-nd/4.0/
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/936b6c6c-f43e-45da-ab88-fa290b971cc2/download
https://repository.udistrital.edu.co/bitstreams/aace2e93-23d4-41de-b21a-83aa2f9f01ed/download
https://repository.udistrital.edu.co/bitstreams/78704f71-7c77-4ed2-a993-901ab5634640/download
https://repository.udistrital.edu.co/bitstreams/3918b394-9c65-4dfe-beb9-c1f675946e45/download
https://repository.udistrital.edu.co/bitstreams/8400333e-21e1-4e16-9431-59367b2cb587/download
https://repository.udistrital.edu.co/bitstreams/9ebba810-8330-4728-8c9d-c6eb73d39510/download
bitstream.checksum.fl_str_mv 978cc2bbffe2d6a9d05c480941a0ec7d
95fa1b4c0dce8343042736f85d7ac5be
997daf6c648c962d566d7b082dac908d
4460e5956bc1d1639be9ae6146a50347
100df9b67f319031a33538946d0a28bc
085189b130a7d19c299d1de916a78af3
bitstream.checksumAlgorithm.fl_str_mv MD5
MD5
MD5
MD5
MD5
MD5
repository.name.fl_str_mv Repositorio Universidad Distrital
repository.mail.fl_str_mv repositorio@udistrital.edu.co
_version_ 1828164806766493696
spelling Pedraza Martínez, Luis FernandoPorras Garzón, NicolásGómez Pérez, Helmunt Alberto2024-09-25T20:25:49Z2024-09-25T20:25:49Z2023-10-13http://hdl.handle.net/11349/41055Diversas condiciones sobre las que operan las redes móviles LTE visibilizan la necesidad de establecer estrategias que permitan la interpretación de distintas variables que intervienen en su diseño, construcción, despliegue y funcionamiento. Una de estas variables clave dentro del contexto móvil LTE son las medidas de relación de potencia y calidad de señal, RSSI, RSRP y RSRQ. Los principales métodos usados para cuantificar estas medidas en un entorno físico, más allá de la medición en sitio, pueden ser los modelos de propagación, sin embargo, además de la construcción matemática que significa su uso e implementación, no son realmente herramientas que pronostiquen o predigan el comportamiento de la señal en un entorno específico, mostrando claramente una necesidad que no se ha suplido adecuadamente en esta área. En esta perspectiva, una opción viable a la predicción de estas medidas son los modelos predictivos, pero si además del problema de predecir propiamente, se suma el contexto de trabajo con equipos móviles y entornos al aire libre, tiene sentido encaminar estos modelos de predicción en un dispositivo que ofrezca portabilidad de alguna forma. Las tarjetas reprogramables tipo FPGA o los sistemas embebidos, proveen de una cantidad de recursos de procesamiento moderada que, en aplicaciones como las requeridas para este problema, resultan ser suficientes para implementar modelos predictivos. Es así como ZedBoard, en conjunto de un sistema operativo dedicado que soporte lenguajes de programación especializados en Machine Learning como Python, es un candidato adecuado para el prototipado de código en este campo. Se plantea entonces el diseño y ejecución en un ambiente interactivo de código Python, como Jupyter Notebook, el desarrollo de tres modelos predictivos basándose en los algoritmos de Regresión lineal, Regresión Polinomial, y Bosques Aleatorios, respectivamente, usando como referencia las mediciones reales tomadas de una estación base LTE sobre un terminal móvil. Adicionalmente, se desarrolla un modelo predictivo basado en Redes Neuronales Recurrentes fuera de la tarjeta ZedBoard, esto tiene como finalidad, en primer lugar, diversificar las alternativas en cuanto algoritmos Machine Learning usados; y también, sustentar técnicamente que la efectividad y utilidad que tiene el uso de otros modelos en embebidos que aparentemente no tienen la potencia necesaria en este tipo de aplicaciones, son también capaces de ofrecer soluciones completas en un área en el que no suelen ser considerados. Al finalizar el diseño y despliegue sobre los datos de prueba, las predicciones hechas por cada modelo son concluyentes y reafirman la posibilidad real que existe para implementar modelos predictivos basados en técnicas Machine Learning en sistemas embebidos, y dentro del contexto de las telecomunicaciones móviles. Para esta problemática en concreto, el modelo de Bosques Aleatorios mostró ser muy superior y adaptarse adecuadamente a las características propias de las variables LTE analizadas con un margen de error inferior al 6% en cualquier caso, incluso por encima del modelo Red Neuronal Recurrente que no fue ejecutado en ZedBoard, permitiendo deducir que existen otras opciones en relación con el pronóstico de señales móviles y ofreciendo nuevas alternativas a los métodos clásicos de planificación, dimensionamiento y caracterización de una red celular LTE.The different conditions under which LTE mobile networks operate make it necessary to establish strategies that allow the interpretation of different variables involved in their design, construction, deployment and operation. One of these key variables within the LTE mobile context are the power ratio and signal quality measurements, RSSI, RSRP and RSRQ. The main methods used to quantify these measurements in a physical environment, beyond on-site measurement, may be propagation models, however, in addition to the mathematical construction involved in their use and implementation, they are not really tools that forecast or predict signal behavior in a specific environment, clearly showing a need that has not been adequately met in this area. In this perspective, a viable option to the prediction of these measurements are predictive models, but if in addition to the problem of predicting itself, the context of working with mobile equipment and outdoor environments is added, it makes sense to route these prediction models in a device that offers portability in some way. FPGA-type reprogrammable boards or embedded systems provide a moderate amount of processing resources that, in applications such as those required for this problem, turn out to be sufficient to implement predictive models. Thus, ZedBoard, together with a dedicated operating system that supports programming languages specialized in Machine Learning such as Python, is a suitable candidate for code prototyping in this field. We propose then the design and execution in an interactive Python code environment, such as Jupyter Notebook, the development of three predictive models based on the algorithms of Linear Regression, Polynomial Regression, and Random Forests, respectively, using as reference the real measurements taken from an LTE base station on a mobile terminal. Additionally, a predictive model based on Recurrent Neural Networks is developed outside the ZedBoard. The purpose of this is, firstly, to diversify the alternatives in terms of Machine Learning algorithms used; and also, to technically support that the effectiveness and usefulness of the use of other embedded models that apparently do not have the necessary power in this type of applications, are also capable of offering complete solutions in an area in which they are not usually considered. At the end of the design and deployment on the test data, the predictions made by each model are conclusive and reaffirm the real possibility of implementing predictive models based on Machine Learning techniques in embedded systems, and within the context of mobile telecommunications. For this specific problem, the Random Forests model proved to be far superior and adequately adapted to the characteristics of the LTE variables analyzed with an error margin of less than 6% in any case, even above the Recurrent Neural Network model that was not executed in ZedBoard, allowing to deduce that there are other options in relation to the prediction of mobile signals and offering new alternatives to the classical methods of planning, dimensioning and characterization of an LTE cellular network.pdfspaAttribution-NonCommercial-NoDerivatives 4.0 InternacionalAttribution-NonCommercial-NoDerivatives 4.0 InternacionalAttribution-NonCommercial-NoDerivatives 4.0 InternacionalAttribution-NonCommercial-NoDerivatives 4.0 InternacionalAttribution-NonCommercial-NoDerivatives 4.0 InternacionalAttribution-NonCommercial-NoDerivatives 4.0 Internacionalhttp://creativecommons.org/licenses/by-nc-nd/4.0/Abierto (Texto Completo)http://purl.org/coar/access_right/c_abf2Estación baseFPGALTEMachine LearningModelos predictivosPythonRSSIIngeniería en Telecomunicaciones -- Tesis y disertacioes académicasPredicción de medidas LTEMachine Learning en telecomunicacionesModelos predictivos en redes móvilesCalidad de señal en LTEBase stationFPGALTEMachine LearningPredictive ModelPythonRSSIImplementación de un sistema de predicción de medidas LTE utilizando la tarjeta de desarrollo Zedboard y Machine Learningmplementation of an LTE measurement prediction system using the Zedboard development board and Machine LearningbachelorThesisMonografíainfo:eu-repo/semantics/bachelorThesishttp://purl.org/coar/resource_type/c_7a1fORIGINALPorrasGarzonNicolas2023.pdfPorrasGarzonNicolas2023.pdfTrabajo de gradoapplication/pdf2804884https://repository.udistrital.edu.co/bitstreams/936b6c6c-f43e-45da-ab88-fa290b971cc2/download978cc2bbffe2d6a9d05c480941a0ec7dMD56Licencia y autorización de los autores para publicarLicencia y autorización de los autores para publicarLicencia de uso y publicacionapplication/pdf478489https://repository.udistrital.edu.co/bitstreams/aace2e93-23d4-41de-b21a-83aa2f9f01ed/download95fa1b4c0dce8343042736f85d7ac5beMD54LICENSElicense.txtlicense.txttext/plain; charset=utf-87167https://repository.udistrital.edu.co/bitstreams/78704f71-7c77-4ed2-a993-901ab5634640/download997daf6c648c962d566d7b082dac908dMD58CC-LICENSElicense_rdflicense_rdfapplication/rdf+xml; charset=utf-8805https://repository.udistrital.edu.co/bitstreams/3918b394-9c65-4dfe-beb9-c1f675946e45/download4460e5956bc1d1639be9ae6146a50347MD57THUMBNAILPorrasGarzonNicolas2023.pdf.jpgPorrasGarzonNicolas2023.pdf.jpgIM Thumbnailimage/jpeg4124https://repository.udistrital.edu.co/bitstreams/8400333e-21e1-4e16-9431-59367b2cb587/download100df9b67f319031a33538946d0a28bcMD59Licencia y autorización de los autores para publicar.jpgLicencia y autorización de los autores para publicar.jpgIM Thumbnailimage/jpeg12102https://repository.udistrital.edu.co/bitstreams/9ebba810-8330-4728-8c9d-c6eb73d39510/download085189b130a7d19c299d1de916a78af3MD51011349/41055oai:repository.udistrital.edu.co:11349/410552024-10-30 01:01:09.883http://creativecommons.org/licenses/by-nc-nd/4.0/Attribution-NonCommercial-NoDerivatives 4.0 Internacionalopen.accesshttps://repository.udistrital.edu.coRepositorio Universidad Distritalrepositorio@udistrital.edu.coTElDRU5DSUEgWSBBVVRPUklaQUNJw5NOIEVTUEVDSUFMIFBBUkEgUFVCTElDQVIgWSBQRVJNSVRJUiBMQSBDT05TVUxUQSBZIFVTTyBERSBDT05URU5JRE9TIEVOIEVMIFJFUE9TSVRPUklPIElOU1RJVFVDSU9OQUwgREUgTEEgVU5JVkVSU0lEQUQgRElTVFJJVEFMCgpUw6lybWlub3MgeSBjb25kaWNpb25lcyBkZSB1c28gcGFyYSBwdWJsaWNhY2nDs24gZGUgb2JyYXMgZW4gZWwgUmVwb3NpdG9yaW8gSW5zdGl0dWNpb25hbCBkZSBsYSBVbml2ZXJzaWRhZCBEaXN0cml0YWwgRnJhbmNpc2NvIEpvc8OpIGRlIENhbGRhcyAoUklVRCkKCkNvbW8gdGl0dWxhcihlcykgZGVsKG9zKSBkZXJlY2hvKHMpIGRlIGF1dG9yLCBjb25maWVybyAoZXJpbW9zKSBhIGxhIFVuaXZlcnNpZGFkIERpc3RyaXRhbCBGcmFuY2lzY28gSm9zw6kgZGUgQ2FsZGFzIChlbiBhZGVsYW50ZSwgTEEgVU5JVkVSU0lEQUQpIHVuYSBsaWNlbmNpYSBwYXJhIHVzbyBubyBleGNsdXNpdmEsIGxpbWl0YWRhIHkgZ3JhdHVpdGEgc29icmUgbGEgb2JyYSBxdWUgaW50ZWdyYXLDoSBlbCBSZXBvc2l0b3JpbyBJbnN0aXR1Y2lvbmFsIChlbiBhZGVsYW50ZSwgUklVRCksIGRlIGFjdWVyZG8gYSBsYXMgc2lndWllbnRlcyByZWdsYXMsIGxhcyBjdWFsZXMgZGVjbGFybyAoYW1vcykgY29ub2NlciB5IGFjZXB0YXI6CgphKQlFc3RhcsOhIHZpZ2VudGUgYSBwYXJ0aXIgZGUgbGEgZmVjaGEgZW4gcXVlIHNlIGluY2x1eWEgZW4gZWwgUklVRCB5IGhhc3RhIHBvciB1biBwbGF6byBkZSBkaWV6ICgxMCkgQcOxb3MsIHByb3Jyb2dhYmxlIGluZGVmaW5pZGFtZW50ZSBwb3IgZWwgdGllbXBvIHF1ZSBkdXJlIGVsIGRlcmVjaG8gUGF0cmltb25pYWwgZGVsIGF1dG9yOyBsYSBjdWFsIHBvZHLDoSBkYXJzZSBwb3IgdGVybWluYWRhIHByZXZpYSBzb2xpY2l0dWQgYSBMQSBVTklWRVJTSURBRCBwb3IgZXNjcml0byBjb24gdW5hIGFudGVsYWNpw7NuIGRlIGRvcyAoMikgbWVzZXMgYW50ZXMgZGVsIHZlbmNpbWllbnRvIGRlbCBwbGF6byBpbmljaWFsIG8gZWwgZGUgc3UocykgcHLDs3Jyb2dhKHMpLgoKYikJTEEgVU5JVkVSU0lEQUQgcG9kcsOhIHB1YmxpY2FyIGxhIG9icmEgZW4gbGFzIGRpc3RpbnRhcyB2ZXJzaW9uZXMgcmVxdWVyaWRhcyBwb3IgZWwgUklVRCAoZGlnaXRhbCwgaW1wcmVzbywgZWxlY3Ryw7NuaWNvIHUgb3RybyBtZWRpbyBjb25vY2lkbyBvIHBvciBjb25vY2VyKSBMQSBVTklWRVJTSURBRCBubyBzZXLDoSByZXNwb25zYWJsZSBlbiBlbCBldmVudG8gcXVlIGVsIGRvY3VtZW50byBhcGFyZXpjYSByZWZlcmVuY2lhZG8gZW4gbW90b3JlcyBkZSBiw7pzcXVlZGEgbyByZXBvc2l0b3Jpb3MgZGlmZXJlbnRlcyBhbCBSSVVELCB1bmEgdmV6IGVsKG9zKSBhdXRvcihlcykgc29saWNpdGVuIHN1IGVsaW1pbmFjacOzbiBkZWwgUklVRCwgZGFkbyBxdWUgbGEgbWlzbWEgc2Vyw6EgcHVibGljYWRhIGVuIEludGVybmV0LgoKYykJTGEgYXV0b3JpemFjacOzbiBzZSBoYWNlIGEgdMOtdHVsbyBncmF0dWl0bywgcG9yIGxvIHRhbnRvLCBsb3MgYXV0b3JlcyByZW51bmNpYW4gYSByZWNpYmlyIGJlbmVmaWNpbyBhbGd1bm8gcG9yIGxhIHB1YmxpY2FjacOzbiwgZGlzdHJpYnVjacOzbiwgY29tdW5pY2FjacOzbiBww7pibGljYSB5IGN1YWxxdWllciBvdHJvIHVzbyBxdWUgc2UgaGFnYSBlbiBsb3MgdMOpcm1pbm9zIGRlIGxhIHByZXNlbnRlIGxpY2VuY2lhIHkgZGUgbGEgbGljZW5jaWEgZGUgdXNvIGNvbiBxdWUgc2UgcHVibGljYSAoQ3JlYXRpdmUgQ29tbW9ucykuCgpkKQlMb3MgY29udGVuaWRvcyBwdWJsaWNhZG9zIGVuIGVsIFJJVUQgc29uIG9icmEocykgb3JpZ2luYWwoZXMpIHNvYnJlIGxhIGN1YWwoZXMpIGVsKG9zKSBhdXRvcihlcykgY29tbyB0aXR1bGFyZXMgZGUgbG9zIGRlcmVjaG9zIGRlIGF1dG9yLCBhc3VtZW4gdG90YWwgcmVzcG9uc2FiaWxpZGFkIHBvciBlbCBjb250ZW5pZG8gZGUgc3Ugb2JyYSBhbnRlIExBIFVOSVZFUlNJREFEIHkgYW50ZSB0ZXJjZXJvcy4gRW4gdG9kbyBjYXNvIExBIFVOSVZFUlNJREFEIHNlIGNvbXByb21ldGUgYSBpbmRpY2FyIHNpZW1wcmUgbGEgYXV0b3LDrWEgaW5jbHV5ZW5kbyBlbCBub21icmUgZGVsIGF1dG9yIHkgbGEgZmVjaGEgZGUgcHVibGljYWNpw7NuLgoKZSkJTEEgVU5JVkVSU0lEQUQgcG9kcsOhIGluY2x1aXIgbGEgb2JyYSBlbiBsb3Mgw61uZGljZXMgeSBidXNjYWRvcmVzIHF1ZSBlc3RpbWVuIG5lY2VzYXJpb3MgcGFyYSBtYXhpbWl6YXIgbGEgdmlzaWJpbGlkYWQgZWwgdXNvIHkgZWwgaW1wYWN0byBkZSBsYSBwcm9kdWNjacOzbiBjaWVudMOtZmljYSwgYXJ0w61zdGljYSB5IGFjYWTDqW1pY2EgZW4gbGEgY29tdW5pZGFkIGxvY2FsLCBuYWNpb25hbCBvIGludGVybmFjaW9uYWwuCgoKZikJTEEgVU5JVkVSU0lEQUQgcG9kcsOhIGNvbnZlcnRpciBsYSBvYnJhIGEgY3VhbHF1aWVyIG1lZGlvIG8gZm9ybWF0byBjb24gZWwgZmluIGRlIHN1IHByZXNlcnZhY2nDs24gZW4gZWwgdGllbXBvIHF1ZSBsYSBwcmVzZW50ZSBsaWNlbmNpYSB5IGxhIGRlIHN1cyBwcsOzcnJvZ2FzLgoKCkNvbiBiYXNlIGVuIGxvIGFudGVyaW9yIGF1dG9yaXpvKGFtb3MpLCBhIGZhdm9yIGRlbCBSSVVEIHkgZGUgc3VzIHVzdWFyaW9zLCBsYSBwdWJsaWNhY2nDs24geSBjb25zdWx0YSBkZSBsYSBzaWd1aWVudGUgb2JyYToKClRpdHVsbwoKQXV0b3IgICAgICAgQXBlbGxpZG9zICAgICAgICAgTm9tYnJlcwoKMQoKMgoKMwoKCmcpCUF1dG9yaXpvKGFtb3MpLCBxdWUgbGEgb2JyYSBzZWEgcHVlc3RhIGEgZGlzcG9zaWNpw7NuIGRlbCBww7pibGljbyBlbiBsb3MgdMOpcm1pbm9zIGVzdGFibGVjaWRvcyBlbiBsb3MgbGl0ZXJhbGVzIGFudGVyaW9yZXMsIGJham8gbG9zIGzDrW1pdGVzIGRlZmluaWRvcyBwb3IgTEEgVU5JVkVSU0lEQUQsIGVuIGxhcyDigJxDb25kaWNpb25lcyBkZSB1c28gZGUgZXN0cmljdG8gY3VtcGxpbWllbnRv4oCdIGRlIGxvcyByZWN1cnNvcyBwdWJsaWNhZG9zIGVuIGVsIFJJVUQsIGN1eW8gdGV4dG8gY29tcGxldG8gc2UgcHVlZGUgY29uc3VsdGFyIGVuIGh0dHA6Ly9yZXBvc2l0b3J5LnVkaXN0cml0YWwuZWR1LmNvLwoKaCkJQ29ub3pjbyhjZW1vcykgeSBhY2VwdG8oYW1vcykgcXVlIG90b3JnbyhhbW9zKSB1bmEgbGljZW5jaWEgZXNwZWNpYWwgcGFyYSBwdWJsaWNhY2nDs24gZGUgb2JyYXMgZW4gZWwgUmVwb3NpdG9yaW8gSW5zdGl0dWNpb25hbCBkZSBsYSBVbml2ZXJzaWRhZCBEaXN0cml0YWwgRnJhbmNpc2NvIEpvc8OpIGRlIENhbGRhcywgbGljZW5jaWEgICBkZSBsYSBjdWFsIGhlIChoZW1vcykgb2J0ZW5pZG8gdW5hIGNvcGlhLgoKaSkJTWFuaWZpZXN0byhhbW9zKSBtaSAobnVlc3RybykgdG90YWwgYWN1ZXJkbyBjb24gbGFzIGNvbmRpY2lvbmVzIGRlIHVzbyB5IHB1YmxpY2FjacOzbiBlbiBlbCBSZXBvc2l0b3JpbyBJbnN0aXR1Y2lvbmFsIGRlIGxhIFVuaXZlcnNpZGFkIERpc3RyaXRhbCBGcmFuY2lzY28gSm9zw6kgZGUgQ2FsZGFzIHF1ZSBzZSBkZXNjcmliZW4geSBleHBsaWNhbiBlbiBlbCBwcmVzZW50ZSBkb2N1bWVudG8uCgpqKQlDb25vemNvKGNlbW9zKSBsYSBub3JtYXRpdmlkYWQgaW50ZXJuYSBkZSAgTEEgVU5JVkVSU0lEQUQ7IGVuIGNvbmNyZXRvLCBlbCBBY3VlcmRvIDAwNCBkZSAyMDEyIGRlbCBDU1UsIEFjdWVyZG8gMDIzIGRlIDIwMTIgZGVsIENTVSBzb2JyZSBQb2zDrXRpY2EgRWRpdG9yaWFsLCBBY3VlcmRvIDAyNiAgZGVsIDMxIGRlIGp1bGlvIGRlIDIwMTIgc29icmUgZWwgcHJvY2VkaW1pZW50byBwYXJhIGxhIHB1YmxpY2FjacOzbiBkZSB0ZXNpcyBkZSBwb3N0Z3JhZG8gZGUgbG9zIGVzdHVkaWFudGVzIGRlIGxhIFVuaXZlcnNpZGFkIERpc3RyaXRhbCBGcmFuY2lzY28gSm9zw6kgZGUgQ2FsZGFzLCAgQWN1ZXJkbyAwMzAgZGVsIDAzIGRlIGRpY2llbWJyZSBkZSAyMDEzIHBvciBtZWRpbyBkZWwgY3VhbCBzZSBjcmVhIGVsIFJlcG9zaXRvcmlvIEluc3RpdHVjaW9uYWwgZGUgbGEgVW5pdmVyc2lkYWQgRGlzdHJpdGFsIEZyYW5jaXNjbyBKb3PDqSBkZSBDYWxkYXMsIEFjdWVyZG8gMDM4IGRlIDIwMTUgMjAxNSDigJxwb3IgZWwgY3VhbCBzZSBtb2RpZmljYSBlbCBBY3VlcmRvIDAzMSBkZSAyMDE0IGRlIDIwMTQgcXVlIHJlZ2xhbWVudGEgZWwgdHJhYmFqbyBkZSBncmFkbyBwYXJhIGxvcyBlc3R1ZGlhbnRlcyBkZSBwcmVncmFkbyBkZSBsYSBVbml2ZXJzaWRhZCBEaXN0cml0YWwgRnJhbmNpc2NvIEpvc8OpIGRlIENhbGRhcyB5IHNlIGRpY3RhbiBvdHJhcyBkaXJlY3RyaWNlc+KAnSB5IGxhcyBkZW3DoXMgbm9ybWFzIGNvbmNvcmRhbnRlIHkgY29tcGxlbWVudGFyaWFzIHF1ZSByaWdlbiBhbCByZXNwZWN0bywgZXNwZWNpYWxtZW50ZSBsYSBsZXkgMjMgZGUgMTk4MiwgbGEgbGV5IDQ0IGRlIDE5OTMgeSBsYSBkZWNpc2nDs24gQW5kaW5hIDM1MSBkZSAxOTkzLiBFc3RvcyBkb2N1bWVudG9zIHBvZHLDoW4gc2VyIGNvbnN1bHRhZG9zIHkgZGVzY2FyZ2Fkb3MgZW4gZWwgcG9ydGFsIHdlYiBkZSBsYSBiaWJsaW90ZWNhIGh0dHA6Ly9zaXN0ZW1hZGViaWJsaW90ZWNhcy51ZGlzdHJpdGFsLmVkdS5jby8KCmspCUFjZXB0byhhbW9zKSBxdWUgTEEgVU5JVkVSU0lEQUQgbm8gc2UgcmVzcG9uc2FiaWxpemEgcG9yIGxhcyBpbmZyYWNjaW9uZXMgYSBsYSBwcm9waWVkYWQgaW50ZWxlY3R1YWwgbyBEZXJlY2hvcyBkZSBBdXRvciBjYXVzYWRhcyBwb3IgbG9zIHRpdHVsYXJlcyBkZSBsYSBwcmVzZW50ZSBMaWNlbmNpYSB5IGRlY2xhcmFtb3MgcXVlIG1hbnRlbmRyw6kgKGVtb3MpIGluZGVtbmUgYSBMQSBVTklWRVJTSURBRCBwb3IgbGFzIHJlY2xhbWFjaW9uZXMgbGVnYWxlcyBkZSBjdWFscXVpZXIgdGlwbyBxdWUgbGxlZ2FyZW4gYSBwcmVzZW50YXJzZSBwb3IgdmlvbGFjacOzbiBkZSBkZXJlY2hvcyBhIGxhIHByb3BpZWRhZCBpbnRlbGVjdHVhbCBvIGRlIEF1dG9yIHJlbGFjaW9uYWRvcyBjb24gbG9zIGRvY3VtZW50b3MgcmVnaXN0cmFkb3MgZW4gZWwgUklVRC4KCmwpCUVsIChsb3MpIGF1dG9yKGVzKSBtYW5pZmllc3RhKG1vcykgcXVlIGxhIG9icmEgb2JqZXRvIGRlIGxhIHByZXNlbnRlIGF1dG9yaXphY2nDs24gZXMgb3JpZ2luYWwsIGRlIGV4Y2x1c2l2YSBhdXRvcsOtYSwgeSBzZSByZWFsaXrDsyBzaW4gdmlvbGFyIG8gdXN1cnBhciBkZXJlY2hvcyBkZSBhdXRvciBkZSB0ZXJjZXJvczsgZGUgdGFsIHN1ZXJ0ZSwgZW4gY2FzbyBkZSBwcmVzZW50YXJzZSBjdWFscXVpZXIgcmVjbGFtYWNpw7NuIG8gYWNjacOzbiBwb3IgcGFydGUgZGUgdW4gdGVyY2VybyBlbiBjdWFudG8gYSBsb3MgZGVyZWNob3MgZGUgYXV0b3Igc29icmUgbGEgb2JyYSwgZWwgKGxvcykgZXN0dWRpYW50ZShzKSDigJMgYXV0b3IoZXMpIGFzdW1pcsOhKG4pIHRvZGEgbGEgcmVzcG9uc2FiaWxpZGFkIHkgc2FsZHLDoShuKSBlbiBkZWZlbnNhIGRlIGxvcyBkZXJlY2hvcyBhcXXDrSBhdXRvcml6YWRvcy4gUGFyYSB0b2RvcyBsb3MgZWZlY3RvcywgTEEgVU5JVkVSU0lEQUQgYWN0w7phIGNvbW8gdW4gdGVyY2VybyBkZSBidWVuYSBmZS4KCgptKQlFbCAobG9zKSBhdXRvcihlcykgbWFuaWZpZXN0YShtb3MpIHF1ZSBjb25vemNvKGNlbW9zKSBsYSBhdXRvbm9tw61hIHkgbG9zIGRlcmVjaG9zLCBxdWUgcG9zZWUobW9zKSBzb2JyZSBsYSBvYnJhIHksIGNvbW8gdGFsLCBlcyAoc29tb3MpIHJlc3BvbnNhYmxlKHMpIGRlbCBhbGNhbmNlIGp1csOtZGljbyB5IGxlZ2FsLCBkZSBlc2NvZ2VyIGxhIG9wY2nDs24gZGUgbGEgcHVibGljYWNpw7NuIG8gZGUgcmVzdHJpY2Npw7NuIGRlIGxhIHB1YmxpY2FjacOzbiBkZWwgZG9jdW1lbnRvIHJlZ2lzdHJhZG8gZW4gZWwgUklVRC4KCgoKCgoKU0kgRUwgRE9DVU1FTlRPIFNFIEJBU0EgRU4gVU4gVFJBQkFKTyBRVUUgSEEgU0lETyBQQVRST0NJTkFETyBPIEFQT1lBRE8gUE9SIFVOQSBBR0VOQ0lBIE8gVU5BIE9SR0FOSVpBQ0nDk04sIENPTiBFWENFUENJw5NOIERFIExBIFVOSVZFUlNJREFEIERJU1RSSVRBTCBGUkFOQ0lTQ08gSk9TRSBERSBDQUxEQVMsIExPUyBBVVRPUkVTIEdBUkFOVElaQU4gUVVFIFNFIEhBIENVTVBMSURPIENPTiBMT1MKREVSRUNIT1MgWSBPQkxJR0FDSU9ORVMgUkVRVUVSSURPUyBQT1IgRUwgUkVTUEVDVElWTyBDT05UUkFUTyBPIEFDVUVSRE8uCgoKCgoKCgoKCgoKCgoKCgoKCgoKCkVuIGNvbnN0YW5jaWEgZGUgbG8gYW50ZXJpb3IsIGZpcm1vKGFtb3MpIGVsIHByZXNlbnRlIGRvY3VtZW50bywgZW4gbGEgY2l1ZGFkIGRlIEJvZ290w6EsIEQuQy4sIGEgbG9zCgoKRklSTUEgREUgTE9TIFRJVFVMQVJFUyBERSBERVJFQ0hPUyBERSBBVVRPUgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fICAgQy5DLiBOby4gX19fX19fX19fX19fX19fX19fCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18gICBDLkMuIE5vLiBfX19fX19fX19fX19fX19fX18KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyAgIEMuQy4gTm8uIF9fX19fX19fX19fX19fX19fXwoKCgpDb3JyZW8gRWxlY3Ryw7NuaWNvIEluc3RpdHVjaW9uYWwgZGVsIChkZSBsb3MpIEF1dG9yKGVzKToKCkF1dG9yCSAgICAgIENvcnJlbyBFbGVjdHLDs25pY28KCjEKCjIKCjMKCk5vbWJyZSBkZSBEaXJlY3RvcihlcykgZGUgR3JhZG86CgoxCgoyCgozCgpOb21icmUgRmFjdWx0YWQgeSBQcm95ZWN0byBDdXJyaWN1bGFyOgoKRmFjdWx0YWQJUHJveWVjdG8gQ3VycmljdWxhcgoKCgoKCgoKCk5vdGE6IEVuIGNhc28gcXVlIG5vIGVzdMOpIGRlIGFjdWVyZG8gY29uIGxhcyBjb25kaWNpb25lcyBkZSBsYSBwcmVzZW50ZSBsaWNlbmNpYSwgeSBtYW5pZmllc3RlIGFsZ3VuYSByZXN0cmljY2nDs24gc29icmUgbGEgb2JyYSwganVzdGlmaXF1ZSBsb3MgbW90aXZvcyBwb3IgbG9zIGN1YWxlcyBlbCBkb2N1bWVudG8geSBzdXMgYW5leG9zIG5vIHB1ZWRlbiBzZXIgcHVibGljYWRvcyBlbiBlbCBSZXBvc2l0b3JpbyBJbnN0aXR1Y2lvbmFsIGRlIGxhIFVuaXZlcnNpZGFkIERpc3RyaXRhbCBGcmFuY2lzY28gSm9zw6kgZGUgQ2FsZGFzIFJJVUQuCgoKU2kgcmVxdWllcmUgbcOhcyBlc3BhY2lvLCBwdWVkZSBhbmV4YXIgdW5hIGNvcGlhIHNpbWlsYXIgYSBlc3RhIGhvamEK