Clasificación del estado superficial de pavimentos rígidos con imágenes digitales y técnicas de inteligencia artificial
A pesar de que existen diferentes métodos de inteligencia artificial para la detección y clasificación de los daños de la infraestructura vial, se evidencia la ausencia de investigación en la gestión y mantenimiento de pavimentos rígidos. La presente investigación se enfoca en establecer un modelo d...
- Autores:
- 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/35545
- Acceso en línea:
- http://hdl.handle.net/11349/35545
- Palabra clave:
- Clasificación de imágenes
Aprendizaje profundo
Daños en pavimentos
Firmes
Fisuras
Imagen digital
Imagen de pavimentos
Índice de condición del pavimento (PCI)
Lógica difusa
Mantenimiento vial
Patologías
Pavimento
Python
Procesamiento de imágenes
Redes neuronales artificiales
Rehabilitación vial
Ingeniería Civil -- Tesis y disertaciones académicas
Inteligencia artificial
Infraestructura vial
Pavimentos rígidos
Redes neuronales convolucionales
Image classification
Deep learning
Damage to pavements
Firm
Fissures
Digital image
Image of pavements
Pavement condition index (PCI)
Diffuse logic
Road maintenance
Pathologies
Pavement
Python
Image processing
Artificial neural networks
Road rehabilitation
- Rights
- License
- CC0 1.0 Universal
id |
UDISTRITA2_a408246a9dae52261625f9fd23dcd35c |
---|---|
oai_identifier_str |
oai:repository.udistrital.edu.co:11349/35545 |
network_acronym_str |
UDISTRITA2 |
network_name_str |
RIUD: repositorio U. Distrital |
repository_id_str |
|
dc.title.spa.fl_str_mv |
Clasificación del estado superficial de pavimentos rígidos con imágenes digitales y técnicas de inteligencia artificial |
dc.title.titleenglish.spa.fl_str_mv |
Classification of the surface state of rigid pavements with digital images and artificial intelligence techniques |
title |
Clasificación del estado superficial de pavimentos rígidos con imágenes digitales y técnicas de inteligencia artificial |
spellingShingle |
Clasificación del estado superficial de pavimentos rígidos con imágenes digitales y técnicas de inteligencia artificial Clasificación de imágenes Aprendizaje profundo Daños en pavimentos Firmes Fisuras Imagen digital Imagen de pavimentos Índice de condición del pavimento (PCI) Lógica difusa Mantenimiento vial Patologías Pavimento Python Procesamiento de imágenes Redes neuronales artificiales Rehabilitación vial Ingeniería Civil -- Tesis y disertaciones académicas Inteligencia artificial Infraestructura vial Pavimentos rígidos Redes neuronales convolucionales Image classification Deep learning Damage to pavements Firm Fissures Digital image Image of pavements Pavement condition index (PCI) Diffuse logic Road maintenance Pathologies Pavement Python Image processing Artificial neural networks Road rehabilitation |
title_short |
Clasificación del estado superficial de pavimentos rígidos con imágenes digitales y técnicas de inteligencia artificial |
title_full |
Clasificación del estado superficial de pavimentos rígidos con imágenes digitales y técnicas de inteligencia artificial |
title_fullStr |
Clasificación del estado superficial de pavimentos rígidos con imágenes digitales y técnicas de inteligencia artificial |
title_full_unstemmed |
Clasificación del estado superficial de pavimentos rígidos con imágenes digitales y técnicas de inteligencia artificial |
title_sort |
Clasificación del estado superficial de pavimentos rígidos con imágenes digitales y técnicas de inteligencia artificial |
dc.contributor.advisor.none.fl_str_mv |
Fernández Gómez, Wilmar Darío |
dc.contributor.orcid.spa.fl_str_mv |
0000-0001-6339-8050 |
dc.contributor.orcid.none.fl_str_mv |
Fernández Gómez, Wilmar Darío [0000-0001-6339-8050] |
dc.subject.spa.fl_str_mv |
Clasificación de imágenes Aprendizaje profundo Daños en pavimentos Firmes Fisuras Imagen digital Imagen de pavimentos Índice de condición del pavimento (PCI) Lógica difusa Mantenimiento vial Patologías Pavimento Python Procesamiento de imágenes Redes neuronales artificiales Rehabilitación vial |
topic |
Clasificación de imágenes Aprendizaje profundo Daños en pavimentos Firmes Fisuras Imagen digital Imagen de pavimentos Índice de condición del pavimento (PCI) Lógica difusa Mantenimiento vial Patologías Pavimento Python Procesamiento de imágenes Redes neuronales artificiales Rehabilitación vial Ingeniería Civil -- Tesis y disertaciones académicas Inteligencia artificial Infraestructura vial Pavimentos rígidos Redes neuronales convolucionales Image classification Deep learning Damage to pavements Firm Fissures Digital image Image of pavements Pavement condition index (PCI) Diffuse logic Road maintenance Pathologies Pavement Python Image processing Artificial neural networks Road rehabilitation |
dc.subject.lemb.spa.fl_str_mv |
Ingeniería Civil -- Tesis y disertaciones académicas Inteligencia artificial Infraestructura vial Pavimentos rígidos Redes neuronales convolucionales |
dc.subject.keyword.spa.fl_str_mv |
Image classification Deep learning Damage to pavements Firm Fissures Digital image Image of pavements Pavement condition index (PCI) Diffuse logic Road maintenance Pathologies Pavement Python Image processing Artificial neural networks Road rehabilitation |
description |
A pesar de que existen diferentes métodos de inteligencia artificial para la detección y clasificación de los daños de la infraestructura vial, se evidencia la ausencia de investigación en la gestión y mantenimiento de pavimentos rígidos. La presente investigación se enfoca en establecer un modelo de inteligencia artificial para la evaluación de deterioros del pavimento rígido por medio de la estimación del índice de serviciabilidad presente (PSI). Se desarrolló un algoritmo de inteligencia artificial, el que procesa datos de imágenes para obtener un valor del índice. Esta investigación se abordó mediante 3 ejes: Se captaron 69 vídeos de diferentes sectores de Bogotá D.C, de los que se obtuvieron una biblioteca de imágenes de 5046 diferentes estados de pavimento rígido. Las cuales fueron clasificadas en grupos de 200 imágenes, por un grupo de Ingenieros con experiencia en la gestión de pavimentos y permitieron alimentar las redes neuronales convolucionales (VGG16, Resnet 50, PROPIA, EfficientNetB0). Las mejores métricas de desempeño, precisión de 75% y perdida de 0.68 se obtuvieron de la implementación de la red preentrenada EfficientNetB0. Este trabajo es un punto de partida para la gestión y mantenimiento de pavimentos rígidos con herramientas tecnológicas novedosas mejorando la cantidad de tiempo y esfuerzo humano empleado cotidianamente. |
publishDate |
2023 |
dc.date.created.none.fl_str_mv |
2023-04-14 |
dc.date.accessioned.none.fl_str_mv |
2024-05-24T17:50:21Z |
dc.date.available.none.fl_str_mv |
2024-05-24T17:50:21Z |
dc.type.spa.fl_str_mv |
bachelorThesis |
dc.type.degree.spa.fl_str_mv |
Monografí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/35545 |
url |
http://hdl.handle.net/11349/35545 |
dc.language.iso.spa.fl_str_mv |
spa |
language |
spa |
dc.rights.*.fl_str_mv |
CC0 1.0 Universal |
dc.rights.coar.fl_str_mv |
http://purl.org/coar/access_right/c_16ec |
dc.rights.uri.*.fl_str_mv |
http://creativecommons.org/publicdomain/zero/1.0/ |
dc.rights.acceso.spa.fl_str_mv |
Restringido (Solo Referencia) |
rights_invalid_str_mv |
CC0 1.0 Universal http://creativecommons.org/publicdomain/zero/1.0/ Restringido (Solo Referencia) http://purl.org/coar/access_right/c_16ec |
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/35545/6/LandechoMuzuzuGabriellAlejandra2023%20%281%29.pdf.jpg http://repository.udistrital.edu.co/bitstream/11349/35545/7/Licencia%20y%20autorizaci%c3%b3n%20especial%20para%20publicar%20y%20permitir%20la%20consulta%20y%20uso%20de%20contenidos%20en%20el%20Repositorio%20Institucional%20de%20la%20Universidad%20Distrital.pdf.jpg http://repository.udistrital.edu.co/bitstream/11349/35545/4/license_rdf http://repository.udistrital.edu.co/bitstream/11349/35545/5/license.txt http://repository.udistrital.edu.co/bitstream/11349/35545/3/LandechoMuzuzuGabriellAlejandra2023%20%281%29.pdf http://repository.udistrital.edu.co/bitstream/11349/35545/2/Licencia%20y%20autorizaci%c3%b3n%20especial%20para%20publicar%20y%20permitir%20la%20consulta%20y%20uso%20de%20contenidos%20en%20el%20Repositorio%20Institucional%20de%20la%20Universidad%20Distrital.pdf |
bitstream.checksum.fl_str_mv |
ba7f7ed0aeab9c6e36aea4f3e04ad6ca 139c000244a7dcf1398b650b246886db 42fd4ad1e89814f5e4a476b409eb708c 997daf6c648c962d566d7b082dac908d 4b69300c35878251916c1b5fc51fbb02 54249a593f972c7411b719be79062875 |
bitstream.checksumAlgorithm.fl_str_mv |
MD5 MD5 MD5 MD5 MD5 MD5 |
repository.name.fl_str_mv |
Repositorio Institucional Universidad Distrital - RIUD |
repository.mail.fl_str_mv |
repositorio@udistrital.edu.co |
_version_ |
1814111266739847168 |
spelling |
Fernández Gómez, Wilmar Darío0000-0001-6339-8050Fernández Gómez, Wilmar Darío [0000-0001-6339-8050]Landecho Muzuzu, Gabriell AlejandraPérez Quintero, Jeferson Stive2024-05-24T17:50:21Z2024-05-24T17:50:21Z2023-04-14http://hdl.handle.net/11349/35545A pesar de que existen diferentes métodos de inteligencia artificial para la detección y clasificación de los daños de la infraestructura vial, se evidencia la ausencia de investigación en la gestión y mantenimiento de pavimentos rígidos. La presente investigación se enfoca en establecer un modelo de inteligencia artificial para la evaluación de deterioros del pavimento rígido por medio de la estimación del índice de serviciabilidad presente (PSI). Se desarrolló un algoritmo de inteligencia artificial, el que procesa datos de imágenes para obtener un valor del índice. Esta investigación se abordó mediante 3 ejes: Se captaron 69 vídeos de diferentes sectores de Bogotá D.C, de los que se obtuvieron una biblioteca de imágenes de 5046 diferentes estados de pavimento rígido. Las cuales fueron clasificadas en grupos de 200 imágenes, por un grupo de Ingenieros con experiencia en la gestión de pavimentos y permitieron alimentar las redes neuronales convolucionales (VGG16, Resnet 50, PROPIA, EfficientNetB0). Las mejores métricas de desempeño, precisión de 75% y perdida de 0.68 se obtuvieron de la implementación de la red preentrenada EfficientNetB0. Este trabajo es un punto de partida para la gestión y mantenimiento de pavimentos rígidos con herramientas tecnológicas novedosas mejorando la cantidad de tiempo y esfuerzo humano empleado cotidianamente.Although there are different artificial intelligence methods for the detection and classification of damages to road infrastructure, the absence of research in the management and maintenance of rigid pavements is evident. This research focuses on establishing an artificial intelligence model for the evaluation of deterioration in rigid pavements by estimating the present serviceability index (PSI). An artificial intelligence algorithm was developed that processes image data to obtain a PSI value. This research was approached through 3 axes: 69 videos were captured from different sectors of Bogotá D.C., from which a library of 5046 images of different states of rigid pavement was obtained. These were classified into groups of 200 images by a group of engineers experienced in pavement management and allowed for the training of convolutional neural networks (VGG16, Resnet 50, OWN, EfficientNetB0). The best performance metrics, precision of 75% and loss of 0.68, were obtained from the implementation of the pre-trained EfficientNetB0 network. This work is a starting point for the management and maintenance of rigid pavements with novel technological tools, improving the amount of time and human effort employed daily.pdfspaCC0 1.0 Universalhttp://creativecommons.org/publicdomain/zero/1.0/Restringido (Solo Referencia)http://purl.org/coar/access_right/c_16ecClasificación de imágenesAprendizaje profundoDaños en pavimentosFirmesFisurasImagen digitalImagen de pavimentosÍndice de condición del pavimento (PCI)Lógica difusaMantenimiento vialPatologíasPavimentoPythonProcesamiento de imágenesRedes neuronales artificialesRehabilitación vialIngeniería Civil -- Tesis y disertaciones académicasInteligencia artificialInfraestructura vialPavimentos rígidosRedes neuronales convolucionalesImage classificationDeep learningDamage to pavementsFirmFissuresDigital imageImage of pavementsPavement condition index (PCI)Diffuse logicRoad maintenancePathologiesPavementPythonImage processingArtificial neural networksRoad rehabilitationClasificación del estado superficial de pavimentos rígidos con imágenes digitales y técnicas de inteligencia artificialClassification of the surface state of rigid pavements with digital images and artificial intelligence techniquesbachelorThesisMonografíainfo:eu-repo/semantics/bachelorThesishttp://purl.org/coar/resource_type/c_7a1fTHUMBNAILLandechoMuzuzuGabriellAlejandra2023 (1).pdf.jpgLandechoMuzuzuGabriellAlejandra2023 (1).pdf.jpgIM Thumbnailimage/jpeg11526http://repository.udistrital.edu.co/bitstream/11349/35545/6/LandechoMuzuzuGabriellAlejandra2023%20%281%29.pdf.jpgba7f7ed0aeab9c6e36aea4f3e04ad6caMD56open accessLicencia y autorización especial para publicar y permitir la consulta y uso de contenidos en el Repositorio Institucional de la Universidad Distrital.pdf.jpgLicencia y autorización especial para publicar y permitir la consulta y uso de contenidos en el Repositorio Institucional de la Universidad Distrital.pdf.jpgIM Thumbnailimage/jpeg13037http://repository.udistrital.edu.co/bitstream/11349/35545/7/Licencia%20y%20autorizaci%c3%b3n%20especial%20para%20publicar%20y%20permitir%20la%20consulta%20y%20uso%20de%20contenidos%20en%20el%20Repositorio%20Institucional%20de%20la%20Universidad%20Distrital.pdf.jpg139c000244a7dcf1398b650b246886dbMD57open accessCC-LICENSElicense_rdflicense_rdfapplication/rdf+xml; charset=utf-8701http://repository.udistrital.edu.co/bitstream/11349/35545/4/license_rdf42fd4ad1e89814f5e4a476b409eb708cMD54open accessLICENSElicense.txtlicense.txttext/plain; charset=utf-87167http://repository.udistrital.edu.co/bitstream/11349/35545/5/license.txt997daf6c648c962d566d7b082dac908dMD55open accessORIGINALLandechoMuzuzuGabriellAlejandra2023 (1).pdfLandechoMuzuzuGabriellAlejandra2023 (1).pdfTrabajo de gradoapplication/pdf2948330http://repository.udistrital.edu.co/bitstream/11349/35545/3/LandechoMuzuzuGabriellAlejandra2023%20%281%29.pdf4b69300c35878251916c1b5fc51fbb02MD53metadata only accessLicencia y autorización especial para publicar y permitir la consulta y uso de contenidos en el Repositorio Institucional de la Universidad Distrital.pdfLicencia y autorización especial para publicar y permitir la consulta y uso de contenidos en el Repositorio Institucional de la Universidad Distrital.pdfLicencia de uso y publicaciónapplication/pdf583967http://repository.udistrital.edu.co/bitstream/11349/35545/2/Licencia%20y%20autorizaci%c3%b3n%20especial%20para%20publicar%20y%20permitir%20la%20consulta%20y%20uso%20de%20contenidos%20en%20el%20Repositorio%20Institucional%20de%20la%20Universidad%20Distrital.pdf54249a593f972c7411b719be79062875MD52metadata only access11349/35545oai:repository.udistrital.edu.co:11349/355452024-05-25 01:03:57.119metadata only accessRepositorio Institucional Universidad Distrital - RIUDrepositorio@udistrital.edu.coTElDRU5DSUEgWSBBVVRPUklaQUNJw5NOIEVTUEVDSUFMIFBBUkEgUFVCTElDQVIgWSBQRVJNSVRJUiBMQSBDT05TVUxUQSBZIFVTTyBERSBDT05URU5JRE9TIEVOIEVMIFJFUE9TSVRPUklPIElOU1RJVFVDSU9OQUwgREUgTEEgVU5JVkVSU0lEQUQgRElTVFJJVEFMCgpUw6lybWlub3MgeSBjb25kaWNpb25lcyBkZSB1c28gcGFyYSBwdWJsaWNhY2nDs24gZGUgb2JyYXMgZW4gZWwgUmVwb3NpdG9yaW8gSW5zdGl0dWNpb25hbCBkZSBsYSBVbml2ZXJzaWRhZCBEaXN0cml0YWwgRnJhbmNpc2NvIEpvc8OpIGRlIENhbGRhcyAoUklVRCkKCkNvbW8gdGl0dWxhcihlcykgZGVsKG9zKSBkZXJlY2hvKHMpIGRlIGF1dG9yLCBjb25maWVybyAoZXJpbW9zKSBhIGxhIFVuaXZlcnNpZGFkIERpc3RyaXRhbCBGcmFuY2lzY28gSm9zw6kgZGUgQ2FsZGFzIChlbiBhZGVsYW50ZSwgTEEgVU5JVkVSU0lEQUQpIHVuYSBsaWNlbmNpYSBwYXJhIHVzbyBubyBleGNsdXNpdmEsIGxpbWl0YWRhIHkgZ3JhdHVpdGEgc29icmUgbGEgb2JyYSBxdWUgaW50ZWdyYXLDoSBlbCBSZXBvc2l0b3JpbyBJbnN0aXR1Y2lvbmFsIChlbiBhZGVsYW50ZSwgUklVRCksIGRlIGFjdWVyZG8gYSBsYXMgc2lndWllbnRlcyByZWdsYXMsIGxhcyBjdWFsZXMgZGVjbGFybyAoYW1vcykgY29ub2NlciB5IGFjZXB0YXI6CgphKQlFc3RhcsOhIHZpZ2VudGUgYSBwYXJ0aXIgZGUgbGEgZmVjaGEgZW4gcXVlIHNlIGluY2x1eWEgZW4gZWwgUklVRCB5IGhhc3RhIHBvciB1biBwbGF6byBkZSBkaWV6ICgxMCkgQcOxb3MsIHByb3Jyb2dhYmxlIGluZGVmaW5pZGFtZW50ZSBwb3IgZWwgdGllbXBvIHF1ZSBkdXJlIGVsIGRlcmVjaG8gUGF0cmltb25pYWwgZGVsIGF1dG9yOyBsYSBjdWFsIHBvZHLDoSBkYXJzZSBwb3IgdGVybWluYWRhIHByZXZpYSBzb2xpY2l0dWQgYSBMQSBVTklWRVJTSURBRCBwb3IgZXNjcml0byBjb24gdW5hIGFudGVsYWNpw7NuIGRlIGRvcyAoMikgbWVzZXMgYW50ZXMgZGVsIHZlbmNpbWllbnRvIGRlbCBwbGF6byBpbmljaWFsIG8gZWwgZGUgc3UocykgcHLDs3Jyb2dhKHMpLgoKYikJTEEgVU5JVkVSU0lEQUQgcG9kcsOhIHB1YmxpY2FyIGxhIG9icmEgZW4gbGFzIGRpc3RpbnRhcyB2ZXJzaW9uZXMgcmVxdWVyaWRhcyBwb3IgZWwgUklVRCAoZGlnaXRhbCwgaW1wcmVzbywgZWxlY3Ryw7NuaWNvIHUgb3RybyBtZWRpbyBjb25vY2lkbyBvIHBvciBjb25vY2VyKSBMQSBVTklWRVJTSURBRCBubyBzZXLDoSByZXNwb25zYWJsZSBlbiBlbCBldmVudG8gcXVlIGVsIGRvY3VtZW50byBhcGFyZXpjYSByZWZlcmVuY2lhZG8gZW4gbW90b3JlcyBkZSBiw7pzcXVlZGEgbyByZXBvc2l0b3Jpb3MgZGlmZXJlbnRlcyBhbCBSSVVELCB1bmEgdmV6IGVsKG9zKSBhdXRvcihlcykgc29saWNpdGVuIHN1IGVsaW1pbmFjacOzbiBkZWwgUklVRCwgZGFkbyBxdWUgbGEgbWlzbWEgc2Vyw6EgcHVibGljYWRhIGVuIEludGVybmV0LgoKYykJTGEgYXV0b3JpemFjacOzbiBzZSBoYWNlIGEgdMOtdHVsbyBncmF0dWl0bywgcG9yIGxvIHRhbnRvLCBsb3MgYXV0b3JlcyByZW51bmNpYW4gYSByZWNpYmlyIGJlbmVmaWNpbyBhbGd1bm8gcG9yIGxhIHB1YmxpY2FjacOzbiwgZGlzdHJpYnVjacOzbiwgY29tdW5pY2FjacOzbiBww7pibGljYSB5IGN1YWxxdWllciBvdHJvIHVzbyBxdWUgc2UgaGFnYSBlbiBsb3MgdMOpcm1pbm9zIGRlIGxhIHByZXNlbnRlIGxpY2VuY2lhIHkgZGUgbGEgbGljZW5jaWEgZGUgdXNvIGNvbiBxdWUgc2UgcHVibGljYSAoQ3JlYXRpdmUgQ29tbW9ucykuCgpkKQlMb3MgY29udGVuaWRvcyBwdWJsaWNhZG9zIGVuIGVsIFJJVUQgc29uIG9icmEocykgb3JpZ2luYWwoZXMpIHNvYnJlIGxhIGN1YWwoZXMpIGVsKG9zKSBhdXRvcihlcykgY29tbyB0aXR1bGFyZXMgZGUgbG9zIGRlcmVjaG9zIGRlIGF1dG9yLCBhc3VtZW4gdG90YWwgcmVzcG9uc2FiaWxpZGFkIHBvciBlbCBjb250ZW5pZG8gZGUgc3Ugb2JyYSBhbnRlIExBIFVOSVZFUlNJREFEIHkgYW50ZSB0ZXJjZXJvcy4gRW4gdG9kbyBjYXNvIExBIFVOSVZFUlNJREFEIHNlIGNvbXByb21ldGUgYSBpbmRpY2FyIHNpZW1wcmUgbGEgYXV0b3LDrWEgaW5jbHV5ZW5kbyBlbCBub21icmUgZGVsIGF1dG9yIHkgbGEgZmVjaGEgZGUgcHVibGljYWNpw7NuLgoKZSkJTEEgVU5JVkVSU0lEQUQgcG9kcsOhIGluY2x1aXIgbGEgb2JyYSBlbiBsb3Mgw61uZGljZXMgeSBidXNjYWRvcmVzIHF1ZSBlc3RpbWVuIG5lY2VzYXJpb3MgcGFyYSBtYXhpbWl6YXIgbGEgdmlzaWJpbGlkYWQgZWwgdXNvIHkgZWwgaW1wYWN0byBkZSBsYSBwcm9kdWNjacOzbiBjaWVudMOtZmljYSwgYXJ0w61zdGljYSB5IGFjYWTDqW1pY2EgZW4gbGEgY29tdW5pZGFkIGxvY2FsLCBuYWNpb25hbCBvIGludGVybmFjaW9uYWwuCgoKZikJTEEgVU5JVkVSU0lEQUQgcG9kcsOhIGNvbnZlcnRpciBsYSBvYnJhIGEgY3VhbHF1aWVyIG1lZGlvIG8gZm9ybWF0byBjb24gZWwgZmluIGRlIHN1IHByZXNlcnZhY2nDs24gZW4gZWwgdGllbXBvIHF1ZSBsYSBwcmVzZW50ZSBsaWNlbmNpYSB5IGxhIGRlIHN1cyBwcsOzcnJvZ2FzLgoKCkNvbiBiYXNlIGVuIGxvIGFudGVyaW9yIGF1dG9yaXpvKGFtb3MpLCBhIGZhdm9yIGRlbCBSSVVEIHkgZGUgc3VzIHVzdWFyaW9zLCBsYSBwdWJsaWNhY2nDs24geSBjb25zdWx0YSBkZSBsYSBzaWd1aWVudGUgb2JyYToKClRpdHVsbwoKQXV0b3IgICAgICAgQXBlbGxpZG9zICAgICAgICAgTm9tYnJlcwoKMQoKMgoKMwoKCmcpCUF1dG9yaXpvKGFtb3MpLCBxdWUgbGEgb2JyYSBzZWEgcHVlc3RhIGEgZGlzcG9zaWNpw7NuIGRlbCBww7pibGljbyBlbiBsb3MgdMOpcm1pbm9zIGVzdGFibGVjaWRvcyBlbiBsb3MgbGl0ZXJhbGVzIGFudGVyaW9yZXMsIGJham8gbG9zIGzDrW1pdGVzIGRlZmluaWRvcyBwb3IgTEEgVU5JVkVSU0lEQUQsIGVuIGxhcyDigJxDb25kaWNpb25lcyBkZSB1c28gZGUgZXN0cmljdG8gY3VtcGxpbWllbnRv4oCdIGRlIGxvcyByZWN1cnNvcyBwdWJsaWNhZG9zIGVuIGVsIFJJVUQsIGN1eW8gdGV4dG8gY29tcGxldG8gc2UgcHVlZGUgY29uc3VsdGFyIGVuIGh0dHA6Ly9yZXBvc2l0b3J5LnVkaXN0cml0YWwuZWR1LmNvLwoKaCkJQ29ub3pjbyhjZW1vcykgeSBhY2VwdG8oYW1vcykgcXVlIG90b3JnbyhhbW9zKSB1bmEgbGljZW5jaWEgZXNwZWNpYWwgcGFyYSBwdWJsaWNhY2nDs24gZGUgb2JyYXMgZW4gZWwgUmVwb3NpdG9yaW8gSW5zdGl0dWNpb25hbCBkZSBsYSBVbml2ZXJzaWRhZCBEaXN0cml0YWwgRnJhbmNpc2NvIEpvc8OpIGRlIENhbGRhcywgbGljZW5jaWEgICBkZSBsYSBjdWFsIGhlIChoZW1vcykgb2J0ZW5pZG8gdW5hIGNvcGlhLgoKaSkJTWFuaWZpZXN0byhhbW9zKSBtaSAobnVlc3RybykgdG90YWwgYWN1ZXJkbyBjb24gbGFzIGNvbmRpY2lvbmVzIGRlIHVzbyB5IHB1YmxpY2FjacOzbiBlbiBlbCBSZXBvc2l0b3JpbyBJbnN0aXR1Y2lvbmFsIGRlIGxhIFVuaXZlcnNpZGFkIERpc3RyaXRhbCBGcmFuY2lzY28gSm9zw6kgZGUgQ2FsZGFzIHF1ZSBzZSBkZXNjcmliZW4geSBleHBsaWNhbiBlbiBlbCBwcmVzZW50ZSBkb2N1bWVudG8uCgpqKQlDb25vemNvKGNlbW9zKSBsYSBub3JtYXRpdmlkYWQgaW50ZXJuYSBkZSAgTEEgVU5JVkVSU0lEQUQ7IGVuIGNvbmNyZXRvLCBlbCBBY3VlcmRvIDAwNCBkZSAyMDEyIGRlbCBDU1UsIEFjdWVyZG8gMDIzIGRlIDIwMTIgZGVsIENTVSBzb2JyZSBQb2zDrXRpY2EgRWRpdG9yaWFsLCBBY3VlcmRvIDAyNiAgZGVsIDMxIGRlIGp1bGlvIGRlIDIwMTIgc29icmUgZWwgcHJvY2VkaW1pZW50byBwYXJhIGxhIHB1YmxpY2FjacOzbiBkZSB0ZXNpcyBkZSBwb3N0Z3JhZG8gZGUgbG9zIGVzdHVkaWFudGVzIGRlIGxhIFVuaXZlcnNpZGFkIERpc3RyaXRhbCBGcmFuY2lzY28gSm9zw6kgZGUgQ2FsZGFzLCAgQWN1ZXJkbyAwMzAgZGVsIDAzIGRlIGRpY2llbWJyZSBkZSAyMDEzIHBvciBtZWRpbyBkZWwgY3VhbCBzZSBjcmVhIGVsIFJlcG9zaXRvcmlvIEluc3RpdHVjaW9uYWwgZGUgbGEgVW5pdmVyc2lkYWQgRGlzdHJpdGFsIEZyYW5jaXNjbyBKb3PDqSBkZSBDYWxkYXMsIEFjdWVyZG8gMDM4IGRlIDIwMTUgMjAxNSDigJxwb3IgZWwgY3VhbCBzZSBtb2RpZmljYSBlbCBBY3VlcmRvIDAzMSBkZSAyMDE0IGRlIDIwMTQgcXVlIHJlZ2xhbWVudGEgZWwgdHJhYmFqbyBkZSBncmFkbyBwYXJhIGxvcyBlc3R1ZGlhbnRlcyBkZSBwcmVncmFkbyBkZSBsYSBVbml2ZXJzaWRhZCBEaXN0cml0YWwgRnJhbmNpc2NvIEpvc8OpIGRlIENhbGRhcyB5IHNlIGRpY3RhbiBvdHJhcyBkaXJlY3RyaWNlc+KAnSB5IGxhcyBkZW3DoXMgbm9ybWFzIGNvbmNvcmRhbnRlIHkgY29tcGxlbWVudGFyaWFzIHF1ZSByaWdlbiBhbCByZXNwZWN0bywgZXNwZWNpYWxtZW50ZSBsYSBsZXkgMjMgZGUgMTk4MiwgbGEgbGV5IDQ0IGRlIDE5OTMgeSBsYSBkZWNpc2nDs24gQW5kaW5hIDM1MSBkZSAxOTkzLiBFc3RvcyBkb2N1bWVudG9zIHBvZHLDoW4gc2VyIGNvbnN1bHRhZG9zIHkgZGVzY2FyZ2Fkb3MgZW4gZWwgcG9ydGFsIHdlYiBkZSBsYSBiaWJsaW90ZWNhIGh0dHA6Ly9zaXN0ZW1hZGViaWJsaW90ZWNhcy51ZGlzdHJpdGFsLmVkdS5jby8KCmspCUFjZXB0byhhbW9zKSBxdWUgTEEgVU5JVkVSU0lEQUQgbm8gc2UgcmVzcG9uc2FiaWxpemEgcG9yIGxhcyBpbmZyYWNjaW9uZXMgYSBsYSBwcm9waWVkYWQgaW50ZWxlY3R1YWwgbyBEZXJlY2hvcyBkZSBBdXRvciBjYXVzYWRhcyBwb3IgbG9zIHRpdHVsYXJlcyBkZSBsYSBwcmVzZW50ZSBMaWNlbmNpYSB5IGRlY2xhcmFtb3MgcXVlIG1hbnRlbmRyw6kgKGVtb3MpIGluZGVtbmUgYSBMQSBVTklWRVJTSURBRCBwb3IgbGFzIHJlY2xhbWFjaW9uZXMgbGVnYWxlcyBkZSBjdWFscXVpZXIgdGlwbyBxdWUgbGxlZ2FyZW4gYSBwcmVzZW50YXJzZSBwb3IgdmlvbGFjacOzbiBkZSBkZXJlY2hvcyBhIGxhIHByb3BpZWRhZCBpbnRlbGVjdHVhbCBvIGRlIEF1dG9yIHJlbGFjaW9uYWRvcyBjb24gbG9zIGRvY3VtZW50b3MgcmVnaXN0cmFkb3MgZW4gZWwgUklVRC4KCmwpCUVsIChsb3MpIGF1dG9yKGVzKSBtYW5pZmllc3RhKG1vcykgcXVlIGxhIG9icmEgb2JqZXRvIGRlIGxhIHByZXNlbnRlIGF1dG9yaXphY2nDs24gZXMgb3JpZ2luYWwsIGRlIGV4Y2x1c2l2YSBhdXRvcsOtYSwgeSBzZSByZWFsaXrDsyBzaW4gdmlvbGFyIG8gdXN1cnBhciBkZXJlY2hvcyBkZSBhdXRvciBkZSB0ZXJjZXJvczsgZGUgdGFsIHN1ZXJ0ZSwgZW4gY2FzbyBkZSBwcmVzZW50YXJzZSBjdWFscXVpZXIgcmVjbGFtYWNpw7NuIG8gYWNjacOzbiBwb3IgcGFydGUgZGUgdW4gdGVyY2VybyBlbiBjdWFudG8gYSBsb3MgZGVyZWNob3MgZGUgYXV0b3Igc29icmUgbGEgb2JyYSwgZWwgKGxvcykgZXN0dWRpYW50ZShzKSDigJMgYXV0b3IoZXMpIGFzdW1pcsOhKG4pIHRvZGEgbGEgcmVzcG9uc2FiaWxpZGFkIHkgc2FsZHLDoShuKSBlbiBkZWZlbnNhIGRlIGxvcyBkZXJlY2hvcyBhcXXDrSBhdXRvcml6YWRvcy4gUGFyYSB0b2RvcyBsb3MgZWZlY3RvcywgTEEgVU5JVkVSU0lEQUQgYWN0w7phIGNvbW8gdW4gdGVyY2VybyBkZSBidWVuYSBmZS4KCgptKQlFbCAobG9zKSBhdXRvcihlcykgbWFuaWZpZXN0YShtb3MpIHF1ZSBjb25vemNvKGNlbW9zKSBsYSBhdXRvbm9tw61hIHkgbG9zIGRlcmVjaG9zLCBxdWUgcG9zZWUobW9zKSBzb2JyZSBsYSBvYnJhIHksIGNvbW8gdGFsLCBlcyAoc29tb3MpIHJlc3BvbnNhYmxlKHMpIGRlbCBhbGNhbmNlIGp1csOtZGljbyB5IGxlZ2FsLCBkZSBlc2NvZ2VyIGxhIG9wY2nDs24gZGUgbGEgcHVibGljYWNpw7NuIG8gZGUgcmVzdHJpY2Npw7NuIGRlIGxhIHB1YmxpY2FjacOzbiBkZWwgZG9jdW1lbnRvIHJlZ2lzdHJhZG8gZW4gZWwgUklVRC4KCgoKCgoKU0kgRUwgRE9DVU1FTlRPIFNFIEJBU0EgRU4gVU4gVFJBQkFKTyBRVUUgSEEgU0lETyBQQVRST0NJTkFETyBPIEFQT1lBRE8gUE9SIFVOQSBBR0VOQ0lBIE8gVU5BIE9SR0FOSVpBQ0nDk04sIENPTiBFWENFUENJw5NOIERFIExBIFVOSVZFUlNJREFEIERJU1RSSVRBTCBGUkFOQ0lTQ08gSk9TRSBERSBDQUxEQVMsIExPUyBBVVRPUkVTIEdBUkFOVElaQU4gUVVFIFNFIEhBIENVTVBMSURPIENPTiBMT1MKREVSRUNIT1MgWSBPQkxJR0FDSU9ORVMgUkVRVUVSSURPUyBQT1IgRUwgUkVTUEVDVElWTyBDT05UUkFUTyBPIEFDVUVSRE8uCgoKCgoKCgoKCgoKCgoKCgoKCgoKCkVuIGNvbnN0YW5jaWEgZGUgbG8gYW50ZXJpb3IsIGZpcm1vKGFtb3MpIGVsIHByZXNlbnRlIGRvY3VtZW50bywgZW4gbGEgY2l1ZGFkIGRlIEJvZ290w6EsIEQuQy4sIGEgbG9zCgoKRklSTUEgREUgTE9TIFRJVFVMQVJFUyBERSBERVJFQ0hPUyBERSBBVVRPUgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fICAgQy5DLiBOby4gX19fX19fX19fX19fX19fX19fCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18gICBDLkMuIE5vLiBfX19fX19fX19fX19fX19fX18KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyAgIEMuQy4gTm8uIF9fX19fX19fX19fX19fX19fXwoKCgpDb3JyZW8gRWxlY3Ryw7NuaWNvIEluc3RpdHVjaW9uYWwgZGVsIChkZSBsb3MpIEF1dG9yKGVzKToKCkF1dG9yCSAgICAgIENvcnJlbyBFbGVjdHLDs25pY28KCjEKCjIKCjMKCk5vbWJyZSBkZSBEaXJlY3RvcihlcykgZGUgR3JhZG86CgoxCgoyCgozCgpOb21icmUgRmFjdWx0YWQgeSBQcm95ZWN0byBDdXJyaWN1bGFyOgoKRmFjdWx0YWQJUHJveWVjdG8gQ3VycmljdWxhcgoKCgoKCgoKCk5vdGE6IEVuIGNhc28gcXVlIG5vIGVzdMOpIGRlIGFjdWVyZG8gY29uIGxhcyBjb25kaWNpb25lcyBkZSBsYSBwcmVzZW50ZSBsaWNlbmNpYSwgeSBtYW5pZmllc3RlIGFsZ3VuYSByZXN0cmljY2nDs24gc29icmUgbGEgb2JyYSwganVzdGlmaXF1ZSBsb3MgbW90aXZvcyBwb3IgbG9zIGN1YWxlcyBlbCBkb2N1bWVudG8geSBzdXMgYW5leG9zIG5vIHB1ZWRlbiBzZXIgcHVibGljYWRvcyBlbiBlbCBSZXBvc2l0b3JpbyBJbnN0aXR1Y2lvbmFsIGRlIGxhIFVuaXZlcnNpZGFkIERpc3RyaXRhbCBGcmFuY2lzY28gSm9zw6kgZGUgQ2FsZGFzIFJJVUQuCgoKU2kgcmVxdWllcmUgbcOhcyBlc3BhY2lvLCBwdWVkZSBhbmV4YXIgdW5hIGNvcGlhIHNpbWlsYXIgYSBlc3RhIGhvamEK |