Detección automática de victima con cuerpo parcialmente obstruido utilizando Kinect.

La detección de objetos es un problema fundamental en la visión artificial, en la actualidad existen diversas técnicas para resolver este problema. Sistemas automáticos de reconocimiento y métodos de extracción de características son soluciones para localizar un objeto de una imagen. El análisis aut...

Full description

Autores:
Tipo de recurso:
Trabajo de grado de pregrado
Fecha de publicación:
2016
Institución:
Universidad Distrital Francisco José de Caldas
Repositorio:
RIUD: repositorio U. Distrital
Idioma:
spa
OAI Identifier:
oai:repository.udistrital.edu.co:11349/4656
Acceso en línea:
http://hdl.handle.net/11349/4656
Palabra clave:
Kinect
Matlab
correlación
mapa de profundidad
Kinect
Matlab
correlation
depth map
Rights
License
Atribución-NoComercial-SinDerivadas 4.0 Internacional
id UDISTRITA2_aab1e03f14b0c817652312a4f1c4509b
oai_identifier_str oai:repository.udistrital.edu.co:11349/4656
network_acronym_str UDISTRITA2
network_name_str RIUD: repositorio U. Distrital
repository_id_str
dc.title.spa.fl_str_mv Detección automática de victima con cuerpo parcialmente obstruido utilizando Kinect.
dc.title.titleenglish.spa.fl_str_mv Automatic detection of victim with partially obstructed body using Kinect.
title Detección automática de victima con cuerpo parcialmente obstruido utilizando Kinect.
spellingShingle Detección automática de victima con cuerpo parcialmente obstruido utilizando Kinect.
Kinect
Matlab
correlación
mapa de profundidad
Kinect
Matlab
correlation
depth map
title_short Detección automática de victima con cuerpo parcialmente obstruido utilizando Kinect.
title_full Detección automática de victima con cuerpo parcialmente obstruido utilizando Kinect.
title_fullStr Detección automática de victima con cuerpo parcialmente obstruido utilizando Kinect.
title_full_unstemmed Detección automática de victima con cuerpo parcialmente obstruido utilizando Kinect.
title_sort Detección automática de victima con cuerpo parcialmente obstruido utilizando Kinect.
dc.contributor.advisor.spa.fl_str_mv Perez Pereira, Miguel Ricardo
dc.subject.spa.fl_str_mv Kinect
Matlab
correlación
mapa de profundidad
topic Kinect
Matlab
correlación
mapa de profundidad
Kinect
Matlab
correlation
depth map
dc.subject.keyword.spa.fl_str_mv Kinect
Matlab
correlation
depth map
description La detección de objetos es un problema fundamental en la visión artificial, en la actualidad existen diversas técnicas para resolver este problema. Sistemas automáticos de reconocimiento y métodos de extracción de características son soluciones para localizar un objeto de una imagen. El análisis automático de imágenes utiliza diferentes sensores para interpretar el escenario y las características que desea extraer. Estos sensores más conocidos como cámaras, existen de diferentes tipos y para cada aplicación. El rastreo de personas es una de las aplicaciones más comunes en la visión artificial, donde hay diferentes métodos y algoritmos para identificarlas. Estos métodos y algoritmos están más enfocados en identificar personas de pie porque es lo más común en casi todas las situaciones, pero un cuerpo acostado no es normal llevarlo al estudio, pero en casos de algunas catástrofes naturales donde es de vital importancia rescatar personas o en el peor de los casos sacar cadáveres, estos cuerpos normalmente están atrapados en la oscuridad dentro de escombros y acostados. Todos estos aspectos son también de estudio donde se necesita una herramienta que trabaje en la oscuridad y que detecte cuerpos acostados, una herramienta que puede ayudar a solucionar este problema es el Kinect. El sensor Kinect es un herramienta de visión artificial que se utiliza normalmente para los videojuegos, más exactamente para el Xbox pero en los últimos años se lanzó una versión para computadoras a través del sistema operativo Windows, para que los desarrolladores puedan crear proyectos y se amplié el rango de usuarios a los que pretenden llegar. Hoy en día ya hay una base de datos con proyectos implementados con Kinect lo que facilita la investigación y desarrollo. El Kinect cuenta con un proyector de laser infrarrojo y un par de cámaras, estos captores son sensores de imágenes CMOS, uno es una cámara a color RGB y el otro también es una cámara pero este detecta los reflejos del haz infrarrojo. [1], [2] Los algoritmos que ya trae en la programación es el reconocimiento del esqueleto el cual es el que más se utiliza, pero el cuerpo de la persona tiene que estar de pie o sentado, este proyecto pretende brindar una solución, de algún caso de que el cuerpo no se encuentre en la posición por defecto si no que se encuentre acostado y que se pueda visualizar alguna parte del cuerpo, debido a que se pueden dar algunos escenarios con estas características, esta aplicación puede ser de gran ayuda en algunos escenarios de catástrofes naturales. Debido a esto, se logró implementar un sistema para detectar un cuerpo en posición acostada y parcialmente obstruido, utilizando técnicas como la correlación cruzada y normalizada, proporcionando una solución en este tipo de escenarios.
publishDate 2016
dc.date.accessioned.none.fl_str_mv 2016-12-19T16:24:14Z
dc.date.available.none.fl_str_mv 2016-12-19T16:24:14Z
dc.date.created.spa.fl_str_mv 2016-05-06
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/4656
url http://hdl.handle.net/11349/4656
dc.language.iso.spa.fl_str_mv spa
language spa
dc.rights.*.fl_str_mv Atribución-NoComercial-SinDerivadas 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 Atribución-NoComercial-SinDerivadas 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 http://repository.udistrital.edu.co/bitstream/11349/4656/3/UribeBermudezJuanCarlos2016.pdf.jpg
http://repository.udistrital.edu.co/bitstream/11349/4656/1/UribeBermudezJuanCarlos2016.pdf
http://repository.udistrital.edu.co/bitstream/11349/4656/2/license.txt
bitstream.checksum.fl_str_mv c72344f42b6d209739b00ccf758e1bb0
4b3e841024baa48e71b3955b1f323ee7
b204d61d4cc8bf0ee3a2b0e84c5755dd
bitstream.checksumAlgorithm.fl_str_mv MD5
MD5
MD5
repository.name.fl_str_mv Repositorio Institucional Universidad Distrital - RIUD
repository.mail.fl_str_mv repositorio@udistrital.edu.co
_version_ 1803712484672012288
spelling Perez Pereira, Miguel RicardoUribe Bermudez, Juan Carlos2016-12-19T16:24:14Z2016-12-19T16:24:14Z2016-05-06http://hdl.handle.net/11349/4656La detección de objetos es un problema fundamental en la visión artificial, en la actualidad existen diversas técnicas para resolver este problema. Sistemas automáticos de reconocimiento y métodos de extracción de características son soluciones para localizar un objeto de una imagen. El análisis automático de imágenes utiliza diferentes sensores para interpretar el escenario y las características que desea extraer. Estos sensores más conocidos como cámaras, existen de diferentes tipos y para cada aplicación. El rastreo de personas es una de las aplicaciones más comunes en la visión artificial, donde hay diferentes métodos y algoritmos para identificarlas. Estos métodos y algoritmos están más enfocados en identificar personas de pie porque es lo más común en casi todas las situaciones, pero un cuerpo acostado no es normal llevarlo al estudio, pero en casos de algunas catástrofes naturales donde es de vital importancia rescatar personas o en el peor de los casos sacar cadáveres, estos cuerpos normalmente están atrapados en la oscuridad dentro de escombros y acostados. Todos estos aspectos son también de estudio donde se necesita una herramienta que trabaje en la oscuridad y que detecte cuerpos acostados, una herramienta que puede ayudar a solucionar este problema es el Kinect. El sensor Kinect es un herramienta de visión artificial que se utiliza normalmente para los videojuegos, más exactamente para el Xbox pero en los últimos años se lanzó una versión para computadoras a través del sistema operativo Windows, para que los desarrolladores puedan crear proyectos y se amplié el rango de usuarios a los que pretenden llegar. Hoy en día ya hay una base de datos con proyectos implementados con Kinect lo que facilita la investigación y desarrollo. El Kinect cuenta con un proyector de laser infrarrojo y un par de cámaras, estos captores son sensores de imágenes CMOS, uno es una cámara a color RGB y el otro también es una cámara pero este detecta los reflejos del haz infrarrojo. [1], [2] Los algoritmos que ya trae en la programación es el reconocimiento del esqueleto el cual es el que más se utiliza, pero el cuerpo de la persona tiene que estar de pie o sentado, este proyecto pretende brindar una solución, de algún caso de que el cuerpo no se encuentre en la posición por defecto si no que se encuentre acostado y que se pueda visualizar alguna parte del cuerpo, debido a que se pueden dar algunos escenarios con estas características, esta aplicación puede ser de gran ayuda en algunos escenarios de catástrofes naturales. Debido a esto, se logró implementar un sistema para detectar un cuerpo en posición acostada y parcialmente obstruido, utilizando técnicas como la correlación cruzada y normalizada, proporcionando una solución en este tipo de escenarios.Object detection is a fundamental problem in computer vision, at present there are several techniques to solve this problem. Automatic recognition systems and feature extraction methods are solutions for locating an object in an image. The automatic image analysis uses different sensors to interpret the stage and the features you want to extract. These more known sensors such as cameras, are of different types and for each application. Tracking people is one of the most common applications in machine vision, where there are different methods and algorithms to identify them. These methods and algorithms are more focused on identifying people standing because it is most common in almost all situations, but lying body is not normal to take it to the studio, but in cases of some natural disasters which is vital rescue people or the worst out bodies, these bodies are usually trapped in the dark and lying in rubble. All these aspects are also study where a tool that works in the dark and detect lying bodies, a tool that can help solve this problem is the Kinect is required. The Kinect sensor is a tool of artificial vision that is usually used for video games, more precisely for the Xbox but in recent years a version for computers was launched through the Windows operating system, so that developers can create projects and expand the range of users who intend to reach. Today there is already a database with projects implemented with Kinect which facilitates research and development. The Kinect has an infrared laser projector and a pair of cameras, these captors are CMOS image sensors, one is a color RGB camera and the other is also a camera but this detects reflections of the infrared beam. [1], [2] The algorithms that already brings in programming is the recognition of the skeleton which is the most widely used, but the body of the person must be standing or sitting, this project aims to provide a solution, in a case the body it is not in the default position if you are lying and you can visualize any part of the body, because it may give some scenarios with these features, this application can be helpful in some scenarios of natural disasters. Because of this, it was possible to implement a system to detect a body lying position and partially obstructed, using techniques such as cross-correlation and normalized, providing a solution in this type of scenario.pdfspaAtribución-NoComercial-SinDerivadas 4.0 Internacionalhttp://creativecommons.org/licenses/by-nc-nd/4.0/Abierto (Texto Completo)http://purl.org/coar/access_right/c_abf2KinectMatlabcorrelaciónmapa de profundidadKinectMatlabcorrelationdepth mapDetección automática de victima con cuerpo parcialmente obstruido utilizando Kinect.Automatic detection of victim with partially obstructed body using Kinect.info:eu-repo/semantics/bachelorThesishttp://purl.org/coar/resource_type/c_7a1fTHUMBNAILUribeBermudezJuanCarlos2016.pdf.jpgUribeBermudezJuanCarlos2016.pdf.jpgIM Thumbnailimage/jpeg4980http://repository.udistrital.edu.co/bitstream/11349/4656/3/UribeBermudezJuanCarlos2016.pdf.jpgc72344f42b6d209739b00ccf758e1bb0MD53open accessORIGINALUribeBermudezJuanCarlos2016.pdfUribeBermudezJuanCarlos2016.pdfapplication/pdf2220871http://repository.udistrital.edu.co/bitstream/11349/4656/1/UribeBermudezJuanCarlos2016.pdf4b3e841024baa48e71b3955b1f323ee7MD51open accessLICENSElicense.txtlicense.txttext/plain; charset=utf-85896http://repository.udistrital.edu.co/bitstream/11349/4656/2/license.txtb204d61d4cc8bf0ee3a2b0e84c5755ddMD52open access11349/4656oai:repository.udistrital.edu.co:11349/46562023-06-13 14:40:53.983open accessRepositorio Institucional Universidad Distrital - RIUDrepositorio@udistrital.edu.coTElDRU5DSUEgWSBBVVRPUklaQUNJw5NOIEVTUEVDSUFMIFBBUkEgUFVCTElDQVIgWSBQRVJNSVRJUiBMQSBDT05TVUxUQSBZIFVTTyAgREUgQ09OVEVOSURPUyBFTiBFTCBSRVBPU0lUT1JJTyBJTlNUSVRVQ0lPTkFMIERFIExBIFVOSVZFUlNJREFEIERJU1RSSVRBTApUw6lybWlub3MgeSBjb25kaWNpb25lcyBkZSB1c28gIHBhcmEgcHVibGljYWNpw7NuIGRlIG9icmFzIGVuIGVsIFJlcG9zaXRvcmlvIEluc3RpdHVjaW9uYWwgZGUgbGEgVW5pdmVyc2lkYWQgRGlzdHJpdGFsIEZyYW5jaXNjbyBKb3PDqSBkZSBDYWxkYXMgUklVRC4KCkNvbW8gdGl0dWxhcihlcykgZGVsKG9zKSBkZXJlY2hvKHMpIGRlIGF1dG9yLCAgY29uZmllcm8gKGVyaW1vcykgYSBsYSBVbml2ZXJzaWRhZCBEaXN0cml0YWwgRnJhbmNpc2NvIEpvc8OpIGRlIENhbGRhcyB1bmEgbGljZW5jaWEgcGFyYSB1c28gIG5vIGV4Y2x1c2l2YSwgbGltaXRhZGEgeSBncmF0dWl0YSBzb2JyZSBsYSBvYnJhIHF1ZSAgaW50ZWdyYXLDoSAgZWwgUmVwb3NpdG9yaW8gSW5zdGl0dWNpb25hbCBkZSBhY3VlcmRvIGEgbGFzIHNpZ3VpZW50ZXMgcmVnbGFzLCAgbGFzIGN1YWxlcyBkZWNsYXJvIChhbW9zKSBjb25vY2VyIHkgYWNlcHRhcjoKCmEpIEVzdGFyw6EgdmlnZW50ZSBhIHBhcnRpciBkZSBsYSBmZWNoYSAgZW4gcXVlIHNlIGluY2x1eWEgIGVuIGVsIFJlcG9zaXRvcmlvIEluc3RpdHVjaW9uYWwgeSBoYXN0YSAgcG9yIHVuIHBsYXpvIGRlICBkaWV6ICgxMCkgIEHDsW9zLCAgcHJvcnJvZ2FibGUgIGluZGVmaW5pZGFtZW50ZSBwb3IgZWwgdGllbXBvIHF1ZSBkdXJlIGVsIGRlcmVjaG8gUGF0cmltb25pYWwgZGVsIGF1dG9yOyAgbGEgY3VhbCBwb2Ryw6EgICBkYXJzZSAgcG9yIHRlcm1pbmFkYSAgcHJldmlhICBzb2xpY2l0dWQgICBhIGxhIFVuaXZlcnNpZGFkIHBvciBlc2NyaXRvIGNvbiB1bmEgYW50ZWxhY2nDs24gZGUgZG9zICgyKSBtZXNlcyBhbnRlcyBkZWwgdmVuY2ltaWVudG8gZGVsIHBsYXpvICBpbmljaWFsIG8gZWwgZGUgc3UocykgcHLDs3Jyb2dhKHMpLiAgCgpiKSBMYSBVbml2ZXJzaWRhZCBEaXN0cml0YWwgRnJhbmNpc2NvIEpvc8OpIGRlIENhbGRhcyBwb2Ryw6EgIHB1YmxpY2FyIGxhIG9icmEgZW4gbGFzIGRpc3RpbnRhcyB2ZXJzaW9uZXMgcmVxdWVyaWRhcyAoZGlnaXRhbCwgaW1wcmVzbywgZWxlY3Ryw7NuaWNvIHUgb3RybyBtZWRpbyBjb25vY2lkbyBvIHBvciBjb25vY2VyKSAgcG9yIGVsIFJlcG9zaXRvcmlvIEluc3RpdHVjaW9uYWwsICBMYSBVbml2ZXJzaWRhZCBubyBzZXLDoSByZXNwb25zYWJsZSBlbiBlbCBldmVudG8gcXVlIGVsICBkb2N1bWVudG8gYXBhcmV6Y2EgcmVmZXJlbmNpYWRvIGVuIG1vdG9yZXMgZGUgYsO6c3F1ZWRhIG8gcmVwb3NpdG9yaW9zICBkaWZlcmVudGVzIGFsIFJlcG9zaXRvcmlvIEluc3RpdHVjaW9uYWwsIHVuYSB2ZXogZWwob3MpIGF1dG9yKGVzKSAgc29saWNpdGVuIHN1IGVsaW1pbmFjacOzbiBkZWwgUmVwb3NpdG9yaW8gZGUgbGEgVW5pdmVyc2lkYWQsIGRhZG8gcXVlICBsYSBtaXNtYSBzZXLDoSBwdWJsaWNhZGEgZW4gIEludGVybmV0LiAKCmMpIExhIGF1dG9yaXphY2nDs24gc2UgaGFjZSBhIHTDrXR1bG8gZ3JhdHVpdG8sIHBvciBsbyB0YW50bywgbG9zIGF1dG9yZXMgcmVudW5jaWFuIGEgcmVjaWJpciBiZW5lZmljaW8gYWxndW5vIHBvciBsYSBwdWJsaWNhY2nDs24sIGRpc3RyaWJ1Y2nDs24sIGNvbXVuaWNhY2nDs24gIHDDumJsaWNhIHkgY3VhbHF1aWVyIG90cm8gdXNvIHF1ZSBzZSBoYWdhIGVuIGxvcyB0w6lybWlub3MgZGUgbGEgcHJlc2VudGUgbGljZW5jaWEgeSBkZSBsYSBsaWNlbmNpYSAgZGUgdXNvIGNvbiBxdWUgc2UgcHVibGljYSAoQ3JlYXRpdmUgQ29tbW9ucykuCgpkKSBMb3MgY29udGVuaWRvcyBwdWJsaWNhZG9zIGVuIGVsIFJlcG9zaXRvcmlvIEluc3RpdHVjaW9uYWwgc29uICBvYnJhKHMpIG9yaWdpbmFsKGVzKSBzb2JyZSBsYSAgY3VhbChlcykgIGVsKG9zKSBhdXRvcihlcykgY29tbyB0aXR1bGFyZXMgZGUgbG9zICBkZXJlY2hvcyBkZSBhdXRvciwgYXN1bWVuIHRvdGFsIHJlc3BvbnNhYmlsaWRhZCBwb3IgZWwgY29udGVuaWRvIGRlIHN1IG9icmEgYW50ZSBsYSBVbml2ZXJzaWRhZCBEaXN0cml0YWwgRnJhbmNpc2NvIEpvc8OpIGRlIENhbGRhcyB5IGFudGUgdGVyY2Vyb3MuIEVuIHRvZG8gY2FzbyBsYSBVbml2ZXJzaWRhZCBGcmFuY2lzY28gSm9zw6kgZGUgQ2FsZGFzIHNlIGNvbXByb21ldGUgYSBpbmRpY2FyIHNpZW1wcmUgbGEgYXV0b3LDrWEgaW5jbHV5ZW5kbyBlbCBub21icmUgZGVsIGF1dG9yIHkgbGEgZmVjaGEgZGUgcHVibGljYWNpw7NuLgoKZSkgTGEgIFVuaXZlcnNpZGFkIERpc3RyaXRhbCBGcmFuY2lzY28gSm9zw6kgZGUgQ2FsZGFzIHBvZHLDoSAgaW5jbHVpciBsYSBvYnJhIGVuIGxvcyDDrW5kaWNlcyB5IGJ1c2NhZG9yZXMgcXVlIGVzdGltZW4gbmVjZXNhcmlvcyBwYXJhIG1heGltaXphciBsYSB2aXNpYmlsaWRhZCBlbCB1c28geSBlbCBpbXBhY3RvIGRlIGxhIHByb2R1Y2Npw7NuIGNpZW50w61maWNhLCBhcnTDrXN0aWNhIHkgYWNhZMOpbWljYSBlbiBsYSBjb211bmlkYWQgbG9jYWwsIG5hY2lvbmFsIG8gaW50ZXJuYWNpb25hbC4gCgpmKSBMYSBVbml2ZXJzaWRhZCBEaXN0cml0YWwgRnJhbmNpc2NvIEpvc8OpIGRlIENhbGRhcyBwb2Ryw6EgY29udmVydGlyIGxhIG9icmEgIGEgY3VhbHF1aWVyIG1lZGlvIG8gZm9ybWF0byBjb24gZWwgZmluICBkZSBzdSBwcmVzZXJ2YWNpw7NuIGVuIGVsIHRpZW1wbyBxdWUgbGEgcHJlc2VudGUgbGljZW5jaWEgeSBsYSBkZSBzdXMgcHLDs3Jyb2dhcy4KQ29uIGJhc2UgZW4gbG8gYW50ZXJpb3IgYXV0b3JpesOzIGxhIHB1YmxpY2FjacOzbiB5IGNvbnN1bHRhIGRlIGxhIG9icmEgIHRpdHVsYWRhIF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KCiBBIGZhdm9yIGRlbCAgUmVwb3NpdG9yaW8gSW5zdGl0dWNpb25hbCBkZSBsYSBVbml2ZXJzaWRhZCBEaXN0cml0YWwgRnJhbmNpc2NvIEpvc8OpIGRlIENhbGRhcyB5ICBkZSBzdXMgdXN1YXJpb3MsICAgY3V5byhzKSAgYXV0b3IoZXMpIHNvbjogCkF1dG9yCUFwZWxsaWRvcwlOb21icmVzCjEJCQoyCQkKMwkJCgphKSBBdXRvcml6byBxdWUgbGEgb2JyYSBzZWEgcHVlc3RhIGEgZGlzcG9zaWNpw7NuIGRlbCBww7pibGljbyBlbiBsb3MgdMOpcm1pbm9zIGF1dG9yaXphZG9zIGVuIGxvcyBsaXRlcmFsZXMgYW50ZXJpb3JlcywgIGJham8gbG9zIGzDrW1pdGVzIGRlZmluaWRvcyBwb3IgbGEgVW5pdmVyc2lkYWQgRGlzdHJpdGFsIEZyYW5jaXNjbyBKb3PDqSBkZSBDYWxkYXMgZW4gbGFzIOKAnENvbmRpY2lvbmVzIGRlIHVzbyBkZSBlc3RyaWN0byBjdW1wbGltaWVudG/igJ0gZGUgbG9zIHJlY3Vyc29zIHB1YmxpY2Fkb3MgZW4gUmVwb3NpdG9yaW8gSW5zdGl0dWNpb25hbCBSSVVELCBjdXlvIHRleHRvIGNvbXBsZXRvIHNlIHB1ZWRlIGNvbnN1bHRhciBlbiBodHRwOi8vcmVwb3NpdG9yeS51ZGlzdHJpdGFsLmVkdS5jby8KCmIpIENvbm96Y28geSBhY2VwdG8gcXVlIG90b3JnbyB1bmEgbGljZW5jaWEgZXNwZWNpYWwgcGFyYSBwdWJsaWNhY2nDs24gZGUgb2JyYXMgZW4gZWwgUmVwb3NpdG9yaW8gSW5zdGl0dWNpb25hbCBkZSBsYSBVbml2ZXJzaWRhZCBEaXN0cml0YWwgRnJhbmNpc2NvIEpvc8OpIGRlIENhbGRhcywgbGljZW5jaWEgICBkZSBsYSBjdWFsIGhlIG9idGVuaWRvIHVuYSBjb3BpYS4KCmMpICBNYW5pZmllc3RvIG1pIHRvdGFsIGFjdWVyZG8gY29uIGxhcyBjb25kaWNpb25lcyBkZSB1c28geSBwdWJsaWNhY2nDs24gZW4gZWwgUmVwb3NpdG9yaW8gSW5zdGl0dWNpb25hbCBkZSBsYSBVbml2ZXJzaWRhZCBEaXN0cml0YWwgRnJhbmNpc2NvIEpvc8OpIGRlIENhbGRhcyBxdWUgc2UgZGVzY3JpYmVuIHkgZXhwbGljYW4gZW4gZWwgcHJlc2VudGUgZG9jdW1lbnRvLgoKZykgUXVlIGNvbm96Y28gICBsYSBub3JtYXRpdmlkYWQgaW50ZXJuYSBkZSBsYSBVbml2ZXJzaWRhZCBEaXN0cml0YWwgRnJhbmNpc2NvIEpvc8OpIGRlIENhbGRhcyByZWxhdGl2byBhIHByb3BpZWRhZCAgaW50ZWxlY3R1YWwgcmVndWxhZGEgcG9yIGVsIEFjdWVyZG8gMDA0IGRlIDIwMTIgZGVsIENTVSwgQWN1ZXJkbyAwMjMgZGUgMjAxMiBkZWwgQ1NVIHNvYnJlIFBvbMOtdGljYSBFZGl0b3JpYWwsIEFjdWVyZG8gMDI2ICBkZWwgMzEgZGUganVsaW8gZGUgMjAxMiBzb2JyZSBlbCBwcm9jZWRpbWllbnRvIHBhcmEgbGEgcHVibGljYWNpw7NuIGRlIHRlc2lzIGRlIHBvc3RncmFkbyBkZSBsb3MgZXN0dWRpYW50ZXMgZGUgbGEgVW5pdmVyc2lkYWQgRGlzdHJpdGFsIEZyYW5jaXNjbyBKb3PDqSBkZSBDYWxkYXMsICBBY3VlcmRvIDAzMCBkZWwgMDMgZGUgZGljaWVtYnJlIGRlIDIwMTMgcG9yIG1lZGlvIGRlbCBjdWFsIHNlIGNyZWEgZWwgUmVwb3NpdG9yaW8gSW5zdGl0dWNpb25hbCBkZSBsYSBVbml2ZXJzaWRhZCBEaXN0cml0YWwgRnJhbmNpc2NvIEpvc8OpIGRlIENhbGRhcyB5IGxhcyBkZW3DoXMgbm9ybWFzIGNvbmNvcmRhbnRlIHkgY29tcGxlbWVudGFyaWFzIHF1ZSByaWdlbiBhbCByZXNwZWN0by4gRXN0b3MgZG9jdW1lbnRvcyBwb2Ryw6FuIHNlciBjb25zdWx0YWRvcyB5IGRlc2NhcmdhZG9zIGVuIGVsIHBvcnRhbCB3ZWIgZGUgbGEgYmlibGlvdGVjYSBodHRwOi8vc2lzdGVtYWRlYmlibGlvdGVjYXMudWRpc3RyaXRhbC5lZHUuY28vICAKClNJIEVMIERPQ1VNRU5UTyBTRSBCQVNBIEVOIFVOIFRSQUJBSk8gUVVFIEhBIFNJRE8gUEFUUk9DSU5BRE8gTyBBUE9ZQURPIFBPUiBVTkEgQUdFTkNJQSBPIFVOQSBPUkdBTklaQUNJw5NOLCBDT04gRVhDRVBDScOTTiBERSBMQSBVTklWRVJTSURBRCBESVNUUklUQUwgRlJBTkNJU0NPIEpPU0UgREUgQ0FMREFTLCBMT1MgQVVUT1JFUyBHQVJBTlRJWkFOIFFVRSBTRSBIQSBDVU1QTElETyBDT04gTE9TIApERVJFQ0hPUyBZIE9CTElHQUNJT05FUyBSRVFVRVJJRE9TIFBPUiBFTCBSRVNQRUNUSVZPIENPTlRSQVRPIE8gQUNVRVJETy4KRW4gY29uc3RhbmNpYSBkZSBsbyBhbnRlcmlvciwgZmlybW8gKGFtb3MpIGVsIHByZXNlbnRlIGRvY3VtZW50byBhIGxvcyAKCkZJUk1BIERFIExPUyBUSVRVTEFSRVMgREUgREVSRUNIT1MgREUgQVVUT1IKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyAgIEMuQy4gTm8uIF9fX19fX19fX19fX19fX19fXwpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18gICBDLkMuIE5vLiBfX19fX19fX19fX19fX19fX18KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fICAgQy5DLiBOby4gX19fX19fX19fX19fX19fX19fCgpDb3JyZW8gRWxlY3Ryw7NuaWNvIEluc3RpdHVjaW9uYWwgZGVsIEF1dG9yIChlcyk6CkF1dG9yCUNvcnJlbyBFbGVjdHLDs25pY28gCjEJCjIJCjMJCgpOb3RhOiBFbiBjYXNvIHF1ZSBubyBlc3TDqSBkZSBhY3VlcmRvIGNvbiBsYXMgY29uZGljaW9uZXMgZGUgbGEgcHJlc2VudGUgbGljZW5jaWEsIGp1c3RpZmlxdWUgbG9zIG1vdGl2b3MgcG9yIGxvcyBjdWFsZXMgZWwgZG9jdW1lbnRvIHkgc3VzIGFuZXhvcyBubyBwdWVkZW4gc2VyIHB1YmxpY2Fkb3MgZW4gZWwgUmVwb3NpdG9yaW8gSW5zdGl0dWNpb25hbCBkZSBsYSBVbml2ZXJzaWRhZCBEaXN0cml0YWwgRnJhbmNpc2NvIEpvc8OpIGRlIENhbGRhcyBSSVVECg==