#Look at objects and features columns
head(MetObjects_copy)
# reclass "Departments" into binary
MetObjects_copy$isDept1[MetObjects_copy$Department == "American Decorative Arts"] <- 1
MetObjects_copy$isDept1[MetObjects_copy$Department != "American Decorative Arts"] <- 0
MetObjects_copy$isDept2[MetObjects_copy$Department == "American Paintings and Sculpture"] <- 1
MetObjects_copy$isDept2[MetObjects_copy$Department != "American Paintings and Sculpture"] <- 0
MetObjects_copy$isDept3[MetObjects_copy$Department == "Ancient Near Eastern Art"] <- 1
MetObjects_copy$isDept3[MetObjects_copy$Department != "Ancient Near Eastern Art"] <- 0
MetObjects_copy$isDept4[MetObjects_copy$Department == "Arms and Armor"] <- 1
MetObjects_copy$isDept4[MetObjects_copy$Department != "Arms and Armor"] <- 0
MetObjects_copy$isDept5[MetObjects_copy$Department == "Arts of Africa, Oceania, and the Americas"] <- 1
MetObjects_copy$isDept5[MetObjects_copy$Department != "Arts of Africa, Oceania, and the Americas"] <- 0
MetObjects_copy$isDept6[MetObjects_copy$Department == "Asian Art"] <- 1
MetObjects_copy$isDept6[MetObjects_copy$Department != "Asian Art"] <- 0
MetObjects_copy$isDept7[MetObjects_copy$Department == "Costume Institute"] <- 1
MetObjects_copy$isDept7[MetObjects_copy$Department != "Costume Institute"] <- 0
MetObjects_copy$isDept8[MetObjects_copy$Department == "Egyptian Art"] <- 1
MetObjects_copy$isDept8[MetObjects_copy$Department != "Egyptian Art"] <- 0
MetObjects_copy$isDept9[MetObjects_copy$Department == "European Paintings"] <- 1
MetObjects_copy$isDept9[MetObjects_copy$Department != "European Paintings"] <- 0
MetObjects_copy$isDept10[MetObjects_copy$Department == "European Sculpture and Decorative Arts"] <- 1
MetObjects_copy$isDept10[MetObjects_copy$Department != "European Sculpture and Decorative Arts"] <- 0
MetObjects_copy$isDept11[MetObjects_copy$Department == "Greek and Roman Art"] <- 1
MetObjects_copy$isDept11[MetObjects_copy$Department != "Greek and Roman Art"] <- 0
MetObjects_copy$isDept12[MetObjects_copy$Department == "Islamic Art"] <- 1
MetObjects_copy$isDept12[MetObjects_copy$Department != "Islamic Art"] <- 0
MetObjects_copy$isDept13[MetObjects_copy$Department == "Medieval Art"] <- 1
MetObjects_copy$isDept13[MetObjects_copy$Department != "Medieval Art"] <- 0
MetObjects_copy$isDept14[MetObjects_copy$Department == "Modern and Contemporary Art"] <- 1
MetObjects_copy$isDept14[MetObjects_copy$Department != "Modern and Contemporary Art"] <- 0
MetObjects_copy$isDept15[MetObjects_copy$Department == "Musical Instruments"] <- 1
MetObjects_copy$isDept15[MetObjects_copy$Department != "Musical Instruments"] <- 0
MetObjects_copy$isDept16[MetObjects_copy$Department == "Photographs"] <- 1
MetObjects_copy$isDept16[MetObjects_copy$Department != "Photographs"] <- 0
MetObjects_copy$isDept17[MetObjects_copy$Department == "Robert Lehman Collection"] <- 1
MetObjects_copy$isDept17[MetObjects_copy$Department != "Robert Lehman Collection"] <- 0
MetObjects_copy$isDept18[MetObjects_copy$Department == "The Libraries"] <- 1
MetObjects_copy$isDept18[MetObjects_copy$Department != "The Libraries"] <- 0
MetObjects_copy$isDept19[MetObjects_copy$Department == "Drawings and Prints"] <- 1
MetObjects_copy$isDept19[MetObjects_copy$Department != "Drawings and Prints"] <- 0
#Rename date columns to be usable
colnames(MetObjects_copy)[22] <- "objectDateRange"
colnames(MetObjects_copy)[23] <- "objectBeginDate"
colnames(MetObjects_copy)[24] <- "objectEndDate"
install.packages('dplyr')
library(dplyr)

#create new csv copies
write.csv(MetObjects_copy, file = "MetObjects_copy.csv")

#Work with new MetObjects_copy-copy file
MetObjects_copy.csv <- "MetObjects_copy"

#remove non-numerical columns
MetObjects_ce <- select(MetObjects_copy, -isHighlight, -isPublic, -objectName, -Culture, -Title, -Period, -Dynasty, -Reign, -Portfolio, -artistRole, -artistPrefix, -artistDisplayName, -artistSuffix, -artistAlphaSort, -artistNationality, -objectDateRange, -Dimensions, -creditLine, -geographyType, -City, -State, -County, -Country, -Region, -Subregion, -Locale, -Locus, -Excavation, -River, -Classification, -rightsReproduction, -linkResolution, -metadataDate, -Repository, -Medium, -artistDisplayBio, -Department, -objectNumber, -artistBeginDate, -artistEndDate)
library(corrplot)
corrplot 0.84 loaded
corrmatrix <- cor(MetObjects_ce, use="complete.obs")
View(corrmatrix)
corrplot(corrmatrix, method="circle") # corrmatrix is the name of the correlation matrix we created above

corrplot.mixed(corrmatrix, number.cex = 0.8, tl.cex = 0.6)

#number.cex changes the size of the number fonts. tl.cex changes the size of the labels
corrplot(corrmatrix, type="lower")

summary(regression_1)

Call:
lm(formula = objectBeginDate ~ isDept1 + isDept2 + isDept3 + 
    isDept4 + isDept5 + isDept6 + isDept7 + isDept8 + isDept9 + 
    isDept10 + isDept11 + isDept12 + isDept13 + isDept14 + isDept15 + 
    isDept16 + isDept17 + isDept18 + isDept19, data = MetObjects_copy)

Residuals:
     Min       1Q   Median       3Q      Max 
  -93467     -114       -9       68 18589943 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)   1290.9      535.6   2.410   0.0159 *  
isDept1        524.5      589.4   0.890   0.3735    
isDept2        544.4      651.6   0.836   0.4034    
isDept3      -2587.9      639.4  -4.048 5.17e-05 ***
isDept4        274.9      585.4   0.470   0.6386    
isDept5        -79.6      589.6  -0.135   0.8926    
isDept6        111.5      554.3   0.201   0.8406    
isDept7        609.3      555.8   1.096   0.2730    
isDept8      -2823.7      560.5  -5.037 4.72e-07 ***
isDept9        415.8      746.2   0.557   0.5774    
isDept10       431.5      551.9   0.782   0.4343    
isDept11     -2478.6      574.6  -4.313 1.61e-05 ***
isDept12      -204.8      579.7  -0.353   0.7238    
isDept13      -388.7      624.1  -0.623   0.5334    
isDept14       649.5      582.6   1.115   0.2649    
isDept15       444.8      654.8   0.679   0.4970    
isDept16       617.0      554.3   1.113   0.2656    
isDept17       355.5      760.3   0.468   0.6401    
isDept18       520.3     2028.5   0.256   0.7976    
isDept19       627.0      539.9   1.161   0.2455    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 27460 on 458638 degrees of freedom
  (167 observations deleted due to missingness)
Multiple R-squared:  0.001378,  Adjusted R-squared:  0.001336 
F-statistic:  33.3 on 19 and 458638 DF,  p-value: < 2.2e-16
summary(regression_2)

Call:
lm(formula = hasGold ~ isDept1 + isDept2 + isDept3 + isDept4 + 
    isDept5 + isDept6 + isDept7 + isDept8 + isDept9 + isDept10 + 
    isDept11 + isDept12 + isDept13 + isDept14 + isDept15 + isDept16 + 
    isDept17 + isDept18 + isDept19, data = MetObjects_copy)

Residuals:
     Min       1Q   Median       3Q      Max 
-0.37830 -0.03783 -0.00571 -0.00487  0.99986 

Coefficients:
             Estimate Std. Error t value Pr(>|t|)    
(Intercept)  0.072353   0.003586  20.175  < 2e-16 ***
isDept1     -0.052612   0.003946 -13.332  < 2e-16 ***
isDept2     -0.039842   0.004362  -9.133  < 2e-16 ***
isDept3     -0.036778   0.004281  -8.592  < 2e-16 ***
isDept4      0.305951   0.003920  78.058  < 2e-16 ***
isDept5     -0.007322   0.003948  -1.855 0.063656 .  
isDept6      0.014215   0.003712   3.830 0.000128 ***
isDept7     -0.066645   0.003722 -17.908  < 2e-16 ***
isDept8     -0.036708   0.003753  -9.780  < 2e-16 ***
isDept9      0.009637   0.004995   1.929 0.053704 .  
isDept10    -0.034524   0.003695  -9.343  < 2e-16 ***
isDept11     0.029923   0.003848   7.777 7.43e-15 ***
isDept12     0.032645   0.003882   8.410  < 2e-16 ***
isDept13     0.040469   0.004179   9.684  < 2e-16 ***
isDept14    -0.059737   0.003901 -15.314  < 2e-16 ***
isDept15    -0.066704   0.004384 -15.214  < 2e-16 ***
isDept16    -0.072218   0.003712 -19.456  < 2e-16 ***
isDept17    -0.005120   0.005090  -1.006 0.314505    
isDept18    -0.072353   0.013576  -5.330 9.85e-08 ***
isDept19    -0.067480   0.003615 -18.666  < 2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.1838 on 458507 degrees of freedom
  (298 observations deleted due to missingness)
Multiple R-squared:  0.1213,    Adjusted R-squared:  0.1212 
F-statistic:  3330 on 19 and 458507 DF,  p-value: < 2.2e-16
summary(regression_3)

Call:
lm(formula = hasSilver ~ isDept1 + isDept2 + isDept3 + isDept4 + 
    isDept5 + isDept6 + isDept7 + isDept8 + isDept9 + isDept10 + 
    isDept11 + isDept12 + isDept13 + isDept14 + isDept15 + isDept16 + 
    isDept17 + isDept18 + isDept19, data = MetObjects_copy)

Residuals:
     Min       1Q   Median       3Q      Max 
-0.50193 -0.06234 -0.00805 -0.00065  0.99935 

Coefficients:
             Estimate Std. Error t value Pr(>|t|)    
(Intercept)  0.131759   0.004404  29.917  < 2e-16 ***
isDept1     -0.020051   0.004846  -4.138 3.51e-05 ***
isDept2     -0.117513   0.005357 -21.935  < 2e-16 ***
isDept3     -0.102975   0.005257 -19.589  < 2e-16 ***
isDept4      0.128959   0.004813  26.792  < 2e-16 ***
isDept5     -0.057449   0.004848 -11.849  < 2e-16 ***
isDept6     -0.104727   0.004558 -22.976  < 2e-16 ***
isDept7     -0.123709   0.004570 -27.068  < 2e-16 ***
isDept8     -0.121632   0.004609 -26.388  < 2e-16 ***
isDept9     -0.127105   0.006135 -20.719  < 2e-16 ***
isDept10    -0.020126   0.004538  -4.435 9.20e-06 ***
isDept11    -0.104106   0.004725 -22.033  < 2e-16 ***
isDept12    -0.057078   0.004767 -11.973  < 2e-16 ***
isDept13    -0.019755   0.005132  -3.849 0.000118 ***
isDept14    -0.103319   0.004790 -21.568  < 2e-16 ***
isDept15    -0.069424   0.005384 -12.894  < 2e-16 ***
isDept16     0.370166   0.004558  81.207  < 2e-16 ***
isDept17    -0.104325   0.006251 -16.688  < 2e-16 ***
isDept18    -0.126683   0.016672  -7.599 3.00e-14 ***
isDept19    -0.131113   0.004440 -29.532  < 2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.2257 on 458507 degrees of freedom
  (298 observations deleted due to missingness)
Multiple R-squared:  0.2704,    Adjusted R-squared:  0.2704 
F-statistic:  8945 on 19 and 458507 DF,  p-value: < 2.2e-16
summary(regression_4)

Call:
lm(formula = hasBronze ~ isDept1 + isDept2 + isDept3 + isDept4 + 
    isDept5 + isDept6 + isDept7 + isDept8 + isDept9 + isDept10 + 
    isDept11 + isDept12 + isDept13 + isDept14 + isDept15 + isDept16 + 
    isDept17 + isDept18 + isDept19, data = MetObjects_copy)

Residuals:
     Min       1Q   Median       3Q      Max 
-0.12646 -0.03825 -0.00073 -0.00005  0.99995 

Coefficients:
              Estimate Std. Error t value Pr(>|t|)    
(Intercept)  6.474e-03  3.077e-03   2.104 0.035410 *  
isDept1      2.434e-02  3.386e-03   7.189 6.55e-13 ***
isDept2      6.531e-02  3.743e-03  17.446  < 2e-16 ***
isDept3      1.200e-01  3.673e-03  32.665  < 2e-16 ***
isDept4      3.825e-02  3.363e-03  11.373  < 2e-16 ***
isDept5     -1.899e-05  3.388e-03  -0.006 0.995528    
isDept6      5.926e-02  3.185e-03  18.608  < 2e-16 ***
isDept7     -5.742e-03  3.193e-03  -1.798 0.072178 .  
isDept8      2.816e-02  3.221e-03   8.742  < 2e-16 ***
isDept9     -6.474e-03  4.287e-03  -1.510 0.130980    
isDept10     7.919e-02  3.171e-03  24.974  < 2e-16 ***
isDept11     1.017e-01  3.302e-03  30.811  < 2e-16 ***
isDept12     1.280e-02  3.331e-03   3.843 0.000122 ***
isDept13     1.247e-02  3.586e-03   3.476 0.000508 ***
isDept14     1.953e-02  3.347e-03   5.834 5.43e-09 ***
isDept15     3.063e-02  3.762e-03   8.141 3.94e-16 ***
isDept16    -6.474e-03  3.185e-03  -2.033 0.042101 *  
isDept17     3.178e-02  4.368e-03   7.276 3.46e-13 ***
isDept18    -6.474e-03  1.165e-02  -0.556 0.578407    
isDept19    -6.424e-03  3.102e-03  -2.071 0.038361 *  
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.1577 on 458507 degrees of freedom
  (298 observations deleted due to missingness)
Multiple R-squared:  0.04793,   Adjusted R-squared:  0.04789 
F-statistic:  1215 on 19 and 458507 DF,  p-value: < 2.2e-16
summary(regression_5)

Call:
lm(formula = hasLeather ~ isDept1 + isDept2 + isDept3 + isDept4 + 
    isDept5 + isDept6 + isDept7 + isDept8 + isDept9 + isDept10 + 
    isDept11 + isDept12 + isDept13 + isDept14 + isDept15 + isDept16 + 
    isDept17 + isDept18 + isDept19, data = MetObjects_copy)

Residuals:
     Min       1Q   Median       3Q      Max 
-0.12301 -0.00533 -0.00081 -0.00019  0.99995 

Coefficients:
              Estimate Std. Error t value Pr(>|t|)    
(Intercept)  0.0087586  0.0022430   3.905 9.43e-05 ***
isDept1     -0.0055486  0.0024680  -2.248 0.024565 *  
isDept2     -0.0012700  0.0027284  -0.465 0.641591    
isDept3     -0.0079500  0.0026772  -2.970 0.002982 ** 
isDept4      0.0946106  0.0024514  38.595  < 2e-16 ***
isDept5      0.0066521  0.0024692   2.694 0.007059 ** 
isDept6     -0.0075397  0.0023214  -3.248 0.001163 ** 
isDept7      0.1142508  0.0023276  49.085  < 2e-16 ***
isDept8     -0.0069073  0.0023474  -2.942 0.003256 ** 
isDept9     -0.0087586  0.0031243  -2.803 0.005057 ** 
isDept10    -0.0034282  0.0023111  -1.483 0.137980    
isDept11    -0.0087586  0.0024063  -3.640 0.000273 ***
isDept12     0.0005848  0.0024278   0.241 0.809655    
isDept13    -0.0009918  0.0026136  -0.379 0.704326    
isDept14    -0.0040186  0.0024396  -1.647 0.099518 .  
isDept15     0.0281529  0.0027421  10.267  < 2e-16 ***
isDept16    -0.0087043  0.0023215  -3.750 0.000177 ***
isDept17    -0.0029626  0.0031837  -0.931 0.352083    
isDept18    -0.0087586  0.0084908  -1.032 0.302288    
isDept19    -0.0085678  0.0022610  -3.789 0.000151 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.1149 on 458507 degrees of freedom
  (298 observations deleted due to missingness)
Multiple R-squared:  0.08693,   Adjusted R-squared:  0.08689 
F-statistic:  2297 on 19 and 458507 DF,  p-value: < 2.2e-16
summary(regression_4)

Call:
lm(formula = hasBronze ~ isDept1 + isDept2 + isDept3 + isDept4 + 
    isDept5 + isDept6 + isDept7 + isDept8 + isDept9 + isDept10 + 
    isDept11 + isDept12 + isDept13 + isDept14 + isDept15 + isDept16 + 
    isDept17 + isDept18 + isDept19, data = MetObjects_copy)

Residuals:
     Min       1Q   Median       3Q      Max 
-0.12646 -0.03825 -0.00073 -0.00005  0.99995 

Coefficients:
              Estimate Std. Error t value Pr(>|t|)    
(Intercept)  6.474e-03  3.077e-03   2.104 0.035410 *  
isDept1      2.434e-02  3.386e-03   7.189 6.55e-13 ***
isDept2      6.531e-02  3.743e-03  17.446  < 2e-16 ***
isDept3      1.200e-01  3.673e-03  32.665  < 2e-16 ***
isDept4      3.825e-02  3.363e-03  11.373  < 2e-16 ***
isDept5     -1.899e-05  3.388e-03  -0.006 0.995528    
isDept6      5.926e-02  3.185e-03  18.608  < 2e-16 ***
isDept7     -5.742e-03  3.193e-03  -1.798 0.072178 .  
isDept8      2.816e-02  3.221e-03   8.742  < 2e-16 ***
isDept9     -6.474e-03  4.287e-03  -1.510 0.130980    
isDept10     7.919e-02  3.171e-03  24.974  < 2e-16 ***
isDept11     1.017e-01  3.302e-03  30.811  < 2e-16 ***
isDept12     1.280e-02  3.331e-03   3.843 0.000122 ***
isDept13     1.247e-02  3.586e-03   3.476 0.000508 ***
isDept14     1.953e-02  3.347e-03   5.834 5.43e-09 ***
isDept15     3.063e-02  3.762e-03   8.141 3.94e-16 ***
isDept16    -6.474e-03  3.185e-03  -2.033 0.042101 *  
isDept17     3.178e-02  4.368e-03   7.276 3.46e-13 ***
isDept18    -6.474e-03  1.165e-02  -0.556 0.578407    
isDept19    -6.424e-03  3.102e-03  -2.071 0.038361 *  
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.1577 on 458507 degrees of freedom
  (298 observations deleted due to missingness)
Multiple R-squared:  0.04793,   Adjusted R-squared:  0.04789 
F-statistic:  1215 on 19 and 458507 DF,  p-value: < 2.2e-16
summary(regression_5)

Call:
lm(formula = hasLeather ~ isDept1 + isDept2 + isDept3 + isDept4 + 
    isDept5 + isDept6 + isDept7 + isDept8 + isDept9 + isDept10 + 
    isDept11 + isDept12 + isDept13 + isDept14 + isDept15 + isDept16 + 
    isDept17 + isDept18 + isDept19, data = MetObjects_copy)

Residuals:
     Min       1Q   Median       3Q      Max 
-0.12301 -0.00533 -0.00081 -0.00019  0.99995 

Coefficients:
              Estimate Std. Error t value Pr(>|t|)    
(Intercept)  0.0087586  0.0022430   3.905 9.43e-05 ***
isDept1     -0.0055486  0.0024680  -2.248 0.024565 *  
isDept2     -0.0012700  0.0027284  -0.465 0.641591    
isDept3     -0.0079500  0.0026772  -2.970 0.002982 ** 
isDept4      0.0946106  0.0024514  38.595  < 2e-16 ***
isDept5      0.0066521  0.0024692   2.694 0.007059 ** 
isDept6     -0.0075397  0.0023214  -3.248 0.001163 ** 
isDept7      0.1142508  0.0023276  49.085  < 2e-16 ***
isDept8     -0.0069073  0.0023474  -2.942 0.003256 ** 
isDept9     -0.0087586  0.0031243  -2.803 0.005057 ** 
isDept10    -0.0034282  0.0023111  -1.483 0.137980    
isDept11    -0.0087586  0.0024063  -3.640 0.000273 ***
isDept12     0.0005848  0.0024278   0.241 0.809655    
isDept13    -0.0009918  0.0026136  -0.379 0.704326    
isDept14    -0.0040186  0.0024396  -1.647 0.099518 .  
isDept15     0.0281529  0.0027421  10.267  < 2e-16 ***
isDept16    -0.0087043  0.0023215  -3.750 0.000177 ***
isDept17    -0.0029626  0.0031837  -0.931 0.352083    
isDept18    -0.0087586  0.0084908  -1.032 0.302288    
isDept19    -0.0085678  0.0022610  -3.789 0.000151 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.1149 on 458507 degrees of freedom
  (298 observations deleted due to missingness)
Multiple R-squared:  0.08693,   Adjusted R-squared:  0.08689 
F-statistic:  2297 on 19 and 458507 DF,  p-value: < 2.2e-16
summary(regression_6)

Call:
lm(formula = hasSteel ~ isDept1 + isDept2 + isDept3 + isDept4 + 
    isDept5 + isDept6 + isDept7 + isDept8 + isDept9 + isDept10 + 
    isDept11 + isDept12 + isDept13 + isDept14 + isDept15 + isDept16 + 
    isDept17 + isDept18 + isDept19, data = MetObjects_copy)

Residuals:
     Min       1Q   Median       3Q      Max 
-0.43917 -0.00252 -0.00153 -0.00032  0.99997 

Coefficients:
              Estimate Std. Error t value Pr(>|t|)    
(Intercept)  3.808e-04  1.977e-03   0.193  0.84729    
isDept1      4.354e-03  2.176e-03   2.001  0.04538 *  
isDept2     -1.982e-04  2.405e-03  -0.082  0.93434    
isDept3     -3.808e-04  2.360e-03  -0.161  0.87182    
isDept4      4.388e-01  2.161e-03 203.038  < 2e-16 ***
isDept5     -5.807e-05  2.177e-03  -0.027  0.97872    
isDept6      2.151e-04  2.047e-03   0.105  0.91630    
isDept7      2.137e-03  2.052e-03   1.041  0.29774    
isDept8     -3.808e-04  2.070e-03  -0.184  0.85401    
isDept9     -3.808e-04  2.754e-03  -0.138  0.89004    
isDept10     1.284e-02  2.037e-03   6.302 2.95e-10 ***
isDept11    -3.808e-04  2.121e-03  -0.180  0.85754    
isDept12     3.213e-03  2.140e-03   1.501  0.13334    
isDept13     5.730e-04  2.304e-03   0.249  0.80361    
isDept14     2.081e-02  2.151e-03   9.675  < 2e-16 ***
isDept15     7.529e-03  2.417e-03   3.114  0.00184 ** 
isDept16    -3.537e-04  2.047e-03  -0.173  0.86279    
isDept17     7.784e-04  2.807e-03   0.277  0.78153    
isDept18    -3.808e-04  7.485e-03  -0.051  0.95943    
isDept19     1.151e-03  1.993e-03   0.578  0.56354    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.1013 on 458507 degrees of freedom
  (298 observations deleted due to missingness)
Multiple R-squared:  0.3471,    Adjusted R-squared:  0.3471 
F-statistic: 1.283e+04 on 19 and 458507 DF,  p-value: < 2.2e-16
summary(regression_7)

Call:
lm(formula = hasZinc ~ isDept1 + isDept2 + isDept3 + isDept4 + 
    isDept5 + isDept6 + isDept7 + isDept8 + isDept9 + isDept10 + 
    isDept11 + isDept12 + isDept13 + isDept14 + isDept15 + isDept16 + 
    isDept17 + isDept18 + isDept19, data = MetObjects_copy)

Residuals:
     Min       1Q   Median       3Q      Max 
-0.00541 -0.00226 -0.00008 -0.00002  0.99998 

Coefficients:
              Estimate Std. Error t value Pr(>|t|)    
(Intercept)  1.194e-14  5.990e-04   0.000 1.000000    
isDept1      4.013e-04  6.591e-04   0.609 0.542676    
isDept2      5.479e-04  7.286e-04   0.752 0.452047    
isDept3     -1.581e-14  7.150e-04   0.000 1.000000    
isDept4     -3.513e-14  6.547e-04   0.000 1.000000    
isDept5      8.068e-05  6.594e-04   0.122 0.902618    
isDept6      5.417e-05  6.200e-04   0.087 0.930368    
isDept7     -1.105e-14  6.216e-04   0.000 1.000000    
isDept8      3.630e-05  6.269e-04   0.058 0.953828    
isDept9     -1.291e-14  8.344e-04   0.000 1.000000    
isDept10     2.348e-05  6.172e-04   0.038 0.969652    
isDept11    -5.193e-15  6.426e-04   0.000 1.000000    
isDept12     1.895e-03  6.484e-04   2.922 0.003473 ** 
isDept13     1.363e-04  6.980e-04   0.195 0.845228    
isDept14     4.182e-04  6.515e-04   0.642 0.520925    
isDept15     5.650e-04  7.323e-04   0.771 0.440412    
isDept16    -6.942e-15  6.200e-04   0.000 1.000000    
isDept17     5.410e-03  8.502e-04   6.362 1.99e-10 ***
isDept18    -8.380e-15  2.268e-03   0.000 1.000000    
isDept19     2.258e-03  6.038e-04   3.740 0.000184 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.0307 on 458507 degrees of freedom
  (298 observations deleted due to missingness)
Multiple R-squared:  0.001292,  Adjusted R-squared:  0.00125 
F-statistic: 31.21 on 19 and 458507 DF,  p-value: < 2.2e-16
summary(regression_8)

Call:
lm(formula = isDept19 ~ hasAbalone + hasAgate + hasAlloy + hasBronze + 
    hasCoral + hasGlass + hasGold + hasInk + hasJade + hasLeather + 
    hasLinen + hasNickel + hasPorcelain + hasSilk + hasSilver + 
    hasSteel + hasWalnut + hasWatercolour + hasWood + hasZinc, 
    data = MetObjects_copy)

Residuals:
     Min       1Q   Median       3Q      Max 
-0.93340 -0.48263 -0.05962  0.51737  1.62898 

Coefficients:
                 Estimate Std. Error  t value Pr(>|t|)    
(Intercept)     0.4826285  0.0007976  605.130  < 2e-16 ***
hasAbalone     -0.0608801  0.0565741   -1.076 0.281877    
hasAgate       -0.3455473  0.0165798  -20.841  < 2e-16 ***
hasAlloy       -0.1458599  0.0059347  -24.577  < 2e-16 ***
hasBronze      -0.4323556  0.0039556 -109.301  < 2e-16 ***
hasCoral       -0.0844502  0.0211857   -3.986 6.72e-05 ***
hasGlass       -0.3454408  0.0029989 -115.189  < 2e-16 ***
hasGold        -0.2610834  0.0033959  -76.883  < 2e-16 ***
hasInk          0.0285331  0.0024759   11.524  < 2e-16 ***
hasJade        -0.4210175  0.0107257  -39.253  < 2e-16 ***
hasLeather     -0.2805684  0.0053319  -52.621  < 2e-16 ***
hasLinen       -0.2880825  0.0048348  -59.585  < 2e-16 ***
hasNickel      -0.1039327  0.0267778   -3.881 0.000104 ***
hasPorcelain   -0.4619804  0.0043026 -107.372  < 2e-16 ***
hasSilk        -0.4230040  0.0024453 -172.989  < 2e-16 ***
hasSilver      -0.3476161  0.0024976 -139.182  < 2e-16 ***
hasSteel       -0.2032179  0.0052132  -38.982  < 2e-16 ***
hasWalnut      -0.3059998  0.0132287  -23.132  < 2e-16 ***
hasWatercolour  0.4222343  0.0761141    5.547 2.90e-08 ***
hasWood        -0.0799063  0.0024758  -32.275  < 2e-16 ***
hasZinc         0.4244720  0.0207126   20.493  < 2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.4304 on 458506 degrees of freedom
  (298 observations deleted due to missingness)
Multiple R-squared:  0.1903,    Adjusted R-squared:  0.1902 
F-statistic:  5387 on 20 and 458506 DF,  p-value: < 2.2e-16
summary(regression_9)

Call:
lm(formula = isDept14 ~ hasAbalone + hasAgate + hasAlloy + hasBronze + 
    hasCoral + hasGlass + hasGold + hasInk + hasJade + hasLeather + 
    hasLinen + hasNickel + hasPorcelain + hasSilk + hasSilver + 
    hasSteel + hasWalnut + hasWatercolour + hasWood + hasZinc, 
    data = MetObjects_copy)

Residuals:
     Min       1Q   Median       3Q      Max 
-0.20195 -0.03162 -0.03162 -0.03162  1.04483 

Coefficients:
                 Estimate Std. Error t value Pr(>|t|)    
(Intercept)     0.0316250  0.0003217  98.306  < 2e-16 ***
hasAbalone     -0.0139187  0.0228193  -0.610  0.54189    
hasAgate       -0.0205299  0.0066875  -3.070  0.00214 ** 
hasAlloy       -0.0149041  0.0023938  -6.226 4.78e-10 ***
hasBronze       0.0008776  0.0015955   0.550  0.58230    
hasCoral        0.0071737  0.0085453   0.839  0.40120    
hasGlass        0.0161837  0.0012096  13.379  < 2e-16 ***
hasGold        -0.0199341  0.0013697 -14.553  < 2e-16 ***
hasInk          0.0297217  0.0009987  29.761  < 2e-16 ***
hasJade        -0.0283020  0.0043262  -6.542 6.08e-11 ***
hasLeather     -0.0219250  0.0021506 -10.195  < 2e-16 ***
hasLinen       -0.0104274  0.0019501  -5.347 8.95e-08 ***
hasNickel       0.1431406  0.0108009  13.253  < 2e-16 ***
hasPorcelain   -0.0035295  0.0017355  -2.034  0.04198 *  
hasSilk         0.0082112  0.0009863   8.325  < 2e-16 ***
hasSilver      -0.0212350  0.0010074 -21.079  < 2e-16 ***
hasSteel        0.0271841  0.0021027  12.928  < 2e-16 ***
hasWalnut       0.0262489  0.0053358   4.919 8.69e-07 ***
hasWatercolour -0.0448497  0.0307008  -1.461  0.14405    
hasWood        -0.0164436  0.0009986 -16.466  < 2e-16 ***
hasZinc        -0.0162114  0.0083545  -1.940  0.05233 .  
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.1736 on 458506 degrees of freedom
  (298 observations deleted due to missingness)
Multiple R-squared:  0.005458,  Adjusted R-squared:  0.005414 
F-statistic: 125.8 on 20 and 458506 DF,  p-value: < 2.2e-16
LS0tCnRpdGxlOiAiTWV0IE9iamVjdHMgRHVtbXkgVmFyaWFibGVzICYgQ29ycmVsYXRpb24iCm91dHB1dDogaHRtbF9ub3RlYm9vawotLS0KYGBge3J9CiNMb29rIGF0IG9iamVjdHMgYW5kIGZlYXR1cmVzIGNvbHVtbnMKaGVhZChNZXRPYmplY3RzX2NvcHkpCmBgYAoKCmBgYHtyfQojIHJlY2xhc3MgIkRlcGFydG1lbnRzIiBpbnRvIGJpbmFyeQpNZXRPYmplY3RzX2NvcHkkaXNEZXB0MVtNZXRPYmplY3RzX2NvcHkkRGVwYXJ0bWVudCA9PSAiQW1lcmljYW4gRGVjb3JhdGl2ZSBBcnRzIl0gPC0gMQpNZXRPYmplY3RzX2NvcHkkaXNEZXB0MVtNZXRPYmplY3RzX2NvcHkkRGVwYXJ0bWVudCAhPSAiQW1lcmljYW4gRGVjb3JhdGl2ZSBBcnRzIl0gPC0gMAoKTWV0T2JqZWN0c19jb3B5JGlzRGVwdDJbTWV0T2JqZWN0c19jb3B5JERlcGFydG1lbnQgPT0gIkFtZXJpY2FuIFBhaW50aW5ncyBhbmQgU2N1bHB0dXJlIl0gPC0gMQpNZXRPYmplY3RzX2NvcHkkaXNEZXB0MltNZXRPYmplY3RzX2NvcHkkRGVwYXJ0bWVudCAhPSAiQW1lcmljYW4gUGFpbnRpbmdzIGFuZCBTY3VscHR1cmUiXSA8LSAwCgpNZXRPYmplY3RzX2NvcHkkaXNEZXB0M1tNZXRPYmplY3RzX2NvcHkkRGVwYXJ0bWVudCA9PSAiQW5jaWVudCBOZWFyIEVhc3Rlcm4gQXJ0Il0gPC0gMQpNZXRPYmplY3RzX2NvcHkkaXNEZXB0M1tNZXRPYmplY3RzX2NvcHkkRGVwYXJ0bWVudCAhPSAiQW5jaWVudCBOZWFyIEVhc3Rlcm4gQXJ0Il0gPC0gMAoKTWV0T2JqZWN0c19jb3B5JGlzRGVwdDRbTWV0T2JqZWN0c19jb3B5JERlcGFydG1lbnQgPT0gIkFybXMgYW5kIEFybW9yIl0gPC0gMQpNZXRPYmplY3RzX2NvcHkkaXNEZXB0NFtNZXRPYmplY3RzX2NvcHkkRGVwYXJ0bWVudCAhPSAiQXJtcyBhbmQgQXJtb3IiXSA8LSAwCgpNZXRPYmplY3RzX2NvcHkkaXNEZXB0NVtNZXRPYmplY3RzX2NvcHkkRGVwYXJ0bWVudCA9PSAiQXJ0cyBvZiBBZnJpY2EsIE9jZWFuaWEsIGFuZCB0aGUgQW1lcmljYXMiXSA8LSAxCk1ldE9iamVjdHNfY29weSRpc0RlcHQ1W01ldE9iamVjdHNfY29weSREZXBhcnRtZW50ICE9ICJBcnRzIG9mIEFmcmljYSwgT2NlYW5pYSwgYW5kIHRoZSBBbWVyaWNhcyJdIDwtIDAKCk1ldE9iamVjdHNfY29weSRpc0RlcHQ2W01ldE9iamVjdHNfY29weSREZXBhcnRtZW50ID09ICJBc2lhbiBBcnQiXSA8LSAxCk1ldE9iamVjdHNfY29weSRpc0RlcHQ2W01ldE9iamVjdHNfY29weSREZXBhcnRtZW50ICE9ICJBc2lhbiBBcnQiXSA8LSAwCgpNZXRPYmplY3RzX2NvcHkkaXNEZXB0N1tNZXRPYmplY3RzX2NvcHkkRGVwYXJ0bWVudCA9PSAiQ29zdHVtZSBJbnN0aXR1dGUiXSA8LSAxCk1ldE9iamVjdHNfY29weSRpc0RlcHQ3W01ldE9iamVjdHNfY29weSREZXBhcnRtZW50ICE9ICJDb3N0dW1lIEluc3RpdHV0ZSJdIDwtIDAKCk1ldE9iamVjdHNfY29weSRpc0RlcHQ4W01ldE9iamVjdHNfY29weSREZXBhcnRtZW50ID09ICJFZ3lwdGlhbiBBcnQiXSA8LSAxCk1ldE9iamVjdHNfY29weSRpc0RlcHQ4W01ldE9iamVjdHNfY29weSREZXBhcnRtZW50ICE9ICJFZ3lwdGlhbiBBcnQiXSA8LSAwCgpNZXRPYmplY3RzX2NvcHkkaXNEZXB0OVtNZXRPYmplY3RzX2NvcHkkRGVwYXJ0bWVudCA9PSAiRXVyb3BlYW4gUGFpbnRpbmdzIl0gPC0gMQpNZXRPYmplY3RzX2NvcHkkaXNEZXB0OVtNZXRPYmplY3RzX2NvcHkkRGVwYXJ0bWVudCAhPSAiRXVyb3BlYW4gUGFpbnRpbmdzIl0gPC0gMAoKTWV0T2JqZWN0c19jb3B5JGlzRGVwdDEwW01ldE9iamVjdHNfY29weSREZXBhcnRtZW50ID09ICJFdXJvcGVhbiBTY3VscHR1cmUgYW5kIERlY29yYXRpdmUgQXJ0cyJdIDwtIDEKTWV0T2JqZWN0c19jb3B5JGlzRGVwdDEwW01ldE9iamVjdHNfY29weSREZXBhcnRtZW50ICE9ICJFdXJvcGVhbiBTY3VscHR1cmUgYW5kIERlY29yYXRpdmUgQXJ0cyJdIDwtIDAKCk1ldE9iamVjdHNfY29weSRpc0RlcHQxMVtNZXRPYmplY3RzX2NvcHkkRGVwYXJ0bWVudCA9PSAiR3JlZWsgYW5kIFJvbWFuIEFydCJdIDwtIDEKTWV0T2JqZWN0c19jb3B5JGlzRGVwdDExW01ldE9iamVjdHNfY29weSREZXBhcnRtZW50ICE9ICJHcmVlayBhbmQgUm9tYW4gQXJ0Il0gPC0gMAoKTWV0T2JqZWN0c19jb3B5JGlzRGVwdDEyW01ldE9iamVjdHNfY29weSREZXBhcnRtZW50ID09ICJJc2xhbWljIEFydCJdIDwtIDEKTWV0T2JqZWN0c19jb3B5JGlzRGVwdDEyW01ldE9iamVjdHNfY29weSREZXBhcnRtZW50ICE9ICJJc2xhbWljIEFydCJdIDwtIDAKCk1ldE9iamVjdHNfY29weSRpc0RlcHQxM1tNZXRPYmplY3RzX2NvcHkkRGVwYXJ0bWVudCA9PSAiTWVkaWV2YWwgQXJ0Il0gPC0gMQpNZXRPYmplY3RzX2NvcHkkaXNEZXB0MTNbTWV0T2JqZWN0c19jb3B5JERlcGFydG1lbnQgIT0gIk1lZGlldmFsIEFydCJdIDwtIDAKCk1ldE9iamVjdHNfY29weSRpc0RlcHQxNFtNZXRPYmplY3RzX2NvcHkkRGVwYXJ0bWVudCA9PSAiTW9kZXJuIGFuZCBDb250ZW1wb3JhcnkgQXJ0Il0gPC0gMQpNZXRPYmplY3RzX2NvcHkkaXNEZXB0MTRbTWV0T2JqZWN0c19jb3B5JERlcGFydG1lbnQgIT0gIk1vZGVybiBhbmQgQ29udGVtcG9yYXJ5IEFydCJdIDwtIDAKCk1ldE9iamVjdHNfY29weSRpc0RlcHQxNVtNZXRPYmplY3RzX2NvcHkkRGVwYXJ0bWVudCA9PSAiTXVzaWNhbCBJbnN0cnVtZW50cyJdIDwtIDEKTWV0T2JqZWN0c19jb3B5JGlzRGVwdDE1W01ldE9iamVjdHNfY29weSREZXBhcnRtZW50ICE9ICJNdXNpY2FsIEluc3RydW1lbnRzIl0gPC0gMAoKTWV0T2JqZWN0c19jb3B5JGlzRGVwdDE2W01ldE9iamVjdHNfY29weSREZXBhcnRtZW50ID09ICJQaG90b2dyYXBocyJdIDwtIDEKTWV0T2JqZWN0c19jb3B5JGlzRGVwdDE2W01ldE9iamVjdHNfY29weSREZXBhcnRtZW50ICE9ICJQaG90b2dyYXBocyJdIDwtIDAKCk1ldE9iamVjdHNfY29weSRpc0RlcHQxN1tNZXRPYmplY3RzX2NvcHkkRGVwYXJ0bWVudCA9PSAiUm9iZXJ0IExlaG1hbiBDb2xsZWN0aW9uIl0gPC0gMQpNZXRPYmplY3RzX2NvcHkkaXNEZXB0MTdbTWV0T2JqZWN0c19jb3B5JERlcGFydG1lbnQgIT0gIlJvYmVydCBMZWhtYW4gQ29sbGVjdGlvbiJdIDwtIDAKCk1ldE9iamVjdHNfY29weSRpc0RlcHQxOFtNZXRPYmplY3RzX2NvcHkkRGVwYXJ0bWVudCA9PSAiVGhlIExpYnJhcmllcyJdIDwtIDEKTWV0T2JqZWN0c19jb3B5JGlzRGVwdDE4W01ldE9iamVjdHNfY29weSREZXBhcnRtZW50ICE9ICJUaGUgTGlicmFyaWVzIl0gPC0gMAoKTWV0T2JqZWN0c19jb3B5JGlzRGVwdDE5W01ldE9iamVjdHNfY29weSREZXBhcnRtZW50ID09ICJEcmF3aW5ncyBhbmQgUHJpbnRzIl0gPC0gMQpNZXRPYmplY3RzX2NvcHkkaXNEZXB0MTlbTWV0T2JqZWN0c19jb3B5JERlcGFydG1lbnQgIT0gIkRyYXdpbmdzIGFuZCBQcmludHMiXSA8LSAwCmBgYAoKYGBge3J9CgojUmVuYW1lIGRhdGUgY29sdW1ucyB0byBiZSB1c2FibGUKY29sbmFtZXMoTWV0T2JqZWN0c19jb3B5KVsyMl0gPC0gIm9iamVjdERhdGVSYW5nZSIKY29sbmFtZXMoTWV0T2JqZWN0c19jb3B5KVsyM10gPC0gIm9iamVjdEJlZ2luRGF0ZSIKY29sbmFtZXMoTWV0T2JqZWN0c19jb3B5KVsyNF0gPC0gIm9iamVjdEVuZERhdGUiCgpgYGAKCmBgYHtyfQppbnN0YWxsLnBhY2thZ2VzKCdkcGx5cicpCmxpYnJhcnkoZHBseXIpCgojY3JlYXRlIG5ldyBjc3YgY29waWVzCndyaXRlLmNzdihNZXRPYmplY3RzX2NvcHksIGZpbGUgPSAiTWV0T2JqZWN0c19jb3B5LmNzdiIpCgojV29yayB3aXRoIG5ldyBNZXRPYmplY3RzX2NvcHktY29weSBmaWxlCk1ldE9iamVjdHNfY29weS5jc3YgPC0gIk1ldE9iamVjdHNfY29weSIKCiNyZW1vdmUgbm9uLW51bWVyaWNhbCBjb2x1bW5zCk1ldE9iamVjdHNfY2UgPC0gc2VsZWN0KE1ldE9iamVjdHNfY29weSwgLWlzSGlnaGxpZ2h0LCAtaXNQdWJsaWMsIC1vYmplY3ROYW1lLCAtQ3VsdHVyZSwgLVRpdGxlLCAtUGVyaW9kLCAtRHluYXN0eSwgLVJlaWduLCAtUG9ydGZvbGlvLCAtYXJ0aXN0Um9sZSwgLWFydGlzdFByZWZpeCwgLWFydGlzdERpc3BsYXlOYW1lLCAtYXJ0aXN0U3VmZml4LCAtYXJ0aXN0QWxwaGFTb3J0LCAtYXJ0aXN0TmF0aW9uYWxpdHksIC1vYmplY3REYXRlUmFuZ2UsIC1EaW1lbnNpb25zLCAtY3JlZGl0TGluZSwgLWdlb2dyYXBoeVR5cGUsIC1DaXR5LCAtU3RhdGUsIC1Db3VudHksIC1Db3VudHJ5LCAtUmVnaW9uLCAtU3VicmVnaW9uLCAtTG9jYWxlLCAtTG9jdXMsIC1FeGNhdmF0aW9uLCAtUml2ZXIsIC1DbGFzc2lmaWNhdGlvbiwgLXJpZ2h0c1JlcHJvZHVjdGlvbiwgLWxpbmtSZXNvbHV0aW9uLCAtbWV0YWRhdGFEYXRlLCAtUmVwb3NpdG9yeSwgLU1lZGl1bSwgLWFydGlzdERpc3BsYXlCaW8sIC1EZXBhcnRtZW50LCAtb2JqZWN0TnVtYmVyLCAtYXJ0aXN0QmVnaW5EYXRlLCAtYXJ0aXN0RW5kRGF0ZSkKCmBgYAoKYGBge3J9CiNjb3JyZWxhdGlvbiBtYXRyaXgKaW5zdGFsbC5wYWNrYWdlcygnY29ycnBsb3QnKQpsaWJyYXJ5KGNvcnJwbG90KQoKY29ycm1hdHJpeCA8LSBjb3IoTWV0T2JqZWN0c19jZSwgdXNlPSJjb21wbGV0ZS5vYnMiKQpWaWV3KGNvcnJtYXRyaXgpCgpjb3JycGxvdChjb3JybWF0cml4LCBtZXRob2Q9ImNpcmNsZSIpICMgY29ycm1hdHJpeCBpcyB0aGUgbmFtZSBvZiB0aGUgY29ycmVsYXRpb24gbWF0cml4IHdlIGNyZWF0ZWQgYWJvdmUKCmNvcnJwbG90Lm1peGVkKGNvcnJtYXRyaXgsIG51bWJlci5jZXggPSAwLjgsIHRsLmNleCA9IDAuNikKI251bWJlci5jZXggY2hhbmdlcyB0aGUgc2l6ZSBvZiB0aGUgbnVtYmVyIGZvbnRzLiB0bC5jZXggY2hhbmdlcyB0aGUgc2l6ZSBvZiB0aGUgbGFiZWxzCgpjb3JycGxvdChjb3JybWF0cml4LCB0eXBlPSJsb3dlciIpCmBgYAoKCmBgYHtyfQojbGVhdGhlciBzdWJzZXQKbGVhdGhlciA8LXN1YnNldChNZXRPYmplY3RzX2NvcHksIGhhc0xlYXRoZXI9PTEpCgojZ2xhc3Mgc3Vic2V0CmdsYXNzIDwtc3Vic2V0KE1ldE9iamVjdHNfY29weSwgaGFzR2xhc3MgPT0gMSkKCiNsZWF0aGVyIGFuZCB3b29kIHN1YnNldApsZWF0aGVyV29vZCA8LXN1YnNldChNZXRPYmplY3RzX2NvcHksIGhhc0xlYXRoZXI9PTEgJiBoYXNXb29kPT0xKQoKI2xlYXRlciBhbmQgc3RlZWwgc3Vic2V0CmxlYXRoZXJTdGVlbCA8LXN1YnNldChNZXRPYmplY3RzX2NvcHksIGhhc0xlYXRoZXI9PTEgJiBoYXNTdGVlbD09MSkKCiNzZWxlY3RlZE1lZGl1bXMgc3Vic2V0CnNlbGVjdGVkTWVkaXVtcyA8LXN1YnNldChNZXRPYmplY3RzX2NvcHksIGhhc0dvbGQgPT0gMSB8IGhhc1NpbHZlciA9PSAxIHwgaGFzQnJvbnplID09IDEgfCBoYXNHbGFzcyA9PSAxIHwgaGFzTGVhdGhlcj09MSB8IGhhc1N0ZWVsPT0xIHwgaGFzWmluYyA9PSAxICkKCiNjcmVhdGUgbmV3IGNzdiBjb3BpZXMKd3JpdGUuY3N2KHNlbGVjdGVkTWVkaXVtcywgZmlsZSA9ICJzZWxlY3RlZF9tZWRpdW1zX01ldE9iamVjdHMuY3N2IikKCgpoaXN0KGxlYXRoZXIkb2JqZWN0QmVnaW5EYXRlLAogICAgIHhsaW0gPSBjKC0yMDAwLDIwMTcpKQoKaGlzdChsZWF0aGVyU3RlZWwkb2JqZWN0QmVnaW5EYXRlLAogICAgIHhsaW0gPSBjKDEyMDAsMjAxMCkpCgpoaXN0KGxlYXRoZXIkb2JqZWN0QmVnaW5EYXRlKQpoaXN0KGdsYXNzJG9iamVjdEJlZ2luRGF0ZSkKCmhpc3QobGVhdGhlciRvYmplY3RCZWdpbkRhdGUpCgpsZWF0aGVyTUkgPC0gc3Vic2V0KGxlYXRoZXIsIERlcGFydG1lbnQgPT0iTXVzaWNhbCBJbnN0cnVtZW50cyIpCmxlYXRoZXJBQSA8LSBzdWJzZXQobGVhdGhlciwgRGVwYXJ0bWVudCA9PSJBcm1zIGFuZCBBcm1vciIpCgojY3JlYXRlIG5ldyBjc3YgY29waWVzCndyaXRlLmNzdihsZWF0aGVyLCBmaWxlID0gImxlYXRoZXItY29weS5jc3YiKQoKYGBgCgpgYGB7cn0KI1JlZ3Jlc3Npb24gb24gb2JqZWN0cyBieSB0aGVpciBiZWdpbiBkYXRlIGFuZCBkZXBhcnRtZW50CnJlZ3Jlc3Npb25fMSA8LWxtKG9iamVjdEJlZ2luRGF0ZX5pc0RlcHQxK2lzRGVwdDIraXNEZXB0Mytpc0RlcHQ0K2lzRGVwdDUraXNEZXB0Nitpc0RlcHQ3K2lzRGVwdDgraXNEZXB0OStpc0RlcHQxMCtpc0RlcHQxMStpc0RlcHQxMitpc0RlcHQxMytpc0RlcHQxNCtpc0RlcHQxNStpc0RlcHQxNitpc0RlcHQxNytpc0RlcHQxOCAraXNEZXB0MTksICBkYXRhPU1ldE9iamVjdHNfY29weSkKc3VtbWFyeShyZWdyZXNzaW9uXzEpCmBgYAoKCmBgYHtyfQojUmVncmVzc2lvbiBvbiBvYmplY3RzIGJ5IG1lZGl1bSBmZWF0dXJlcyBhbmQgZGVwYXJ0bWVudAojIGZlYXR1cmVzOiBoYXNBYmFsb25lICsgaGFzQWdhdGUgKyBoYXNBbGxveSArIGhhc0Jyb256ZSArIGhhc0NvcmFsICsgaGFzR2xhc3MgKyBoYXNHb2xkICsgaGFzSW5rICsgaGFzSmFkZSArIGhhc0xlYXRoZXIgKyBoYXNMaW5lbiArIGhhc05pY2tlbCArIGhhc1BvcmNlbGFpbiArIGhhc1NpbGsgKyBoYXNTaWx2ZXIgKyBoYXNTdGVlbCArIGhhc1dhbG51dCArIGhhc1dhdGVyY29sb3VyICsgaGFzV29vZCArIGhhc1ppbmMsCgojR29sZCBvYmplY3RzCnJlZ3Jlc3Npb25fMiA8LSBsbShoYXNHb2xkIH4gaXNEZXB0MStpc0RlcHQyK2lzRGVwdDMraXNEZXB0NCtpc0RlcHQ1K2lzRGVwdDYraXNEZXB0Nytpc0RlcHQ4K2lzRGVwdDkraXNEZXB0MTAraXNEZXB0MTEraXNEZXB0MTIraXNEZXB0MTMraXNEZXB0MTQraXNEZXB0MTUraXNEZXB0MTYraXNEZXB0MTcraXNEZXB0MTggK2lzRGVwdDE5LCAgZGF0YT1NZXRPYmplY3RzX2NvcHkpCnN1bW1hcnkocmVncmVzc2lvbl8yKQpgYGAKCmBgYHtyfQojU2lsdmVyIG9iamVjdHMKcmVncmVzc2lvbl8zIDwtIGxtKGhhc1NpbHZlciB+IGlzRGVwdDEraXNEZXB0Mitpc0RlcHQzK2lzRGVwdDQraXNEZXB0NStpc0RlcHQ2K2lzRGVwdDcraXNEZXB0OCtpc0RlcHQ5K2lzRGVwdDEwK2lzRGVwdDExK2lzRGVwdDEyK2lzRGVwdDEzK2lzRGVwdDE0K2lzRGVwdDE1K2lzRGVwdDE2K2lzRGVwdDE3K2lzRGVwdDE4ICtpc0RlcHQxOSwgIGRhdGE9TWV0T2JqZWN0c19jb3B5KQpzdW1tYXJ5KHJlZ3Jlc3Npb25fMykKYGBgCgpgYGB7cn0KI0Jyb256ZSBvYmplY3RzCnJlZ3Jlc3Npb25fNCA8LSBsbShoYXNCcm9uemUgfiBpc0RlcHQxK2lzRGVwdDIraXNEZXB0Mytpc0RlcHQ0K2lzRGVwdDUraXNEZXB0Nitpc0RlcHQ3K2lzRGVwdDgraXNEZXB0OStpc0RlcHQxMCtpc0RlcHQxMStpc0RlcHQxMitpc0RlcHQxMytpc0RlcHQxNCtpc0RlcHQxNStpc0RlcHQxNitpc0RlcHQxNytpc0RlcHQxOCAraXNEZXB0MTksICBkYXRhPU1ldE9iamVjdHNfY29weSkKc3VtbWFyeShyZWdyZXNzaW9uXzQpCmBgYAoKYGBge3J9CiNHbGFzcyBvYmplY3RzCnJlZ3Jlc3Npb25fNSA8LSBsbShoYXNHbGFzcyB+IGlzRGVwdDEraXNEZXB0Mitpc0RlcHQzK2lzRGVwdDQraXNEZXB0NStpc0RlcHQ2K2lzRGVwdDcraXNEZXB0OCtpc0RlcHQ5K2lzRGVwdDEwK2lzRGVwdDExK2lzRGVwdDEyK2lzRGVwdDEzK2lzRGVwdDE0K2lzRGVwdDE1K2lzRGVwdDE2K2lzRGVwdDE3K2lzRGVwdDE4ICtpc0RlcHQxOSwgIGRhdGE9TWV0T2JqZWN0c19jb3B5KQpzdW1tYXJ5KHJlZ3Jlc3Npb25fNSkKYGBgCgpgYGB7cn0KI0phZGUgb2JqZWN0cwpyZWdyZXNzaW9uXzQgPC0gbG0oaGFzSmFkZSB+IGlzRGVwdDEraXNEZXB0Mitpc0RlcHQzK2lzRGVwdDQraXNEZXB0NStpc0RlcHQ2K2lzRGVwdDcraXNEZXB0OCtpc0RlcHQ5K2lzRGVwdDEwK2lzRGVwdDExK2lzRGVwdDEyK2lzRGVwdDEzK2lzRGVwdDE0K2lzRGVwdDE1K2lzRGVwdDE2K2lzRGVwdDE3K2lzRGVwdDE4K2lzRGVwdDE5LCAgZGF0YT1NZXRPYmplY3RzX2NvcHkpCnN1bW1hcnkocmVncmVzc2lvbl80KQpgYGAKCmBgYHtyfQojTGVhdGhlciBvYmplY3RzCnJlZ3Jlc3Npb25fNSA8LSBsbShoYXNMZWF0aGVyIH4gaXNEZXB0MStpc0RlcHQyK2lzRGVwdDMraXNEZXB0NCtpc0RlcHQ1K2lzRGVwdDYraXNEZXB0Nytpc0RlcHQ4K2lzRGVwdDkraXNEZXB0MTAraXNEZXB0MTEraXNEZXB0MTIraXNEZXB0MTMraXNEZXB0MTQraXNEZXB0MTUraXNEZXB0MTYraXNEZXB0MTcraXNEZXB0MTgraXNEZXB0MTksICBkYXRhPU1ldE9iamVjdHNfY29weSkKc3VtbWFyeShyZWdyZXNzaW9uXzUpCmBgYAoKYGBge3J9CiNTdGVlbCBvYmplY3RzCnJlZ3Jlc3Npb25fNiA8LSBsbShoYXNTdGVlbH4gaXNEZXB0MStpc0RlcHQyK2lzRGVwdDMraXNEZXB0NCtpc0RlcHQ1K2lzRGVwdDYraXNEZXB0Nytpc0RlcHQ4K2lzRGVwdDkraXNEZXB0MTAraXNEZXB0MTEraXNEZXB0MTIraXNEZXB0MTMraXNEZXB0MTQraXNEZXB0MTUraXNEZXB0MTYraXNEZXB0MTcraXNEZXB0MTgraXNEZXB0MTksICBkYXRhPU1ldE9iamVjdHNfY29weSkKc3VtbWFyeShyZWdyZXNzaW9uXzYpCmBgYApgYGB7cn0KI1ppbmMgb2JqZWN0cwpyZWdyZXNzaW9uXzcgPC0gbG0oaGFzWmluYyB+IGlzRGVwdDEraXNEZXB0Mitpc0RlcHQzK2lzRGVwdDQraXNEZXB0NStpc0RlcHQ2K2lzRGVwdDcraXNEZXB0OCtpc0RlcHQ5K2lzRGVwdDEwK2lzRGVwdDExK2lzRGVwdDEyK2lzRGVwdDEzK2lzRGVwdDE0K2lzRGVwdDE1K2lzRGVwdDE2K2lzRGVwdDE3K2lzRGVwdDE4ICtpc0RlcHQxOSwgIGRhdGE9TWV0T2JqZWN0c19jb3B5KQpzdW1tYXJ5KHJlZ3Jlc3Npb25fNykKYGBgCgpgYGB7cn0KI1JlZ3Jlc3Npb24gb24gZHJhd2luZ3MgYW5kIHByaW50cyBhbmQgbWVkaXVtIGZlYXR1cmVzCgpyZWdyZXNzaW9uXzggPC0gbG0oaXNEZXB0MTkgfiBoYXNBYmFsb25lICsgaGFzQWdhdGUgKyBoYXNBbGxveSArIGhhc0Jyb256ZSArIGhhc0NvcmFsICsgaGFzR2xhc3MgKyBoYXNHb2xkICsgaGFzSW5rICsgaGFzSmFkZSArIGhhc0xlYXRoZXIgKyBoYXNMaW5lbiArIGhhc05pY2tlbCArIGhhc1BvcmNlbGFpbiArIGhhc1NpbGsgKyBoYXNTaWx2ZXIgKyBoYXNTdGVlbCArIGhhc1dhbG51dCArIGhhc1dhdGVyY29sb3VyICsgaGFzV29vZCArIGhhc1ppbmMsIGRhdGE9TWV0T2JqZWN0c19jb3B5KQpzdW1tYXJ5KHJlZ3Jlc3Npb25fOCkKYGBgCgpgYGB7cn0KI1JlZ3Jlc3Npb24gb24gbW9kZXJuIGFuZCBjb250ZW1wb3JhcnkgYXJ0CgpyZWdyZXNzaW9uXzkgPC0gbG0oaXNEZXB0MTQgfiBoYXNBYmFsb25lICsgaGFzQWdhdGUgKyBoYXNBbGxveSArIGhhc0Jyb256ZSArIGhhc0NvcmFsICsgaGFzR2xhc3MgKyBoYXNHb2xkICsgaGFzSW5rICsgaGFzSmFkZSArIGhhc0xlYXRoZXIgKyBoYXNMaW5lbiArIGhhc05pY2tlbCArIGhhc1BvcmNlbGFpbiArIGhhc1NpbGsgKyBoYXNTaWx2ZXIgKyBoYXNTdGVlbCArIGhhc1dhbG51dCArIGhhc1dhdGVyY29sb3VyICsgaGFzV29vZCArIGhhc1ppbmMsIGRhdGE9TWV0T2JqZWN0c19jb3B5KQpzdW1tYXJ5KHJlZ3Jlc3Npb25fOSkKYGBgCgo=