Creación de una plataforma web informativa para viajeros con página web y gestor de contenidos

En la era digital, el acceso a la información ha revolucionado la forma en que los viajeros planifican y disfrutan de sus aventuras, convirtiendo la web en una herramienta esencial para obtener información actualizada sobre destinos, alojamiento, transporte, actividades y recomendaciones. Sin embarg...

Full description

Autores:
Alarcón Manrique, César Iván
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/40599
Acceso en línea:
http://hdl.handle.net/11349/40599
Palabra clave:
Gestor de Contenidos
Plataforma Web
API REST
Diseño Web
Experiencia de Usuario
Especialización en Ingeniería de Software -- Tesis y disertaciones académicas
Desarrollo de páginas web -- Investigaciones
Desarrollo de prototipos
Gestores de información
Web Platform
Content Management System
API REST
Web Design
User Experience
Rights
License
Attribution-NonCommercial-NoDerivatives 4.0 Internacional
id UDISTRITA2_b58bab8566c15e87baa5ff928ec60545
oai_identifier_str oai:repository.udistrital.edu.co:11349/40599
network_acronym_str UDISTRITA2
network_name_str RIUD: repositorio U. Distrital
repository_id_str
dc.title.spa.fl_str_mv Creación de una plataforma web informativa para viajeros con página web y gestor de contenidos
dc.title.titleenglish.spa.fl_str_mv Creation of an informative web platform for travelers with a web page and content manager
title Creación de una plataforma web informativa para viajeros con página web y gestor de contenidos
spellingShingle Creación de una plataforma web informativa para viajeros con página web y gestor de contenidos
Gestor de Contenidos
Plataforma Web
API REST
Diseño Web
Experiencia de Usuario
Especialización en Ingeniería de Software -- Tesis y disertaciones académicas
Desarrollo de páginas web -- Investigaciones
Desarrollo de prototipos
Gestores de información
Web Platform
Content Management System
API REST
Web Design
User Experience
title_short Creación de una plataforma web informativa para viajeros con página web y gestor de contenidos
title_full Creación de una plataforma web informativa para viajeros con página web y gestor de contenidos
title_fullStr Creación de una plataforma web informativa para viajeros con página web y gestor de contenidos
title_full_unstemmed Creación de una plataforma web informativa para viajeros con página web y gestor de contenidos
title_sort Creación de una plataforma web informativa para viajeros con página web y gestor de contenidos
dc.creator.fl_str_mv Alarcón Manrique, César Iván
dc.contributor.advisor.none.fl_str_mv Rincón Rojas, Edgar Jacinto
dc.contributor.author.none.fl_str_mv Alarcón Manrique, César Iván
dc.contributor.orcid.none.fl_str_mv Rincón Rojas, Edgar Jacinto [0000-0002-2997-8075]
dc.subject.spa.fl_str_mv Gestor de Contenidos
Plataforma Web
API REST
Diseño Web
Experiencia de Usuario
topic Gestor de Contenidos
Plataforma Web
API REST
Diseño Web
Experiencia de Usuario
Especialización en Ingeniería de Software -- Tesis y disertaciones académicas
Desarrollo de páginas web -- Investigaciones
Desarrollo de prototipos
Gestores de información
Web Platform
Content Management System
API REST
Web Design
User Experience
dc.subject.lemb.none.fl_str_mv Especialización en Ingeniería de Software -- Tesis y disertaciones académicas
Desarrollo de páginas web -- Investigaciones
Desarrollo de prototipos
Gestores de información
dc.subject.keyword.none.fl_str_mv Web Platform
Content Management System
API REST
Web Design
User Experience
description En la era digital, el acceso a la información ha revolucionado la forma en que los viajeros planifican y disfrutan de sus aventuras, convirtiendo la web en una herramienta esencial para obtener información actualizada sobre destinos, alojamiento, transporte, actividades y recomendaciones. Sin embargo, esta abundancia de información en línea puede resultar abrumadora y caótica, lo que dificulta la planificación eficiente de un viaje. Por lo tanto, es imperativo contar con una plataforma web eficiente y de fácil uso que proporcione información fiable y actualizada a los viajeros de manera organizada y accesible. En este contexto, el presente trabajo de grado de la Especialización en Ingeniería de Software tiene como objetivo principal el desarrollo de una página web de uso intuitivo para los usuarios, además de la creación de un gestor de contenidos que permita la gestión eficaz de esta página destinada a ofrecer información ordenada, actualizada y fácilmente accesible a los viajeros. El diseño y desarrollo de páginas web son elementos cruciales en la creación de una plataforma web exitosa, y se prestará especial atención a la usabilidad, accesibilidad y atractivo visual. Para lograrlo, se aplicarán las mejores prácticas de desarrollo web, basadas en estándares internacionales y en la experiencia del usuario, con el objetivo fundamental de garantizar una experiencia de navegación satisfactoria. El gestor de contenidos desempeña un papel fundamental en la creación y gestión de la plataforma web, ya que permite a los usuarios crear, editar y gestionar el contenido del sitio de manera dinámica, sin necesidad de poseer conocimientos técnicos avanzados en programación web. En el marco de este trabajo, se llevará a cabo la creación de una API REST que posibilite la gestión de la información de la página web mediante operaciones como POST, UPDATE, PATCH y DELETE, relacionada con países, ciudades, destinos turísticos y lugares de interés. Cada una de estas entidades contendrá información detallada y estructurada para garantizar que las publicaciones sigan una misma línea en términos de diseño, con el objetivo de que los usuarios se familiaricen con la página y la utilicen tanto para planificar sus viajes como para descubrir nuevos lugares desde la perspectiva de los creadores de contenido de la página. Además, es crucial destacar que la API REST que se está implementando permitirá la construcción dinámica de la página principal de forma automática y en tiempo real. Esto se logrará mediante la ejecución de operaciones GET a la API al momento de ingresar a la página web, lo cual asegurará que el contenido esté siempre actualizado, independientemente de la sección que se esté visitando. De esta manera, se garantiza una experiencia de usuario mejorada, ya que se obtendrá información fresca y relevante en cada visita, gracias a la capacidad de la API para proporcionar datos en tiempo real. Este enfoque dinámico y automatizado permitirá una mayor flexibilidad y adaptabilidad en la presentación de contenido en la página principal, brindando así una experiencia más personalizada y atractiva para los usuarios que interactúen con el sitio web.
publishDate 2023
dc.date.created.none.fl_str_mv 2023-07-18
dc.date.accessioned.none.fl_str_mv 2024-09-10T21:58:24Z
dc.date.available.none.fl_str_mv 2024-09-10T21:58:24Z
dc.type.spa.fl_str_mv bachelorThesis
dc.type.degree.spa.fl_str_mv Creación o Interpretación
dc.type.driver.none.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/40599
url http://hdl.handle.net/11349/40599
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
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/bf9fe36c-65b3-4f2f-b0f7-a1a86e4111f5/download
https://repository.udistrital.edu.co/bitstreams/d286d997-a621-4a21-b6ee-ff5c62982193/download
https://repository.udistrital.edu.co/bitstreams/31d3c1b6-736f-497b-b078-9b39f9e583c2/download
https://repository.udistrital.edu.co/bitstreams/7fc444e0-cf51-4ecc-83e9-beff0aae766a/download
https://repository.udistrital.edu.co/bitstreams/0d04ce90-8021-41ca-aad9-ba069fadf044/download
https://repository.udistrital.edu.co/bitstreams/eecf1fcb-92ac-4613-95a7-8dd4fb5b8f0c/download
bitstream.checksum.fl_str_mv 4460e5956bc1d1639be9ae6146a50347
997daf6c648c962d566d7b082dac908d
bd931fcf5238f40006b71fe4c77b9db2
f6f7d6eb5f011203894e37d84d8537df
40b824a02320f0b53cd51542929fba7f
c2a5cb8c03ad8aa9cd984ff2ce028f68
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_ 1828165365657501696
spelling Rincón Rojas, Edgar JacintoAlarcón Manrique, César IvánRincón Rojas, Edgar Jacinto [0000-0002-2997-8075]2024-09-10T21:58:24Z2024-09-10T21:58:24Z2023-07-18http://hdl.handle.net/11349/40599En la era digital, el acceso a la información ha revolucionado la forma en que los viajeros planifican y disfrutan de sus aventuras, convirtiendo la web en una herramienta esencial para obtener información actualizada sobre destinos, alojamiento, transporte, actividades y recomendaciones. Sin embargo, esta abundancia de información en línea puede resultar abrumadora y caótica, lo que dificulta la planificación eficiente de un viaje. Por lo tanto, es imperativo contar con una plataforma web eficiente y de fácil uso que proporcione información fiable y actualizada a los viajeros de manera organizada y accesible. En este contexto, el presente trabajo de grado de la Especialización en Ingeniería de Software tiene como objetivo principal el desarrollo de una página web de uso intuitivo para los usuarios, además de la creación de un gestor de contenidos que permita la gestión eficaz de esta página destinada a ofrecer información ordenada, actualizada y fácilmente accesible a los viajeros. El diseño y desarrollo de páginas web son elementos cruciales en la creación de una plataforma web exitosa, y se prestará especial atención a la usabilidad, accesibilidad y atractivo visual. Para lograrlo, se aplicarán las mejores prácticas de desarrollo web, basadas en estándares internacionales y en la experiencia del usuario, con el objetivo fundamental de garantizar una experiencia de navegación satisfactoria. El gestor de contenidos desempeña un papel fundamental en la creación y gestión de la plataforma web, ya que permite a los usuarios crear, editar y gestionar el contenido del sitio de manera dinámica, sin necesidad de poseer conocimientos técnicos avanzados en programación web. En el marco de este trabajo, se llevará a cabo la creación de una API REST que posibilite la gestión de la información de la página web mediante operaciones como POST, UPDATE, PATCH y DELETE, relacionada con países, ciudades, destinos turísticos y lugares de interés. Cada una de estas entidades contendrá información detallada y estructurada para garantizar que las publicaciones sigan una misma línea en términos de diseño, con el objetivo de que los usuarios se familiaricen con la página y la utilicen tanto para planificar sus viajes como para descubrir nuevos lugares desde la perspectiva de los creadores de contenido de la página. Además, es crucial destacar que la API REST que se está implementando permitirá la construcción dinámica de la página principal de forma automática y en tiempo real. Esto se logrará mediante la ejecución de operaciones GET a la API al momento de ingresar a la página web, lo cual asegurará que el contenido esté siempre actualizado, independientemente de la sección que se esté visitando. De esta manera, se garantiza una experiencia de usuario mejorada, ya que se obtendrá información fresca y relevante en cada visita, gracias a la capacidad de la API para proporcionar datos en tiempo real. Este enfoque dinámico y automatizado permitirá una mayor flexibilidad y adaptabilidad en la presentación de contenido en la página principal, brindando así una experiencia más personalizada y atractiva para los usuarios que interactúen con el sitio web.Access to information in the digital age has revolutionized the way travelers plan and enjoy their adventures. The web has become a fundamental tool for obtaining up-to-date information on destinations, accommodation, transportation, activities and recommendations. However, the abundance of information online can be confusing and disorganized, making it difficult to plan a trip efficiently. Therefore, it is essential to have an effective and easy-to-use web platform that provides reliable and up-to-date information to travelers in an organized and accessible way. In this context, this degree project for the Software Engineering Specialization aims to develop a web page that is intuitive to use for users and, in addition to this, to develop a content manager that allows the management of this web page intended to offer information to travelers in an orderly, updated and easily accessible manner. Website design and development are crucial elements in creating a successful web platform. Usability, accessibility and visual appeal are some of the important aspects that must be considered in the creation of an efficient web page. For this, the best web development practices will be applied, based on international standards and user experience, with the aim of guaranteeing a satisfactory browsing experience for users. The content manager is a fundamental tool in the creation and management of the web platform, since it allows users to create, edit and manage the content of the site dynamically, without the need for advanced technical knowledge in web programming. In this work, a REST API will be created that will allow managing the information of the web page through operations such as POST, UPDATE, PATCH and DELETE, this information will be related to countries, cities, tourist destinations or places of interest. Each of these entities will contain detailed and structured information to ensure that the publications follow the same line in terms of design, with the aim that users become familiar with the page and use it both to plan their trips and to discover new places from the perspective of the page content creators. In addition to the above, it is important to note that the REST API that is being implemented will allow the dynamic construction of the main page automatically and in real time. This will be achieved by executing GET operations to the API at the time of entering the web page, which will ensure that the content is always up to date, regardless of the section being visited. In this way, an improved user experience is guaranteed, since fresh and relevant information will be obtained on each visit, thanks to the API's ability to provide data in real time. This dynamic and automated approach will allow for greater flexibility and adaptability in the presentation of content on the home page, thus providing a more personalized and engaging experience for users interacting with the website.pdfspaAttribution-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_abf2Gestor de ContenidosPlataforma WebAPI RESTDiseño WebExperiencia de UsuarioEspecialización en Ingeniería de Software -- Tesis y disertaciones académicasDesarrollo de páginas web -- InvestigacionesDesarrollo de prototiposGestores de informaciónWeb PlatformContent Management SystemAPI RESTWeb DesignUser ExperienceCreación de una plataforma web informativa para viajeros con página web y gestor de contenidosCreation of an informative web platform for travelers with a web page and content managerbachelorThesisCreación o Interpretacióninfo:eu-repo/semantics/bachelorThesishttp://purl.org/coar/resource_type/c_7a1fCC-LICENSElicense_rdflicense_rdfapplication/rdf+xml; charset=utf-8805https://repository.udistrital.edu.co/bitstreams/bf9fe36c-65b3-4f2f-b0f7-a1a86e4111f5/download4460e5956bc1d1639be9ae6146a50347MD510LICENSElicense.txtlicense.txttext/plain; charset=utf-87167https://repository.udistrital.edu.co/bitstreams/d286d997-a621-4a21-b6ee-ff5c62982193/download997daf6c648c962d566d7b082dac908dMD511ORIGINALAlarconManriqueCesarIvan2023.pdfAlarconManriqueCesarIvan2023.pdfTrabajo de Gradoapplication/pdf16832740https://repository.udistrital.edu.co/bitstreams/31d3c1b6-736f-497b-b078-9b39f9e583c2/downloadbd931fcf5238f40006b71fe4c77b9db2MD58Licencia de uso y publicacion.pdfLicencia de uso y publicacion.pdfLicencia de uso y publicacionapplication/pdf101728https://repository.udistrital.edu.co/bitstreams/7fc444e0-cf51-4ecc-83e9-beff0aae766a/downloadf6f7d6eb5f011203894e37d84d8537dfMD59THUMBNAILAlarconManriqueCesarIvan2023.pdf.jpgAlarconManriqueCesarIvan2023.pdf.jpgIM Thumbnailimage/jpeg3980https://repository.udistrital.edu.co/bitstreams/0d04ce90-8021-41ca-aad9-ba069fadf044/download40b824a02320f0b53cd51542929fba7fMD512Licencia de uso y publicacion.pdf.jpgLicencia de uso y publicacion.pdf.jpgIM Thumbnailimage/jpeg9486https://repository.udistrital.edu.co/bitstreams/eecf1fcb-92ac-4613-95a7-8dd4fb5b8f0c/downloadc2a5cb8c03ad8aa9cd984ff2ce028f68MD51311349/40599oai:repository.udistrital.edu.co:11349/405992024-11-27 01:05:41.925http://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