Teoría

La información del clima se obtiene del ASOS (Automated Surface Observing System) ubicados en los aereopuertos de todas las ciudades del mundo.

Instalar paquetes y llamar librerías

#("riem") # Accesar al ASOS para obtener datos climáticos
library(riem)
#install.packages("tidyverse") # Manipulación de datos
library(tidyverse) 
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr     1.1.4     ✔ readr     2.1.5
## ✔ forcats   1.0.0     ✔ stringr   1.5.1
## ✔ ggplot2   3.5.0     ✔ tibble    3.2.1
## ✔ lubridate 1.9.3     ✔ tidyr     1.3.1
## ✔ purrr     1.0.2     
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
#install.packages("ggplot2") # Gráficas con mejor diseño que plot
library(ggplot2)
#install.packages("plotly") # Gráficas con calidad
library(plotly)
## 
## Attaching package: 'plotly'
## 
## The following object is masked from 'package:ggplot2':
## 
##     last_plot
## 
## The following object is masked from 'package:stats':
## 
##     filter
## 
## The following object is masked from 'package:graphics':
## 
##     layout

Paso 1. Busca la red del país (México) y copiar CODE

view(riem_networks())
# Mx__ASOS

Paso 2. Busca la estación o ciudad (Monterrey) y copiar ID

view(riem_stations("MX__ASOS"))
# MMMY

Paso 3. Obtener los datos del clima

clima_mty <- riem_measures("MMMY")
clima_mty
## # A tibble: 91,325 × 32
##    station valid                 lon   lat  tmpf  dwpf  relh  drct  sknt  p01i
##    <chr>   <dttm>              <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
##  1 MMMY    2014-01-01 00:15:00 -100.  25.8  46.4  44.6  93.4     0     0     0
##  2 MMMY    2014-01-01 00:40:00 -100.  25.8  46.4  44.6  93.4     0     0     0
##  3 MMMY    2014-01-01 01:10:00 -100.  25.8  46.4  44.6  93.4     0     0     0
##  4 MMMY    2014-01-01 01:42:00 -100.  25.8  46.4  44.6  93.4     0     0     0
##  5 MMMY    2014-01-01 02:40:00 -100.  25.8  46.4  44.6  93.4     0     0     0
##  6 MMMY    2014-01-01 03:40:00 -100.  25.8  46.4  46.4 100     110     3     0
##  7 MMMY    2014-01-01 04:40:00 -100.  25.8  46.4  46.4 100     300     3     0
##  8 MMMY    2014-01-01 05:07:00 -100.  25.8  46.4  46.4 100     290     3     0
##  9 MMMY    2014-01-01 05:40:00 -100.  25.8  46.4  46.4 100       0     0     0
## 10 MMMY    2014-01-01 06:40:00 -100.  25.8  46.4  46.4 100     330     4     0
## # ℹ 91,315 more rows
## # ℹ 22 more variables: alti <dbl>, mslp <dbl>, vsby <dbl>, gust <dbl>,
## #   skyc1 <chr>, skyc2 <chr>, skyc3 <chr>, skyc4 <chr>, skyl1 <dbl>,
## #   skyl2 <dbl>, skyl3 <dbl>, skyl4 <dbl>, wxcodes <chr>,
## #   ice_accretion_1hr <lgl>, ice_accretion_3hr <lgl>, ice_accretion_6hr <lgl>,
## #   peak_wind_gust <lgl>, peak_wind_drct <lgl>, peak_wind_time <lgl>,
## #   feel <dbl>, metar <chr>, snowdepth <lgl>

Ejercicio 1. Obtener datos del clima de Monterrey de Febrero 2024

clima_mty_feb <- subset(clima_mty, valid >= as.POSIXct("2024-02-01 00:00") & valid <= as.POSIXct("2024-02-29 23:59"))

Ejercicio 2. Graficar la humedad relativa en Monterrey durante Febrero 2024

plot(clima_mty_feb$valid, clima_mty_feb$relh, main="Humedad Relativa en Monterrey durante Febrero 2024", xlab="Fecha",ylab="Humedad Relativa (%)")

# Promediar Humedad Relativa Diaria
clima_mty_feb$date <- as.Date(clima_mty_feb$valid)

cmfd <- aggregate(clima_mty_feb, by=list(date=clima_mty_feb$date), FUN=mean)
## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA
plot(cmfd$date,cmfd$relh, type="l", main="Promedio Diario de Humedad Relativa en Monterrey durante Febrero 2024", xlab="Fecha", ylab="Humedad Relativa (%)")

Ejercicio 3. Graficar la Temperatura Promedio Diaria durante Febrero 2024 en Guadalajara (°F a °C)

# Convertir de °F a °C

clima_gdl <- riem_measures("MMGL")
clima_gdl_feb <- subset(clima_gdl, valid >= as.POSIXct("2024-02-01 00:00") & valid <= as.POSIXct("2024-02-29 23:59"))

clima_gdl_feb$tmpc <- (clima_gdl_feb$tmpf - 32) * (5/9)

plot(clima_gdl_feb$valid, clima_gdl_feb$tmpc, main="Temperatura Promedio Diaria en Guadalajara durante Febrero 2024", xlab="Fecha",ylab="Temperatura (°C)")

# Promediar Temperatura Promedio Diaria en Guadalajara
clima_gdl_feb$date <- as.Date(clima_gdl_feb$valid)

tpm <- aggregate(clima_gdl_feb, by=list(date=clima_gdl_feb$date), FUN=mean)
## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA
plot(tpm$date,tpm$tmpc, type="l", main="Promedio Diario de Temperatura  en Guadalajara durante Febrero 2024", xlab="Fecha", ylab="Temperatura (°C)")

Conclusión

Al observar los datos recopilados del ASOS en Guadalajara durante febrero de 2024, se evidencia una tendencia descendente en la temperatura promedio diaria a lo largo del mes. La gráfica de la temperatura promedio diaria muestra que al inicio del mes de febrero, la temperatura promedio estaba cerca de los 25°C, disminuyendo gradualmente hasta alrededor de los 15°C hacia el final del mes. Este patrón sugiere una transición del clima más cálido al más fresco a medida que avanza el mes. La temperatura promedio diaria en Guadalajara durante febrero de 2024 mostró una tendencia descendente, comenzando con valores más altos al principio del mes y disminuyendo hacia finales del mismo. Este patrón puede ser atribuido a los cambios estacionales y otras influencias climáticas típicas de la región. Hubo aumento y disminución de temperatura en los días, lo que indica que febrero es un mes poco estable en su temperatura, pero en general febrero en Guadalajara fue fresco, no caliente, ni helado.

LS0tCnRpdGxlOiAiQ2xpbWEiCmF1dGhvcjogIk9zdmFsZG8gVGVsbG8gLSBBMDEyODU2NDIiCmRhdGU6ICIyMDI0LTAyLTI5IgpvdXRwdXQ6IAogIGh0bWxfZG9jdW1lbnQ6CiAgICB0b2M6IFRSVUUKICAgIHRvY19mbG9hdDogVFJVRQogICAgY29kZV9kb3dubG9hZDogVFJVRQogICAgdGhlbWU6IGRhcmsKLS0tCgohW10oL1VzZXJzL29zdmFsZG90ZWxsby9EZXNrdG9wL1RFQy9NYW5pcHVsYWNpb8yBbiBkZSBkYXRvcy9pbWFnZV9wcm9jZXNzaW5nMjAyMDA3MDMtMTcwNzAtMWZlNDJybi5naWYpCgojIDxzcGFuIHN0eWxlPSJjb2xvcjp5ZWxsb3c7Ij5UZW9yw61hPC9zcGFuPgpMYSBpbmZvcm1hY2nDs24gZGVsIGNsaW1hIHNlIG9idGllbmUgZGVsICoqQVNPUyoqICgqQXV0b21hdGVkIFN1cmZhY2UgT2JzZXJ2aW5nIFN5c3RlbSopIHViaWNhZG9zIGVuIGxvcyBhZXJlb3B1ZXJ0b3MgZGUgdG9kYXMgbGFzIGNpdWRhZGVzIGRlbCBtdW5kby4KCiMgPHNwYW4gc3R5bGU9ImNvbG9yOnllbGxvdzsiPkluc3RhbGFyIHBhcXVldGVzIHkgbGxhbWFyIGxpYnJlcsOtYXM8L3NwYW4+CmBgYHtyfQojKCJyaWVtIikgIyBBY2Nlc2FyIGFsIEFTT1MgcGFyYSBvYnRlbmVyIGRhdG9zIGNsaW3DoXRpY29zCmxpYnJhcnkocmllbSkKI2luc3RhbGwucGFja2FnZXMoInRpZHl2ZXJzZSIpICMgTWFuaXB1bGFjacOzbiBkZSBkYXRvcwpsaWJyYXJ5KHRpZHl2ZXJzZSkgCiNpbnN0YWxsLnBhY2thZ2VzKCJnZ3Bsb3QyIikgIyBHcsOhZmljYXMgY29uIG1lam9yIGRpc2XDsW8gcXVlIHBsb3QKbGlicmFyeShnZ3Bsb3QyKQojaW5zdGFsbC5wYWNrYWdlcygicGxvdGx5IikgIyBHcsOhZmljYXMgY29uIGNhbGlkYWQKbGlicmFyeShwbG90bHkpCgpgYGAKCiMgPHNwYW4gc3R5bGU9ImNvbG9yOnllbGxvdzsiPlBhc28gMS4gQnVzY2EgbGEgcmVkIGRlbCBwYcOtcyAoTcOpeGljbykgeSBjb3BpYXIgQ09ERTwvc3Bhbj4KYGBge3J9CnZpZXcocmllbV9uZXR3b3JrcygpKQojIE14X19BU09TCmBgYAoKIyA8c3BhbiBzdHlsZT0iY29sb3I6eWVsbG93OyI+UGFzbyAyLiBCdXNjYSBsYSBlc3RhY2nDs24gbyBjaXVkYWQgKE1vbnRlcnJleSkgeSBjb3BpYXIgSUQ8L3NwYW4+CmBgYHtyfQp2aWV3KHJpZW1fc3RhdGlvbnMoIk1YX19BU09TIikpCiMgTU1NWQpgYGAKCiMgPHNwYW4gc3R5bGU9ImNvbG9yOnllbGxvdzsiPlBhc28gMy4gT2J0ZW5lciBsb3MgZGF0b3MgZGVsIGNsaW1hPC9zcGFuPgpgYGB7cn0KY2xpbWFfbXR5IDwtIHJpZW1fbWVhc3VyZXMoIk1NTVkiKQpjbGltYV9tdHkKYGBgCgojIDxzcGFuIHN0eWxlPSJjb2xvcjp5ZWxsb3c7Ij5FamVyY2ljaW8gMS4gT2J0ZW5lciBkYXRvcyBkZWwgY2xpbWEgZGUgTW9udGVycmV5IGRlIEZlYnJlcm8gMjAyNDwvc3Bhbj4KYGBge3J9CmNsaW1hX210eV9mZWIgPC0gc3Vic2V0KGNsaW1hX210eSwgdmFsaWQgPj0gYXMuUE9TSVhjdCgiMjAyNC0wMi0wMSAwMDowMCIpICYgdmFsaWQgPD0gYXMuUE9TSVhjdCgiMjAyNC0wMi0yOSAyMzo1OSIpKQpgYGAKCiMgPHNwYW4gc3R5bGU9ImNvbG9yOnllbGxvdzsiPkVqZXJjaWNpbyAyLiBHcmFmaWNhciBsYSBodW1lZGFkIHJlbGF0aXZhIGVuIE1vbnRlcnJleSBkdXJhbnRlIEZlYnJlcm8gMjAyNDwvc3Bhbj4KYGBge3J9CnBsb3QoY2xpbWFfbXR5X2ZlYiR2YWxpZCwgY2xpbWFfbXR5X2ZlYiRyZWxoLCBtYWluPSJIdW1lZGFkIFJlbGF0aXZhIGVuIE1vbnRlcnJleSBkdXJhbnRlIEZlYnJlcm8gMjAyNCIsIHhsYWI9IkZlY2hhIix5bGFiPSJIdW1lZGFkIFJlbGF0aXZhICglKSIpCgojIFByb21lZGlhciBIdW1lZGFkIFJlbGF0aXZhIERpYXJpYQpjbGltYV9tdHlfZmViJGRhdGUgPC0gYXMuRGF0ZShjbGltYV9tdHlfZmViJHZhbGlkKQoKY21mZCA8LSBhZ2dyZWdhdGUoY2xpbWFfbXR5X2ZlYiwgYnk9bGlzdChkYXRlPWNsaW1hX210eV9mZWIkZGF0ZSksIEZVTj1tZWFuKQpwbG90KGNtZmQkZGF0ZSxjbWZkJHJlbGgsIHR5cGU9ImwiLCBtYWluPSJQcm9tZWRpbyBEaWFyaW8gZGUgSHVtZWRhZCBSZWxhdGl2YSBlbiBNb250ZXJyZXkgZHVyYW50ZSBGZWJyZXJvIDIwMjQiLCB4bGFiPSJGZWNoYSIsIHlsYWI9Ikh1bWVkYWQgUmVsYXRpdmEgKCUpIikKYGBgCgojIDxzcGFuIHN0eWxlPSJjb2xvcjp5ZWxsb3c7Ij5FamVyY2ljaW8gMy4gR3JhZmljYXIgbGEgVGVtcGVyYXR1cmEgUHJvbWVkaW8gRGlhcmlhIGR1cmFudGUgRmVicmVybyAyMDI0IGVuIEd1YWRhbGFqYXJhICjCsEYgYSDCsEMpPC9zcGFuPgpgYGB7cn0KIyBDb252ZXJ0aXIgZGUgwrBGIGEgwrBDCgpjbGltYV9nZGwgPC0gcmllbV9tZWFzdXJlcygiTU1HTCIpCmNsaW1hX2dkbF9mZWIgPC0gc3Vic2V0KGNsaW1hX2dkbCwgdmFsaWQgPj0gYXMuUE9TSVhjdCgiMjAyNC0wMi0wMSAwMDowMCIpICYgdmFsaWQgPD0gYXMuUE9TSVhjdCgiMjAyNC0wMi0yOSAyMzo1OSIpKQoKY2xpbWFfZ2RsX2ZlYiR0bXBjIDwtIChjbGltYV9nZGxfZmViJHRtcGYgLSAzMikgKiAoNS85KQoKcGxvdChjbGltYV9nZGxfZmViJHZhbGlkLCBjbGltYV9nZGxfZmViJHRtcGMsIG1haW49IlRlbXBlcmF0dXJhIFByb21lZGlvIERpYXJpYSBlbiBHdWFkYWxhamFyYSBkdXJhbnRlIEZlYnJlcm8gMjAyNCIsIHhsYWI9IkZlY2hhIix5bGFiPSJUZW1wZXJhdHVyYSAowrBDKSIpCgoKIyBQcm9tZWRpYXIgVGVtcGVyYXR1cmEgUHJvbWVkaW8gRGlhcmlhIGVuIEd1YWRhbGFqYXJhCmNsaW1hX2dkbF9mZWIkZGF0ZSA8LSBhcy5EYXRlKGNsaW1hX2dkbF9mZWIkdmFsaWQpCgp0cG0gPC0gYWdncmVnYXRlKGNsaW1hX2dkbF9mZWIsIGJ5PWxpc3QoZGF0ZT1jbGltYV9nZGxfZmViJGRhdGUpLCBGVU49bWVhbikKcGxvdCh0cG0kZGF0ZSx0cG0kdG1wYywgdHlwZT0ibCIsIG1haW49IlByb21lZGlvIERpYXJpbyBkZSBUZW1wZXJhdHVyYSAgZW4gR3VhZGFsYWphcmEgZHVyYW50ZSBGZWJyZXJvIDIwMjQiLCB4bGFiPSJGZWNoYSIsIHlsYWI9IlRlbXBlcmF0dXJhICjCsEMpIikKCmBgYAoKIyA8c3BhbiBzdHlsZT0iY29sb3I6eWVsbG93OyI+Q29uY2x1c2nDs248L3NwYW4+CkFsIG9ic2VydmFyIGxvcyBkYXRvcyByZWNvcGlsYWRvcyBkZWwgQVNPUyBlbiBHdWFkYWxhamFyYSBkdXJhbnRlIGZlYnJlcm8gZGUgMjAyNCwgc2UgZXZpZGVuY2lhIHVuYSAqdGVuZGVuY2lhIGRlc2NlbmRlbnRlKiBlbiBsYSB0ZW1wZXJhdHVyYSBwcm9tZWRpbyBkaWFyaWEgYSBsbyBsYXJnbyBkZWwgbWVzLiBMYSBncsOhZmljYSBkZSBsYSB0ZW1wZXJhdHVyYSBwcm9tZWRpbyBkaWFyaWEgbXVlc3RyYSBxdWUgYWwgaW5pY2lvIGRlbCBtZXMgZGUgZmVicmVybywgbGEgdGVtcGVyYXR1cmEgcHJvbWVkaW8gZXN0YWJhIGNlcmNhIGRlIGxvcyAyNcKwQywgZGlzbWludXllbmRvIGdyYWR1YWxtZW50ZSBoYXN0YSBhbHJlZGVkb3IgZGUgbG9zIDE1wrBDIGhhY2lhIGVsIGZpbmFsIGRlbCBtZXMuIEVzdGUgcGF0csOzbiBzdWdpZXJlIHVuYSB0cmFuc2ljacOzbiBkZWwgY2xpbWEgbcOhcyBjw6FsaWRvIGFsIG3DoXMgZnJlc2NvIGEgbWVkaWRhIHF1ZSBhdmFuemEgZWwgbWVzLiBMYSB0ZW1wZXJhdHVyYSBwcm9tZWRpbyBkaWFyaWEgZW4gR3VhZGFsYWphcmEgZHVyYW50ZSBmZWJyZXJvIGRlIDIwMjQgbW9zdHLDsyB1bmEgdGVuZGVuY2lhIGRlc2NlbmRlbnRlLCBjb21lbnphbmRvIGNvbiB2YWxvcmVzIG3DoXMgYWx0b3MgYWwgcHJpbmNpcGlvIGRlbCBtZXMgeSBkaXNtaW51eWVuZG8gaGFjaWEgZmluYWxlcyBkZWwgbWlzbW8uIEVzdGUgcGF0csOzbiBwdWVkZSBzZXIgYXRyaWJ1aWRvIGEgbG9zIGNhbWJpb3MgZXN0YWNpb25hbGVzIHkgb3RyYXMgaW5mbHVlbmNpYXMgY2xpbcOhdGljYXMgdMOtcGljYXMgZGUgbGEgcmVnacOzbi4gSHVibyBhdW1lbnRvIHkgZGlzbWludWNpw7NuIGRlIHRlbXBlcmF0dXJhIGVuIGxvcyBkw61hcywgbG8gcXVlIGluZGljYSBxdWUgZmVicmVybyBlcyB1biBtZXMgcG9jbyBlc3RhYmxlIGVuIHN1IHRlbXBlcmF0dXJhLCBwZXJvIGVuIGdlbmVyYWwgZmVicmVybyBlbiBHdWFkYWxhamFyYSBmdWUgZnJlc2NvLCBubyBjYWxpZW50ZSwgbmkgaGVsYWRvLiAKCg==