Importar librerias
library(readr)
## Warning: package 'readr' was built under R version 4.3.1
library(dplyr)
## Warning: package 'dplyr' was built under R version 4.3.1
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
library(cluster)
Importar Dataset
df <- read.csv("C:\\Users\\naila\\OneDrive\\Documentos\\1 TEC\\5 QUINTO SEMESTRE\\Minería de datos\\Datos bienes y raices CDMXF 1.csv")
#print(df)
Data preprocessing
# Convert categorical variables to numeric
df <- df %>%
mutate_at(vars(Cocina_equip, Gimnasio, Amueblado, Alberca, Terraza, Elevador), ~ifelse(. == "Si", 1, 0))
# Convert to numeric
df$Estacionamiento <- as.numeric(df$Estacionamiento)
## Warning: NAs introducidos por coerción
df$Alcaldia_numeric <- as.numeric(factor(df$Alcaldia))
df$Colonia_numeric <- as.numeric(factor(df$Colonia))
# Check for missing values and handle if necessary
print(colSums(is.na(df)))
## Alcaldia Colonia X1 X2
## 0 0 0 0
## X3 X4 X5 X6
## 0 0 0 0
## X7 X8 X9 X10
## 0 0 0 0
## Cocina_equip Gimnasio Amueblado Alberca
## 0 0 0 0
## Terraza Elevador m2_construido Banos
## 0 0 0 0
## Recamaras Estacionamiento Precio Alcaldia_numeric
## 0 1 0 0
## Colonia_numeric
## 0
# Handle missing values if needed
df <- na.omit(df)
# Check again for NA's
print(colSums(is.na(df)))
## Alcaldia Colonia X1 X2
## 0 0 0 0
## X3 X4 X5 X6
## 0 0 0 0
## X7 X8 X9 X10
## 0 0 0 0
## Cocina_equip Gimnasio Amueblado Alberca
## 0 0 0 0
## Terraza Elevador m2_construido Banos
## 0 0 0 0
## Recamaras Estacionamiento Precio Alcaldia_numeric
## 0 0 0 0
## Colonia_numeric
## 0
# Example: Create a new variable representing the total number of amenities
df$Total_Amenities <- rowSums(df[, c("Cocina_equip", "Gimnasio", "Amueblado", "Alberca", "Terraza", "Elevador")])
# Standardize numeric variables
numeric_columns <- df %>% select_if(is.numeric)
df_scaled <- scale(numeric_columns)
Clustering
# Perform k-means clustering
set.seed(123)
k <- 4 # choose the number of clusters based on your analysis
kmeans_result <- kmeans(df_scaled, centers = k)
df$Cluster <- as.factor(kmeans_result$cluster)
numeric_columns$Cluster <- as.numeric(kmeans_result$cluster)
# Analyze the characteristics of each cluster
cluster_summary_numeric <- numeric_columns %>% group_by(Cluster) %>% summarise_all(mean)
print(cluster_summary_numeric) # cluster with only numeric variables
## # A tibble: 4 × 25
## Cluster X1 X2 X3 X4 X5 X6 X7 X8 X9 X10
## <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 1 1.53 5.20 44.8 19.6 28.2 3.94 0.577 0.0998 9.34 47.5
## 2 2 0.765 5.81 36.4 11.6 22.4 1.50 0.152 0.0315 5.54 26.3
## 3 3 1.30 5.61 42.1 17.1 24.0 3.17 0.480 0.0434 6.70 35.7
## 4 4 1.99 4.70 45.7 20.3 30.5 5.61 5.48 0.151 8.69 48.3
## # ℹ 14 more variables: Cocina_equip <dbl>, Gimnasio <dbl>, Amueblado <dbl>,
## # Alberca <dbl>, Terraza <dbl>, Elevador <dbl>, m2_construido <dbl>,
## # Banos <dbl>, Recamaras <dbl>, Estacionamiento <dbl>, Precio <dbl>,
## # Alcaldia_numeric <dbl>, Colonia_numeric <dbl>, Total_Amenities <dbl>
cluster_summary_numeric$Alcaldia_numeric <- round(cluster_summary_numeric$Alcaldia_numeric)
cluster_summary_numeric$Colonia_numeric <- round(cluster_summary_numeric$Colonia_numeric)
cluster_summary_numeric$Total_Amenities <- round(cluster_summary_numeric$Total_Amenities)
print(cluster_summary_numeric)
## # A tibble: 4 × 25
## Cluster X1 X2 X3 X4 X5 X6 X7 X8 X9 X10
## <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 1 1.53 5.20 44.8 19.6 28.2 3.94 0.577 0.0998 9.34 47.5
## 2 2 0.765 5.81 36.4 11.6 22.4 1.50 0.152 0.0315 5.54 26.3
## 3 3 1.30 5.61 42.1 17.1 24.0 3.17 0.480 0.0434 6.70 35.7
## 4 4 1.99 4.70 45.7 20.3 30.5 5.61 5.48 0.151 8.69 48.3
## # ℹ 14 more variables: Cocina_equip <dbl>, Gimnasio <dbl>, Amueblado <dbl>,
## # Alberca <dbl>, Terraza <dbl>, Elevador <dbl>, m2_construido <dbl>,
## # Banos <dbl>, Recamaras <dbl>, Estacionamiento <dbl>, Precio <dbl>,
## # Alcaldia_numeric <dbl>, Colonia_numeric <dbl>, Total_Amenities <dbl>
cluster_summary <- df %>% group_by(Cluster) %>% summarise_all(mean)
## Warning: There were 8 warnings in `summarise()`.
## The first warning was:
## ℹ In argument: `Alcaldia = (function (x, ...) ...`.
## ℹ In group 1: `Cluster = 1`.
## Caused by warning in `mean.default()`:
## ! argument is not numeric or logical: returning NA
## ℹ Run `dplyr::last_dplyr_warnings()` to see the 7 remaining warnings.
print(cluster_summary) # cluster with categorical variables
## # A tibble: 4 × 27
## Cluster Alcaldia Colonia X1 X2 X3 X4 X5 X6 X7 X8
## <fct> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 1 NA NA 1.53 5.20 44.8 19.6 28.2 3.94 0.577 0.0998
## 2 2 NA NA 0.765 5.81 36.4 11.6 22.4 1.50 0.152 0.0315
## 3 3 NA NA 1.30 5.61 42.1 17.1 24.0 3.17 0.480 0.0434
## 4 4 NA NA 1.99 4.70 45.7 20.3 30.5 5.61 5.48 0.151
## # ℹ 16 more variables: X9 <dbl>, X10 <dbl>, Cocina_equip <dbl>, Gimnasio <dbl>,
## # Amueblado <dbl>, Alberca <dbl>, Terraza <dbl>, Elevador <dbl>,
## # m2_construido <dbl>, Banos <dbl>, Recamaras <dbl>, Estacionamiento <dbl>,
## # Precio <dbl>, Alcaldia_numeric <dbl>, Colonia_numeric <dbl>,
## # Total_Amenities <dbl>
cluster_summary$Alcaldia_numeric <- round(cluster_summary$Alcaldia_numeric)
cluster_summary$Colonia_numeric <- round(cluster_summary$Colonia_numeric)
cluster_summary$Total_Amenities <- round(cluster_summary$Total_Amenities)
print(cluster_summary)
## # A tibble: 4 × 27
## Cluster Alcaldia Colonia X1 X2 X3 X4 X5 X6 X7 X8
## <fct> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 1 NA NA 1.53 5.20 44.8 19.6 28.2 3.94 0.577 0.0998
## 2 2 NA NA 0.765 5.81 36.4 11.6 22.4 1.50 0.152 0.0315
## 3 3 NA NA 1.30 5.61 42.1 17.1 24.0 3.17 0.480 0.0434
## 4 4 NA NA 1.99 4.70 45.7 20.3 30.5 5.61 5.48 0.151
## # ℹ 16 more variables: X9 <dbl>, X10 <dbl>, Cocina_equip <dbl>, Gimnasio <dbl>,
## # Amueblado <dbl>, Alberca <dbl>, Terraza <dbl>, Elevador <dbl>,
## # m2_construido <dbl>, Banos <dbl>, Recamaras <dbl>, Estacionamiento <dbl>,
## # Precio <dbl>, Alcaldia_numeric <dbl>, Colonia_numeric <dbl>,
## # Total_Amenities <dbl>
Sets de Entrenamiento y de Evaluacion
# Split data into training and testing sets
set.seed(123)
train_indices <- sample(1:nrow(numeric_columns), 0.8 * nrow(numeric_columns))
train_data <- numeric_columns[train_indices, ]
test_data <- numeric_columns[-train_indices, ]
# Fit a linear regression model
model <- lm(Precio ~ ., data = train_data)
Predicciones
# Make predictions on the test set
predictions <- predict(model, numeric_columns = test_data)
# Evaluate the model
rmse <- sqrt(mean((predictions - test_data$Precio)^2))
## Warning in predictions - test_data$Precio: longitud de objeto mayor no es
## múltiplo de la longitud de uno menor
print(paste("Root Mean Squared Error:", rmse))
## [1] "Root Mean Squared Error: 6322.4724217328"
# Example: Predict property values for a new data point
new_property <- data.frame(
Alcaldia_numeric = 2,
Colonia_numeric = 5,
Total_Amenities = 2,
Cocina_equip = 1,
Gimnasio = 0,
Amueblado = 1,
Alberca = 1,
Terraza = 0,
Elevador = 1,
m2_construido = 200,
Banos = 2,
Recamaras = 3,
Estacionamiento = 2,
Cluster = 3 # Assign the cluster based on your analysis
)
predicted_value <- predict(model, numeric_columns = new_property)
print(paste("Predicted Property Value:", predicted_value))
## [1] "Predicted Property Value: 915.726864103557"
## [2] "Predicted Property Value: 8237.83012776578"
## [3] "Predicted Property Value: 11726.1259916677"
## [4] "Predicted Property Value: 8545.18119537925"
## [5] "Predicted Property Value: 1830.47065863579"
## [6] "Predicted Property Value: 6889.00586422357"
## [7] "Predicted Property Value: 1653.76194505858"
## [8] "Predicted Property Value: 1905.5719573471"
## [9] "Predicted Property Value: 714.166315376613"
## [10] "Predicted Property Value: 2534.30832561676"
## [11] "Predicted Property Value: 3442.0000255412"
## [12] "Predicted Property Value: 10084.3634949554"
## [13] "Predicted Property Value: 7789.79205448643"
## [14] "Predicted Property Value: 7527.26088766479"
## [15] "Predicted Property Value: 1894.15300091525"
## [16] "Predicted Property Value: 679.331346562553"
## [17] "Predicted Property Value: 2850.89470806453"
## [18] "Predicted Property Value: 10282.3520994381"
## [19] "Predicted Property Value: 1053.18613782468"
## [20] "Predicted Property Value: 20830.2215140373"
## [21] "Predicted Property Value: 1653.76194505858"
## [22] "Predicted Property Value: 5152.43441621755"
## [23] "Predicted Property Value: 2690.35450823296"
## [24] "Predicted Property Value: 7902.38359095179"
## [25] "Predicted Property Value: 3750.7132932445"
## [26] "Predicted Property Value: 2192.68441905403"
## [27] "Predicted Property Value: 2132.858191833"
## [28] "Predicted Property Value: 9737.6218444336"
## [29] "Predicted Property Value: 1516.90888877372"
## [30] "Predicted Property Value: 2078.71788256145"
## [31] "Predicted Property Value: 12957.8387010561"
## [32] "Predicted Property Value: 2357.15205495679"
## [33] "Predicted Property Value: 2981.2277735245"
## [34] "Predicted Property Value: 500.659148699201"
## [35] "Predicted Property Value: 484.44202501118"
## [36] "Predicted Property Value: 12308.6899368178"
## [37] "Predicted Property Value: 3340.3563799142"
## [38] "Predicted Property Value: 1935.72581046192"
## [39] "Predicted Property Value: 1583.71861236848"
## [40] "Predicted Property Value: 955.590141966899"
## [41] "Predicted Property Value: 750.796733727854"
## [42] "Predicted Property Value: 4052.38555194867"
## [43] "Predicted Property Value: 3002.2291635068"
## [44] "Predicted Property Value: 874.659910004837"
## [45] "Predicted Property Value: 14794.4075376791"
## [46] "Predicted Property Value: 11598.9550312776"
## [47] "Predicted Property Value: 10609.3608402734"
## [48] "Predicted Property Value: 1436.78533725623"
## [49] "Predicted Property Value: 374.002952363267"
## [50] "Predicted Property Value: 2478.12366601734"
## [51] "Predicted Property Value: 355.299751463155"
## [52] "Predicted Property Value: 1029.86983699961"
## [53] "Predicted Property Value: 8841.04866365159"
## [54] "Predicted Property Value: -863.715818239138"
## [55] "Predicted Property Value: 1114.01923392254"
## [56] "Predicted Property Value: 936.278968854873"
## [57] "Predicted Property Value: 4943.60245372797"
## [58] "Predicted Property Value: 3633.5722688589"
## [59] "Predicted Property Value: 12964.821916393"
## [60] "Predicted Property Value: 1029.59700606434"
## [61] "Predicted Property Value: 1372.93815873053"
## [62] "Predicted Property Value: 4687.05788962999"
## [63] "Predicted Property Value: 1455.33839778191"
## [64] "Predicted Property Value: 724.938900118585"
## [65] "Predicted Property Value: 6507.31482479903"
## [66] "Predicted Property Value: 1165.06856340784"
## [67] "Predicted Property Value: 1406.19488773836"
## [68] "Predicted Property Value: 4625.0501757077"
## [69] "Predicted Property Value: 883.898525849403"
## [70] "Predicted Property Value: 3148.07734359977"
## [71] "Predicted Property Value: 368.811718689188"
## [72] "Predicted Property Value: 1939.54841201025"
## [73] "Predicted Property Value: 10229.4649223634"
## [74] "Predicted Property Value: 1235.28872787416"
## [75] "Predicted Property Value: 472.366078653475"
## [76] "Predicted Property Value: 4450.05111045247"
## [77] "Predicted Property Value: 3285.04651903094"
## [78] "Predicted Property Value: -79.6335975190596"
## [79] "Predicted Property Value: 3525.27744357339"
## [80] "Predicted Property Value: -1066.52152195679"
## [81] "Predicted Property Value: 135.293476418139"
## [82] "Predicted Property Value: 8493.99737313873"
## [83] "Predicted Property Value: 708.805410511028"
## [84] "Predicted Property Value: 768.432225688792"
## [85] "Predicted Property Value: 11848.4278537137"
## [86] "Predicted Property Value: 14673.7004742708"
## [87] "Predicted Property Value: 688.320957612744"
## [88] "Predicted Property Value: 6746.76474397881"
## [89] "Predicted Property Value: 503.19418508776"
## [90] "Predicted Property Value: 572.968344573466"
## [91] "Predicted Property Value: 3881.6792872375"
## [92] "Predicted Property Value: 5019.48560540896"
## [93] "Predicted Property Value: 816.820277255607"
## [94] "Predicted Property Value: 1220.58576939927"
## [95] "Predicted Property Value: 9105.8153558039"
## [96] "Predicted Property Value: 594.171633387632"
## [97] "Predicted Property Value: 13273.2465953509"
## [98] "Predicted Property Value: 503.19418508776"
## [99] "Predicted Property Value: 1425.80660143284"
## [100] "Predicted Property Value: 1725.02972664969"
## [101] "Predicted Property Value: 1114.84026049807"
## [102] "Predicted Property Value: 2201.61184188324"
## [103] "Predicted Property Value: 9123.75604832622"
## [104] "Predicted Property Value: 423.967987518871"
## [105] "Predicted Property Value: 1022.54133975631"
## [106] "Predicted Property Value: 6734.59857832145"
## [107] "Predicted Property Value: 1544.49301613665"
## [108] "Predicted Property Value: 1810.98799226509"
## [109] "Predicted Property Value: 1761.79874613559"
## [110] "Predicted Property Value: 13688.2199088136"
## [111] "Predicted Property Value: 1366.61663628939"
## [112] "Predicted Property Value: -831.069435094075"
## [113] "Predicted Property Value: 2950.72924905987"
## [114] "Predicted Property Value: 1423.54287493772"
## [115] "Predicted Property Value: 5911.52145514856"
## [116] "Predicted Property Value: 2824.95680026333"
## [117] "Predicted Property Value: 16532.834317885"
## [118] "Predicted Property Value: 895.560748379968"
## [119] "Predicted Property Value: 2620.15424215311"
## [120] "Predicted Property Value: 1735.05264530005"
## [121] "Predicted Property Value: 13175.7889353586"
## [122] "Predicted Property Value: 9812.66237284463"
## [123] "Predicted Property Value: 2340.78318784818"
## [124] "Predicted Property Value: 719.534113228171"
## [125] "Predicted Property Value: 825.974762882067"
## [126] "Predicted Property Value: 4146.31170129259"
## [127] "Predicted Property Value: 18113.5152486682"
## [128] "Predicted Property Value: 1944.1253802675"
## [129] "Predicted Property Value: 651.684847142795"
## [130] "Predicted Property Value: -119.606290318404"
## [131] "Predicted Property Value: 1440.40762955443"
## [132] "Predicted Property Value: 544.96790968964"
## [133] "Predicted Property Value: 3085.10690819049"
## [134] "Predicted Property Value: 8841.04866365159"
## [135] "Predicted Property Value: 1094.85347501172"
## [136] "Predicted Property Value: 2314.54278408855"
## [137] "Predicted Property Value: 930.886519708754"
## [138] "Predicted Property Value: 7535.76978953665"
## [139] "Predicted Property Value: 6021.32724276701"
## [140] "Predicted Property Value: 9645.11397924182"
## [141] "Predicted Property Value: 2879.31077342077"
## [142] "Predicted Property Value: 847.487523028884"
## [143] "Predicted Property Value: 4421.67871117763"
## [144] "Predicted Property Value: 13374.5081013028"
## [145] "Predicted Property Value: 529.884984527346"
## [146] "Predicted Property Value: 7600.89863906812"
## [147] "Predicted Property Value: 216.212688342286"
## [148] "Predicted Property Value: 10155.2592427512"
## [149] "Predicted Property Value: 1210.90975754749"
## [150] "Predicted Property Value: 17947.4718728926"
## [151] "Predicted Property Value: 237.785290460699"
## [152] "Predicted Property Value: 3041.38106776296"
## [153] "Predicted Property Value: 10534.9771565102"
## [154] "Predicted Property Value: 48.8718301608133"
## [155] "Predicted Property Value: 16009.3043489561"
## [156] "Predicted Property Value: 5383.58671166268"
## [157] "Predicted Property Value: 3451.0816790833"
## [158] "Predicted Property Value: 18129.6814423286"
## [159] "Predicted Property Value: 2484.72222905102"
## [160] "Predicted Property Value: 3421.96275636959"
## [161] "Predicted Property Value: 8909.46237561297"
## [162] "Predicted Property Value: 1496.76904972503"
## [163] "Predicted Property Value: 12894.3743425097"
## [164] "Predicted Property Value: 590.427010721783"
## [165] "Predicted Property Value: 3510.32397221059"
## [166] "Predicted Property Value: 915.322007010093"
## [167] "Predicted Property Value: 2374.75487827508"
## [168] "Predicted Property Value: 1422.84772632749"
## [169] "Predicted Property Value: 5022.53977391908"
## [170] "Predicted Property Value: 3221.37057070199"
## [171] "Predicted Property Value: 4530.35587962796"
## [172] "Predicted Property Value: 5188.54505249211"
## [173] "Predicted Property Value: 686.519233850265"
## [174] "Predicted Property Value: 2850.63327952199"
## [175] "Predicted Property Value: 262.744895034151"
## [176] "Predicted Property Value: 179.966911703881"
## [177] "Predicted Property Value: 2076.25023320643"
## [178] "Predicted Property Value: 5251.09032660692"
## [179] "Predicted Property Value: 806.533760384191"
## [180] "Predicted Property Value: 1348.87890763455"
## [181] "Predicted Property Value: 11462.4831152374"
## [182] "Predicted Property Value: 13021.4288995434"
## [183] "Predicted Property Value: 13018.4347759717"
## [184] "Predicted Property Value: 93.6509693476783"
## [185] "Predicted Property Value: 9387.70130200566"
## [186] "Predicted Property Value: 16007.1480698663"
## [187] "Predicted Property Value: 1433.14360051478"
## [188] "Predicted Property Value: 16274.8926195602"
## [189] "Predicted Property Value: 83.4248190569052"
## [190] "Predicted Property Value: 1496.76904972503"
## [191] "Predicted Property Value: 2556.91904056026"
## [192] "Predicted Property Value: 473.176787287061"
## [193] "Predicted Property Value: 1429.11592226434"
## [194] "Predicted Property Value: 2249.90528031033"
## [195] "Predicted Property Value: 798.179810938421"
## [196] "Predicted Property Value: 1933.20367466269"
## [197] "Predicted Property Value: 1303.92023463224"
## [198] "Predicted Property Value: 10432.7029521775"
## [199] "Predicted Property Value: 1033.55107452171"
## [200] "Predicted Property Value: 409.240454565787"
## [201] "Predicted Property Value: 210.727910141928"
## [202] "Predicted Property Value: 268.234407878679"
## [203] "Predicted Property Value: 4668.69173234466"
## [204] "Predicted Property Value: 3287.68687910859"
## [205] "Predicted Property Value: -128.76334770211"
## [206] "Predicted Property Value: 5729.91446024631"
## [207] "Predicted Property Value: 1540.98230665668"
## [208] "Predicted Property Value: 10668.8587967056"
## [209] "Predicted Property Value: 146.584637735333"
## [210] "Predicted Property Value: 4038.46093617153"
## [211] "Predicted Property Value: 260.845411736681"
## [212] "Predicted Property Value: 3412.06778145044"
## [213] "Predicted Property Value: 10123.3357808307"
## [214] "Predicted Property Value: 1735.40499101286"
## [215] "Predicted Property Value: 11294.8502819121"
## [216] "Predicted Property Value: 900.720669384167"
## [217] "Predicted Property Value: 898.875063596861"
## [218] "Predicted Property Value: 2309.03042435149"
## [219] "Predicted Property Value: 1964.6689114281"
## [220] "Predicted Property Value: -95.7863928124767"
## [221] "Predicted Property Value: 1521.18224015519"
## [222] "Predicted Property Value: 2897.10281002873"
## [223] "Predicted Property Value: 2778.99682242794"
## [224] "Predicted Property Value: 6131.77163561528"
## [225] "Predicted Property Value: 7668.05491859638"
## [226] "Predicted Property Value: 10658.7513092278"
## [227] "Predicted Property Value: 2081.8773792581"
## [228] "Predicted Property Value: 961.781272153827"
## [229] "Predicted Property Value: 8396.7112091113"
## [230] "Predicted Property Value: 20241.3361141969"
## [231] "Predicted Property Value: 677.095758549547"
## [232] "Predicted Property Value: 708.7615284862"
## [233] "Predicted Property Value: 13898.0424231059"
## [234] "Predicted Property Value: 15821.3287984959"
## [235] "Predicted Property Value: 17402.6780776732"
## [236] "Predicted Property Value: -218.567598464769"
## [237] "Predicted Property Value: 1254.33675338796"
## [238] "Predicted Property Value: -604.072486425449"
## [239] "Predicted Property Value: 2767.55668994141"
## [240] "Predicted Property Value: 46.0724276172703"
## [241] "Predicted Property Value: 16261.5146331351"
## [242] "Predicted Property Value: 2886.37363275574"
## [243] "Predicted Property Value: 10470.2926889984"
## [244] "Predicted Property Value: 12040.3463194675"
## [245] "Predicted Property Value: 1719.56082068553"
## [246] "Predicted Property Value: 3992.95567199631"
## [247] "Predicted Property Value: 13095.3702155036"
## [248] "Predicted Property Value: 14525.5111023307"
## [249] "Predicted Property Value: 961.781272153827"
## [250] "Predicted Property Value: 129.740237003837"
## [251] "Predicted Property Value: 591.187260024457"
## [252] "Predicted Property Value: 9954.96811547689"
## [253] "Predicted Property Value: -347.474539986584"
## [254] "Predicted Property Value: 16596.2661137309"
## [255] "Predicted Property Value: 1449.72328534623"
## [256] "Predicted Property Value: 2120.92681624306"
## [257] "Predicted Property Value: 1894.49416807157"
## [258] "Predicted Property Value: 561.266400578984"
## [259] "Predicted Property Value: 3677.94199949115"
## [260] "Predicted Property Value: 17396.0994798523"
## [261] "Predicted Property Value: 1002.80383743849"
## [262] "Predicted Property Value: 250.449089271179"
## [263] "Predicted Property Value: 253.38807937364"
## [264] "Predicted Property Value: 4344.0054141261"
## [265] "Predicted Property Value: 13970.5502583035"
## [266] "Predicted Property Value: 4340.39038660078"
## [267] "Predicted Property Value: 824.487935163912"
## [268] "Predicted Property Value: 5995.67678776003"
## [269] "Predicted Property Value: 12359.4362431941"
## [270] "Predicted Property Value: 2547.63106858418"
## [271] "Predicted Property Value: 21275.9007853321"
## [272] "Predicted Property Value: 4136.795963922"
## [273] "Predicted Property Value: 1256.91295150601"
## [274] "Predicted Property Value: 9033.84308644372"
## [275] "Predicted Property Value: 3570.46332189889"
## [276] "Predicted Property Value: 7406.58134956729"
## [277] "Predicted Property Value: 4584.42746881403"
## [278] "Predicted Property Value: 759.583351299704"
## [279] "Predicted Property Value: 10505.8168558717"
## [280] "Predicted Property Value: 6384.66327149314"
## [281] "Predicted Property Value: 10792.9348334913"
## [282] "Predicted Property Value: 790.843648094382"
## [283] "Predicted Property Value: 1480.05760524815"
## [284] "Predicted Property Value: 1501.2181807479"
## [285] "Predicted Property Value: 11023.8085414232"
## [286] "Predicted Property Value: 1904.39106412515"
## [287] "Predicted Property Value: 596.853179309962"
## [288] "Predicted Property Value: 253.38807937364"
## [289] "Predicted Property Value: 11507.6001855826"
## [290] "Predicted Property Value: 337.972984808629"
## [291] "Predicted Property Value: 6590.71496867397"
## [292] "Predicted Property Value: 7062.51698116224"
## [293] "Predicted Property Value: 5280.06216435266"
## [294] "Predicted Property Value: 10191.0167444404"
## [295] "Predicted Property Value: 416.717594841151"
## [296] "Predicted Property Value: 3830.98811219912"
## [297] "Predicted Property Value: 1797.55990098353"
## [298] "Predicted Property Value: 890.350618030656"
## [299] "Predicted Property Value: 9220.92271981301"
## [300] "Predicted Property Value: 453.736380525195"
## [301] "Predicted Property Value: 14734.1678861272"
## [302] "Predicted Property Value: 2751.11218946994"
## [303] "Predicted Property Value: 1951.43308099475"
## [304] "Predicted Property Value: 5885.66987749768"
## [305] "Predicted Property Value: 2242.73663614158"
## [306] "Predicted Property Value: 1689.6349503977"
## [307] "Predicted Property Value: 15825.6567215834"
## [308] "Predicted Property Value: 6375.9027861657"
## [309] "Predicted Property Value: 7727.61694830414"
## [310] "Predicted Property Value: 3267.10614760046"
## [311] "Predicted Property Value: 4331.75546731408"
## [312] "Predicted Property Value: 1960.57279256307"
## [313] "Predicted Property Value: 949.92439308216"
## [314] "Predicted Property Value: 24256.2631396089"
## [315] "Predicted Property Value: 866.456498957545"
## [316] "Predicted Property Value: 1117.27892958075"
## [317] "Predicted Property Value: 573.883528953325"
## [318] "Predicted Property Value: 455.197667615685"
## [319] "Predicted Property Value: 799.077023757159"
## [320] "Predicted Property Value: 2652.09130473914"
## [321] "Predicted Property Value: 832.590039429334"
## [322] "Predicted Property Value: 864.432195494462"
## [323] "Predicted Property Value: 861.468669654164"
## [324] "Predicted Property Value: 673.128398010916"
## [325] "Predicted Property Value: -254.87544939905"
## [326] "Predicted Property Value: 712.794965058752"
## [327] "Predicted Property Value: 513.439858029889"
## [328] "Predicted Property Value: 6312.78499434575"
## [329] "Predicted Property Value: 7951.4451857792"
## [330] "Predicted Property Value: 13909.8735018087"
## [331] "Predicted Property Value: -653.193055246812"
## [332] "Predicted Property Value: 10770.0208547962"
## [333] "Predicted Property Value: 4111.49697151639"
## [334] "Predicted Property Value: 926.422650694346"
## [335] "Predicted Property Value: -152.986342149818"
## [336] "Predicted Property Value: 7566.81530215869"
## [337] "Predicted Property Value: 3076.94286461112"
## [338] "Predicted Property Value: 13717.5253183215"
## [339] "Predicted Property Value: 1117.52037663763"
## [340] "Predicted Property Value: 717.380256410905"
## [341] "Predicted Property Value: 8726.46665987368"
## [342] "Predicted Property Value: 15798.2321628912"
## [343] "Predicted Property Value: 19311.3745596776"
## [344] "Predicted Property Value: 1063.9115813874"
## [345] "Predicted Property Value: 5099.18374716258"
## [346] "Predicted Property Value: 1388.07676373163"
## [347] "Predicted Property Value: 10628.9313046623"
## [348] "Predicted Property Value: 1047.95225116306"
## [349] "Predicted Property Value: 260.845411736681"
## [350] "Predicted Property Value: 494.424748642442"
## [351] "Predicted Property Value: 875.600827880842"
## [352] "Predicted Property Value: 262.632620802029"
## [353] "Predicted Property Value: 1187.69743148547"
## [354] "Predicted Property Value: 916.478647151909"
## [355] "Predicted Property Value: 778.964511825985"
## [356] "Predicted Property Value: 2446.21859732028"
## [357] "Predicted Property Value: 365.895772027647"
## [358] "Predicted Property Value: 1805.03652261344"
## [359] "Predicted Property Value: 4698.4276736034"
## [360] "Predicted Property Value: 45.9065027422839"
## [361] "Predicted Property Value: 555.180889276915"
## [362] "Predicted Property Value: 3111.95236110639"
## [363] "Predicted Property Value: 4187.72970573664"
## [364] "Predicted Property Value: -136.794757320757"
## [365] "Predicted Property Value: 945.369061782724"
## [366] "Predicted Property Value: 4686.7230997321"
## [367] "Predicted Property Value: 1380.45657551045"
## [368] "Predicted Property Value: 11168.3269342252"
## [369] "Predicted Property Value: 1653.76194505858"
## [370] "Predicted Property Value: 732.981758148421"
## [371] "Predicted Property Value: 1052.83398114407"
## [372] "Predicted Property Value: 5018.66418936021"
## [373] "Predicted Property Value: 1839.7552313953"
## [374] "Predicted Property Value: 2741.50276109174"
## [375] "Predicted Property Value: 2587.77642628652"
## [376] "Predicted Property Value: 2219.25992253632"
## [377] "Predicted Property Value: 937.720693141294"
## [378] "Predicted Property Value: 6699.20265335396"
## [379] "Predicted Property Value: 6803.52380772798"
## [380] "Predicted Property Value: 1242.26447270083"
## [381] "Predicted Property Value: 1227.38460177969"
## [382] "Predicted Property Value: 6119.68326936374"
## [383] "Predicted Property Value: 351.893598022899"
## [384] "Predicted Property Value: 1497.33886998143"
## [385] "Predicted Property Value: 312.562073401877"
## [386] "Predicted Property Value: 10251.7077418042"
## [387] "Predicted Property Value: 366.109325243981"
## [388] "Predicted Property Value: 1496.91856686726"
## [389] "Predicted Property Value: 3879.17998080114"
## [390] "Predicted Property Value: 822.642329376605"
## [391] "Predicted Property Value: 1459.98694928491"
## [392] "Predicted Property Value: 1864.94020133923"
## [393] "Predicted Property Value: 8405.89855863952"
## [394] "Predicted Property Value: 100.922610933128"
## [395] "Predicted Property Value: 198.250840069616"
## [396] "Predicted Property Value: 606.515176065865"
## [397] "Predicted Property Value: 13503.0915511638"
## [398] "Predicted Property Value: 13579.2506014854"
## [399] "Predicted Property Value: 8881.68410415866"
## [400] "Predicted Property Value: 6058.58213669866"
## [401] "Predicted Property Value: -64.9197644412886"
## [402] "Predicted Property Value: 1902.29181253142"
## [403] "Predicted Property Value: 621.219548442655"
## [404] "Predicted Property Value: 8638.71111967302"
## [405] "Predicted Property Value: 21537.9499815424"
## [406] "Predicted Property Value: 6414.20310808633"
## [407] "Predicted Property Value: 9631.36891062835"
## [408] "Predicted Property Value: 11864.2055019466"
## [409] "Predicted Property Value: 4399.45178075245"
## [410] "Predicted Property Value: 721.226190421392"
## [411] "Predicted Property Value: 457.44401415219"
## [412] "Predicted Property Value: 9460.39813584393"
## [413] "Predicted Property Value: 1249.30716661908"
## [414] "Predicted Property Value: 1126.73216786666"
## [415] "Predicted Property Value: 781.398561446827"
## [416] "Predicted Property Value: 250.249952395891"
## [417] "Predicted Property Value: 618.789320368116"
## [418] "Predicted Property Value: 411.790256578945"
## [419] "Predicted Property Value: 933.022599663478"
## [420] "Predicted Property Value: 15159.9147858491"
## [421] "Predicted Property Value: 351.294434401721"
## [422] "Predicted Property Value: 8570.23010735899"
## [423] "Predicted Property Value: 96.6913246607132"
## [424] "Predicted Property Value: 433.662686678375"
## [425] "Predicted Property Value: 645.124727598492"
## [426] "Predicted Property Value: 4127.77976110501"
## [427] "Predicted Property Value: 8440.51522198908"
## [428] "Predicted Property Value: 137.52929789626"
## [429] "Predicted Property Value: 1179.95332936594"
## [430] "Predicted Property Value: 11507.4188731284"
## [431] "Predicted Property Value: 49.9713572638685"
## [432] "Predicted Property Value: 12818.1416082894"
## [433] "Predicted Property Value: 1109.74588254108"
## [434] "Predicted Property Value: 4.33214888209585"
## [435] "Predicted Property Value: 5249.30038655295"
## [436] "Predicted Property Value: 233.126328674388"
## [437] "Predicted Property Value: 604.837830714768"
## [438] "Predicted Property Value: 3115.46086155231"
## [439] "Predicted Property Value: 2284.48166597295"
## [440] "Predicted Property Value: 5564.35940370319"
## [441] "Predicted Property Value: 1155.269305879"
## [442] "Predicted Property Value: 3062.91645889254"
## [443] "Predicted Property Value: 581.359295106015"
## [444] "Predicted Property Value: 477.770865543888"
## [445] "Predicted Property Value: 573.22716987874"
## [446] "Predicted Property Value: 318.637369881215"
## [447] "Predicted Property Value: 9209.86037412736"
## [448] "Predicted Property Value: 1978.7465964086"
## [449] "Predicted Property Value: 14585.3808142147"
## [450] "Predicted Property Value: 4461.22483328875"
## [451] "Predicted Property Value: 1145.53786356605"
## [452] "Predicted Property Value: 4043.12710762807"
## [453] "Predicted Property Value: 2193.84901112957"
## [454] "Predicted Property Value: 1528.72572068342"
## [455] "Predicted Property Value: 518.509097256037"
## [456] "Predicted Property Value: 7232.56490854739"
## [457] "Predicted Property Value: 4438.22003174968"
## [458] "Predicted Property Value: 4799.26013985371"
## [459] "Predicted Property Value: 11147.2970285746"
## [460] "Predicted Property Value: 1769.61287561108"
## [461] "Predicted Property Value: 15798.2321628912"
## [462] "Predicted Property Value: 10782.6105412565"
## [463] "Predicted Property Value: 933.667967301868"
## [464] "Predicted Property Value: 15796.60659827"
## [465] "Predicted Property Value: 2947.94576256376"
## [466] "Predicted Property Value: 3256.23437551291"
## [467] "Predicted Property Value: 1452.46774390049"
## [468] "Predicted Property Value: 12556.5555670057"
## [469] "Predicted Property Value: 16434.6463418214"
## [470] "Predicted Property Value: 2240.3133523435"
## [471] "Predicted Property Value: 1063.99063553531"
## [472] "Predicted Property Value: 2374.75487827508"
## [473] "Predicted Property Value: 1418.02388082701"
## [474] "Predicted Property Value: 10237.3591760831"
## [475] "Predicted Property Value: 5537.05667730802"
## [476] "Predicted Property Value: 6308.43053727288"
## [477] "Predicted Property Value: 8353.60151837974"
## [478] "Predicted Property Value: 1821.7907873134"
## [479] "Predicted Property Value: 7325.69743604227"
## [480] "Predicted Property Value: 15016.122525003"
## [481] "Predicted Property Value: 11401.4061426421"
## [482] "Predicted Property Value: 1082.82325943365"
## [483] "Predicted Property Value: 10602.8699185117"
## [484] "Predicted Property Value: 1411.03350810089"
## [485] "Predicted Property Value: 11749.6969084932"
## [486] "Predicted Property Value: 336.925679517789"
## [487] "Predicted Property Value: 352.949522556088"
## [488] "Predicted Property Value: 14585.3808142147"
## [489] "Predicted Property Value: 1218.13486322881"
## [490] "Predicted Property Value: 2337.45009642818"
## [491] "Predicted Property Value: 14998.3568097945"
## [492] "Predicted Property Value: 268.234407878679"
## [493] "Predicted Property Value: 1637.51135362623"
## [494] "Predicted Property Value: 4423.48166415769"
## [495] "Predicted Property Value: 4424.92021788306"
## [496] "Predicted Property Value: 326.40717564039"
## [497] "Predicted Property Value: 9322.08049214775"
## [498] "Predicted Property Value: 544.986814222399"
## [499] "Predicted Property Value: 202.81124743925"
## [500] "Predicted Property Value: 10979.2434724126"
## [501] "Predicted Property Value: 8606.94602779249"
## [502] "Predicted Property Value: 1369.36617091384"
## [503] "Predicted Property Value: 12566.7991135277"
## [504] "Predicted Property Value: 907.730399273722"
## [505] "Predicted Property Value: 4427.62261132827"
## [506] "Predicted Property Value: 452.859025880822"
## [507] "Predicted Property Value: 13383.8895584652"
## [508] "Predicted Property Value: 2217.93669247124"
## [509] "Predicted Property Value: 7214.78819809492"
## [510] "Predicted Property Value: 1257.99724583571"
## [511] "Predicted Property Value: 6275.6314365543"
## [512] "Predicted Property Value: 1299.58045280464"
## [513] "Predicted Property Value: -678.603966653563"
## [514] "Predicted Property Value: 1180.68021728575"
## [515] "Predicted Property Value: 12491.5621072403"
## [516] "Predicted Property Value: 572.683757223336"
## [517] "Predicted Property Value: 11101.7390633649"
## [518] "Predicted Property Value: -247.686143498515"
## [519] "Predicted Property Value: 515.325712010473"
## [520] "Predicted Property Value: 500.200721739127"
## [521] "Predicted Property Value: 16266.4055434752"
## [522] "Predicted Property Value: 768.506191346208"
## [523] "Predicted Property Value: 6514.48223445372"
## [524] "Predicted Property Value: 5251.09032660692"
## [525] "Predicted Property Value: 1092.63266910288"
LS0tDQp0aXRsZTogIkV2aWRlbmNpYSAxIg0KYXV0aG9yOiAiRXF1aXBvIDMiDQpkYXRlOiAiMTYtMTEtMjAyMyINCm91dHB1dDoNCiAgaHRtbF9kb2N1bWVudDoNCiAgICB0b2M6IHllcw0KICAgIHRvY19mbG9hdDogeWVzDQogICAgY29kZV9kb3dubG9hZDogeWVzDQogIHBkZl9kb2N1bWVudDoNCiAgICB0b2M6IHllcw0KLS0tDQoNCiMjIEltcG9ydGFyIGxpYnJlcmlhcw0KYGBge3J9DQpsaWJyYXJ5KHJlYWRyKQ0KbGlicmFyeShkcGx5cikNCmxpYnJhcnkoY2x1c3RlcikNCmBgYA0KDQojIyBJbXBvcnRhciBEYXRhc2V0DQpgYGB7cn0NCmRmIDwtIHJlYWQuY3N2KCJDOlxcVXNlcnNcXG5haWxhXFxPbmVEcml2ZVxcRG9jdW1lbnRvc1xcMSBURUNcXDUgUVVJTlRPIFNFTUVTVFJFXFxNaW5lcsOtYSBkZSBkYXRvc1xcRGF0b3MgYmllbmVzIHkgcmFpY2VzIENETVhGIDEuY3N2IikNCiNwcmludChkZikNCmBgYA0KDQojIyBEYXRhIHByZXByb2Nlc3NpbmcNCmBgYHtyfQ0KIyBDb252ZXJ0IGNhdGVnb3JpY2FsIHZhcmlhYmxlcyB0byBudW1lcmljDQpkZiA8LSBkZiAlPiUNCiAgbXV0YXRlX2F0KHZhcnMoQ29jaW5hX2VxdWlwLCBHaW1uYXNpbywgQW11ZWJsYWRvLCBBbGJlcmNhLCBUZXJyYXphLCBFbGV2YWRvciksIH5pZmVsc2UoLiA9PSAiU2kiLCAxLCAwKSkNCg0KIyBDb252ZXJ0IHRvIG51bWVyaWMNCmRmJEVzdGFjaW9uYW1pZW50byA8LSBhcy5udW1lcmljKGRmJEVzdGFjaW9uYW1pZW50bykNCmRmJEFsY2FsZGlhX251bWVyaWMgPC0gYXMubnVtZXJpYyhmYWN0b3IoZGYkQWxjYWxkaWEpKQ0KZGYkQ29sb25pYV9udW1lcmljIDwtIGFzLm51bWVyaWMoZmFjdG9yKGRmJENvbG9uaWEpKQ0KDQojIENoZWNrIGZvciBtaXNzaW5nIHZhbHVlcyBhbmQgaGFuZGxlIGlmIG5lY2Vzc2FyeQ0KcHJpbnQoY29sU3Vtcyhpcy5uYShkZikpKQ0KDQojIEhhbmRsZSBtaXNzaW5nIHZhbHVlcyBpZiBuZWVkZWQNCmRmIDwtIG5hLm9taXQoZGYpDQoNCiMgQ2hlY2sgYWdhaW4gZm9yIE5BJ3MNCnByaW50KGNvbFN1bXMoaXMubmEoZGYpKSkNCg0KIyBFeGFtcGxlOiBDcmVhdGUgYSBuZXcgdmFyaWFibGUgcmVwcmVzZW50aW5nIHRoZSB0b3RhbCBudW1iZXIgb2YgYW1lbml0aWVzDQpkZiRUb3RhbF9BbWVuaXRpZXMgPC0gcm93U3VtcyhkZlssIGMoIkNvY2luYV9lcXVpcCIsICJHaW1uYXNpbyIsICJBbXVlYmxhZG8iLCAiQWxiZXJjYSIsICJUZXJyYXphIiwgIkVsZXZhZG9yIildKQ0KDQojIFN0YW5kYXJkaXplIG51bWVyaWMgdmFyaWFibGVzDQpudW1lcmljX2NvbHVtbnMgPC0gZGYgJT4lIHNlbGVjdF9pZihpcy5udW1lcmljKQ0KZGZfc2NhbGVkIDwtIHNjYWxlKG51bWVyaWNfY29sdW1ucykNCmBgYA0KDQojIyBDbHVzdGVyaW5nDQpgYGB7cn0NCiMgUGVyZm9ybSBrLW1lYW5zIGNsdXN0ZXJpbmcNCnNldC5zZWVkKDEyMykNCmsgPC0gNCAgIyBjaG9vc2UgdGhlIG51bWJlciBvZiBjbHVzdGVycyBiYXNlZCBvbiB5b3VyIGFuYWx5c2lzDQprbWVhbnNfcmVzdWx0IDwtIGttZWFucyhkZl9zY2FsZWQsIGNlbnRlcnMgPSBrKQ0KZGYkQ2x1c3RlciA8LSBhcy5mYWN0b3Ioa21lYW5zX3Jlc3VsdCRjbHVzdGVyKQ0KbnVtZXJpY19jb2x1bW5zJENsdXN0ZXIgPC0gYXMubnVtZXJpYyhrbWVhbnNfcmVzdWx0JGNsdXN0ZXIpDQoNCiMgQW5hbHl6ZSB0aGUgY2hhcmFjdGVyaXN0aWNzIG9mIGVhY2ggY2x1c3Rlcg0KY2x1c3Rlcl9zdW1tYXJ5X251bWVyaWMgPC0gbnVtZXJpY19jb2x1bW5zICU+JSBncm91cF9ieShDbHVzdGVyKSAlPiUgc3VtbWFyaXNlX2FsbChtZWFuKQ0KcHJpbnQoY2x1c3Rlcl9zdW1tYXJ5X251bWVyaWMpICMgY2x1c3RlciB3aXRoIG9ubHkgbnVtZXJpYyB2YXJpYWJsZXMNCmNsdXN0ZXJfc3VtbWFyeV9udW1lcmljJEFsY2FsZGlhX251bWVyaWMgPC0gIHJvdW5kKGNsdXN0ZXJfc3VtbWFyeV9udW1lcmljJEFsY2FsZGlhX251bWVyaWMpDQpjbHVzdGVyX3N1bW1hcnlfbnVtZXJpYyRDb2xvbmlhX251bWVyaWMgPC0gcm91bmQoY2x1c3Rlcl9zdW1tYXJ5X251bWVyaWMkQ29sb25pYV9udW1lcmljKQ0KY2x1c3Rlcl9zdW1tYXJ5X251bWVyaWMkVG90YWxfQW1lbml0aWVzIDwtIHJvdW5kKGNsdXN0ZXJfc3VtbWFyeV9udW1lcmljJFRvdGFsX0FtZW5pdGllcykNCnByaW50KGNsdXN0ZXJfc3VtbWFyeV9udW1lcmljKQ0KDQpjbHVzdGVyX3N1bW1hcnkgPC0gZGYgJT4lIGdyb3VwX2J5KENsdXN0ZXIpICU+JSBzdW1tYXJpc2VfYWxsKG1lYW4pDQpwcmludChjbHVzdGVyX3N1bW1hcnkpICMgY2x1c3RlciB3aXRoIGNhdGVnb3JpY2FsIHZhcmlhYmxlcw0KY2x1c3Rlcl9zdW1tYXJ5JEFsY2FsZGlhX251bWVyaWMgPC0gIHJvdW5kKGNsdXN0ZXJfc3VtbWFyeSRBbGNhbGRpYV9udW1lcmljKQ0KY2x1c3Rlcl9zdW1tYXJ5JENvbG9uaWFfbnVtZXJpYyA8LSByb3VuZChjbHVzdGVyX3N1bW1hcnkkQ29sb25pYV9udW1lcmljKQ0KY2x1c3Rlcl9zdW1tYXJ5JFRvdGFsX0FtZW5pdGllcyA8LSByb3VuZChjbHVzdGVyX3N1bW1hcnkkVG90YWxfQW1lbml0aWVzKQ0KcHJpbnQoY2x1c3Rlcl9zdW1tYXJ5KQ0KYGBgDQoNCiMjIFNldHMgZGUgRW50cmVuYW1pZW50byB5IGRlIEV2YWx1YWNpb24NCmBgYHtyfQ0KIyBTcGxpdCBkYXRhIGludG8gdHJhaW5pbmcgYW5kIHRlc3Rpbmcgc2V0cw0Kc2V0LnNlZWQoMTIzKQ0KdHJhaW5faW5kaWNlcyA8LSBzYW1wbGUoMTpucm93KG51bWVyaWNfY29sdW1ucyksIDAuOCAqIG5yb3cobnVtZXJpY19jb2x1bW5zKSkNCnRyYWluX2RhdGEgPC0gbnVtZXJpY19jb2x1bW5zW3RyYWluX2luZGljZXMsIF0NCnRlc3RfZGF0YSA8LSBudW1lcmljX2NvbHVtbnNbLXRyYWluX2luZGljZXMsIF0NCg0KIyBGaXQgYSBsaW5lYXIgcmVncmVzc2lvbiBtb2RlbA0KbW9kZWwgPC0gbG0oUHJlY2lvIH4gLiwgZGF0YSA9IHRyYWluX2RhdGEpDQpgYGANCg0KIyMgUHJlZGljY2lvbmVzDQpgYGB7cn0NCiMgTWFrZSBwcmVkaWN0aW9ucyBvbiB0aGUgdGVzdCBzZXQNCnByZWRpY3Rpb25zIDwtIHByZWRpY3QobW9kZWwsIG51bWVyaWNfY29sdW1ucyA9IHRlc3RfZGF0YSkNCg0KIyBFdmFsdWF0ZSB0aGUgbW9kZWwNCnJtc2UgPC0gc3FydChtZWFuKChwcmVkaWN0aW9ucyAtIHRlc3RfZGF0YSRQcmVjaW8pXjIpKQ0KcHJpbnQocGFzdGUoIlJvb3QgTWVhbiBTcXVhcmVkIEVycm9yOiIsIHJtc2UpKQ0KDQojIEV4YW1wbGU6IFByZWRpY3QgcHJvcGVydHkgdmFsdWVzIGZvciBhIG5ldyBkYXRhIHBvaW50DQpuZXdfcHJvcGVydHkgPC0gZGF0YS5mcmFtZSgNCiAgQWxjYWxkaWFfbnVtZXJpYyA9IDIsDQogIENvbG9uaWFfbnVtZXJpYyA9IDUsDQogIFRvdGFsX0FtZW5pdGllcyA9IDIsDQogIENvY2luYV9lcXVpcCA9IDEsDQogIEdpbW5hc2lvID0gMCwNCiAgQW11ZWJsYWRvID0gMSwNCiAgQWxiZXJjYSA9IDEsDQogIFRlcnJhemEgPSAwLA0KICBFbGV2YWRvciA9IDEsDQogIG0yX2NvbnN0cnVpZG8gPSAyMDAsDQogIEJhbm9zID0gMiwNCiAgUmVjYW1hcmFzID0gMywNCiAgRXN0YWNpb25hbWllbnRvID0gMiwNCiAgQ2x1c3RlciA9IDMgICMgQXNzaWduIHRoZSBjbHVzdGVyIGJhc2VkIG9uIHlvdXIgYW5hbHlzaXMNCikNCg0KcHJlZGljdGVkX3ZhbHVlIDwtIHByZWRpY3QobW9kZWwsIG51bWVyaWNfY29sdW1ucyA9IG5ld19wcm9wZXJ0eSkNCnByaW50KHBhc3RlKCJQcmVkaWN0ZWQgUHJvcGVydHkgVmFsdWU6IiwgcHJlZGljdGVkX3ZhbHVlKSkNCmBgYA0K