Tuần 3

1.1. Giới thiệu dữ liệu:

Bộ dữ liệu bao gồm 534, 11 biến

Biến định tính:

  • Biến ethnicity: Dân tộc (gồm 3 biểu hiện “cauc” là người Hoa Kỳ, “hispanic” là người gốc Tây Ban Nha, “other” là người nơi khác.

  • region: Cá nhân có sống ở miền Nam không?

  • gender: Biến phân loại chỉ giới tính.

  • Biến occupation: Nghề nghiệp với các mức độ “worker” (người lao động tay nghề hoặc công nhân dây chuyền lắp ráp), “technical” (công nhân kỹ thuật hoặc chuyên nghiệp), “services” (công nhân dịch vụ), “office” (nhân viên văn phòng và thư ký), “sales” (nhân viên bán hàng), “management” (quản lý và hành chính).

  • Biến sector: Lĩnh vực làm việc với các mức độ “manufacturing” (sản xuất hoặc khai thác mỏ), “construction” (xây dựng), “other” (khác).

  • Biến union: Cá nhân có làm việc với đoàn thể không?

  • Biến married: Cá nhân có kết hôn không?

Biến định lượng:

  • Biến wage: Tiền lương (tính bằng đô la mỗi giờ).
  • Biến education: Số năm học vấn.
  • Biến experience: Số năm kinh nghiệm làm việc tiềm năng (tuổi - học vấn - 6).
  • Biến age: Tuổi (tính bằng năm).

1.2 Khai báo Package có liên quan

library(ggplot2)

Khai báo Package AER chứa dữ liệu cần dùng

library(AER)
## Loading required package: car
## Loading required package: carData
## Loading required package: lmtest
## Loading required package: zoo
## 
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
## 
##     as.Date, as.Date.numeric
## Loading required package: sandwich
## Loading required package: survival

Khai báo Package DT dùng để hiển thị bảng dữ liệu

library(DT)

Hiện dataset cần phân tích trong package AER và gáng dataset vào d

data("CPS1985")
d <- CPS1985
datatable(d)

1.3 Bảng tần số và vẽ biểu đồ biến định tính

1.3.1 Bảng tần số của và hình vẽ của biến gender

t1 <- table(d$gender)
addmargins(t1)
## 
##   male female    Sum 
##    289    245    534
round((table(d$gender)/sum(table(d$gender))*100),2)
## 
##   male female 
##  54.12  45.88
d |> ggplot(aes(x = d$gender, y = after_stat(count))) + geom_bar(fill = 'black') + geom_text(aes(label = scales::percent(after_stat(count/sum(count)))), stat = 'count', color = 'green', vjust = - .5) + theme_classic() + labs(x = 'Giới tính', y = 'Số người')

Nhận xét,trong 534 người khảo sát có :

Nam là 289 người (chiếm khoảng 54.1%)

Nữ là 245 người (chiếm 45.9%), giới tính tương đối đồng đều, với nam và nữ không chênh lệch quá nhiều (chênh lệch khoảng 8.2%).

1.3.2 Bảng tần số và vẽ biểu đồ của biến married

t2 <- table(d$married)
addmargins(t2)
## 
##  no yes Sum 
## 184 350 534
round((table(d$married)/sum(table(d$married))*100),2)
## 
##    no   yes 
## 34.46 65.54
d |> ggplot(aes(x = d$married, y = after_stat(count))) + geom_bar(fill = 'black') + geom_text(aes(label = scales::percent(after_stat(count/sum(count)))), stat = 'count', color = 'green', vjust = - .5) + theme_classic() + labs(x = 'kết hôn', y = 'Số người')

Trong 534 người khảo sát, Tỷ lệ kết hôn chiếm số lượng lớn, có 350 người đã kết hôn (chiếm 65.5%),180 người chưa kết hôn (34.5%), cho thấy là có sự chênh lệch rất lớn giữa người đã kết hôn và người chưa kết hôn (31%)

1.3.3 Bảng tần số và vẽ biểu đồ của biến occupation (nghề nghiệp)

th4 <- table(d$occupation)
addmargins(th4)
## 
##     worker  technical   services     office      sales management        Sum 
##        156        105         83         97         38         55        534
round((table(d$occupation)/sum(table(d$occupation))*100),2)
## 
##     worker  technical   services     office      sales management 
##      29.21      19.66      15.54      18.16       7.12      10.30
d |> ggplot(aes(x = d$occupation, y = after_stat(count))) + geom_bar(fill = 'black') + geom_text(aes(label = scales::percent(after_stat(count/sum(count)))), stat = 'count', color = 'green', vjust = - .5) + theme_classic() + labs(x = 'Nghề nghiệp', y = 'Số người')

Nhận xét:

Biểu đồ cho thấy nghề công nhân chiếm tỷ lệ cao nhất (29.2%), trong khi nghề bán hàng chiếm tỷ lệ thấp nhất (7.1%). Các nghề kỹ thuật, văn phòng và dịch vụ có tỷ lệ tương đối cao, lần lượt là 19.7%, 18.2%, và 15.5%.

1.4 Thống kê mô tả của biến định lượng

1.4.1 Thống kê mô tả cho biến wage

summary(d$wage)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   1.000   5.250   7.780   9.024  11.250  44.500
var(d$wage)
## [1] 26.41032
sd(d$wage)
## [1] 5.139097
ggplot(d, aes(x = wage)) +
  geom_density(fill = "black", color = "brown", alpha = 0.5) +
  labs(x = "Tiền lương")

Nhận xét:

Giá trị nhỏ nhất của tiền lương là 1 USD/H, giá trị lớn nhất đạt tới 44.50 USD. Trung vị của tiền lương là 7.78 USD, có nghĩa là 50% số người lao động có mức lương dưới hoặc bằng 7.78 đUSD. Giá trị trung bình của tiền lương là 9.02 , cao hơn trung vị, điều này cho thấy sự tồn tại của một số giá trị cực đại kéo giá trị trung bình lên cao hơn.

Phương sai là 26.41 và độ lệch chuẩn là 5.14. Những con số này cho thấy mức độ biến thiên tương đối lớn của tiền lương quanh giá trị trung bình. Phần tư thứ nhất (5.25) và phần tư thứ ba (11.25) cho biết 50% số người lao động có mức lương nằm trong khoảng từ 5.25 đến 11.25 đơn vị tiền tệ.

1.4.2 Thống kê mô tả cho biến age

summary(d$age)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   18.00   28.00   35.00   36.83   44.00   64.00
var(d$age)
## [1] 137.5125
sd(d$age)
## [1] 11.72657
ggplot(d, aes(x = age)) +
  geom_histogram(fill = "black", color = "pink", bins = 10) +
  labs(x = "Tuổi")

Nhận xét:

Dựa vào kết quả thống kê mô tả chúng ta thấy là độ tuổi lớn nhất là 64, nhỏ nhất là 18 và độ tuổi trung bình là 36.83333. Dựa vào tứ phân vị thì có 25% người có tuổi nhỏ hơn 28 và có 25% trong số người khảo sát lớn hơn 44 tuổi. Dựa trên những đặc trưng đo lường, tiến hành phân tổ hai biến định lượng.

1.4.3 Thống kê mô tả cho biến education

summary(d$education)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    2.00   12.00   12.00   13.02   15.00   18.00
var(d$education)
## [1] 6.840174
sd(d$education)
## [1] 2.615373
d |> ggplot(aes(x = d$education, y = after_stat(count))) + geom_bar(fill = 'black') + geom_text(aes(label = scales::percent(after_stat(count/sum(count)))), stat = 'count', color = 'green', vjust = - .5) + theme_classic() + labs(x = 'Trình độ học vấn ', y = 'Số người')

Nhận xét:

Biểu đồ cho thấy trình độ học vấn lớp 12 chiếm tỷ lệ cao nhất (41.01%), trình độ sau 12 cũng chiếm tỷ lệ lớn, trình độ từ lớp 1 - 11 chiếm tỷ lệ nhỏ cho thấy là dữ liệu nghiên cứu có số người có trình độ 12 nhiều hơn.

d$age <- cut(d$age, breaks=c(17, 36,65), labels=c('duoi 36', 'tren 36'))
table(d$age)
## 
## duoi 36 tren 36 
##     302     232

1.5 Phân tích tình trạng giới tính ảnh hưởng tới lương

d$wage <- cut(d$wage, breaks=c(0,12,45),labels=c('thap','cao'))
table(d$wage )     
## 
## thap  cao 
##  422  112

1.5.1 Bảng tần số

table(d$gender,d$wage)
##         
##          thap cao
##   male    206  83
##   female  216  29
round((table(d$gender, d$wage) / sum(table(d$gender, d$wage)) * 100), 2)
##         
##           thap   cao
##   male   38.58 15.54
##   female 40.45  5.43
addmargins(table(d$gender,d$wage))
##         
##          thap cao Sum
##   male    206  83 289
##   female  216  29 245
##   Sum     422 112 534

Nhận xét:

Tổng số nam là 289, số người nam có lương thấp là 205 người chiếm 38,58%, số nam có lương cao là 83 người chiếm 15.54%

Tổng số nữ trong mẫu nghiêm cứu là 245 người, trong đó số lượng nữ có lương thấp chiếm số lượng lớn là 216 người chiếm 40.55%, số lượng nữ có lương cao chiếm 5.43%.

1.5.2 Relative Risk

library(DescTools)
## Warning: package 'DescTools' was built under R version 4.3.3
## 
## Attaching package: 'DescTools'
## The following object is masked from 'package:car':
## 
##     Recode
library(epitools)
## 
## Attaching package: 'epitools'
## The following object is masked from 'package:survival':
## 
##     ratetable
t3 <- table(d$gender,d$wage)

RelRisk(t3)
## [1] 0.8085031
riskratio(t3, rev = 'b')
## $data
##         
##          cao thap Total
##   female  29  216   245
##   male    83  206   289
##   Total  112  422   534
## 
## $measure
##         risk ratio with 95% C.I.
##           estimate     lower     upper
##   female 1.0000000        NA        NA
##   male   0.8085031 0.7415993 0.8814427
## 
## $p.value
##         two-sided
##            midp.exact fisher.exact   chi.square
##   female           NA           NA           NA
##   male   1.293077e-06 1.358458e-06 1.795767e-06
## 
## $correction
## [1] FALSE
## 
## attr(,"method")
## [1] "Unconditional MLE & normal approximation (Wald) CI"
epitab(t3, method = 'riskratio', rev = 'c')
## $tab
##         
##          cao        p0 thap        p1 riskratio    lower    upper      p.value
##   male    83 0.2871972  206 0.7128028  1.000000       NA       NA           NA
##   female  29 0.1183673  216 0.8816327  1.236854 1.134504 1.348437 1.358458e-06
## 
## $measure
## [1] "wald"
## 
## $conf.level
## [1] 0.95
## 
## $pvalue
## [1] "fisher.exact"

Nhận xét:

Tỷ số rủi ro là 0.809 với khoảng tin cậy 95% từ 0.740 đến 0.88. Điều này có nghĩa là nam có lương thấp bằng 0.809 lần so với nữ. Khoảng tin cậy 95% cho biết rằng chúng ta có thể tin tưởng rằng giá trị thực của tỷ số rủi ro nằm trong khoảng từ 0.740 đến 0.88 với xác suất 95%.

1.5.3 Oddratio

OddsRatio(t3)
## [1] 0.3332218
oddsratio(t3)
## $data
##         
##          thap cao Total
##   male    206  83   289
##   female  216  29   245
##   Total   422 112   534
## 
## $measure
##         odds ratio with 95% C.I.
##           estimate     lower     upper
##   male   1.0000000        NA        NA
##   female 0.3349143 0.2074688 0.5275531
## 
## $p.value
##         two-sided
##            midp.exact fisher.exact   chi.square
##   male             NA           NA           NA
##   female 1.293077e-06 1.358458e-06 1.795767e-06
## 
## $correction
## [1] FALSE
## 
## attr(,"method")
## [1] "median-unbiased estimate & mid-p exact CI"
epitab(t3, method = 'oddsratio')
## $tab
##         
##          thap        p0 cao        p1 oddsratio     lower     upper
##   male    206 0.4881517  83 0.7410714 1.0000000        NA        NA
##   female  216 0.5118483  29 0.2589286 0.3332218 0.2095441 0.5298968
##         
##               p.value
##   male             NA
##   female 1.358458e-06
## 
## $measure
## [1] "wald"
## 
## $conf.level
## [1] 0.95
## 
## $pvalue
## [1] "fisher.exact"

Nhận xét: Tỷ lệ odds ratio của nữ (so với nam làm cơ sở) là 0.332 với khoảng tin cậy 95% từ 0.208 đến 0.527. Khoảng tin cậy 95% cho tỷ lệ odds ratio là từ 0.208 đến 0.527.Điều này cho thấy chúng ta có thể tin tưởng rằng giá trị thực của tỷ lệ odds ratio nằm trong khoảng này với xác suất 95%.

P-value = 1.3004e-06 cho tỷ lệ odds ratio của nữ là rất nhỏ , cho thấy sự khác biệt về odds giữa nam và nữ là có ý nghĩa thống kê.

1.6 Phân tích cho 2 biến kết hôn và lương

1.6.1 Bảng tần số

table(d$married,d$wage)
##      
##       thap cao
##   no   154  30
##   yes  268  82
round((table(d$married,d$wage) / sum(table(d$married,d$wage)) * 100), 2)
##      
##        thap   cao
##   no  28.84  5.62
##   yes 50.19 15.36
addmargins(table(d$married,d$wage))
##      
##       thap cao Sum
##   no   154  30 184
##   yes  268  82 350
##   Sum  422 112 534

Nhận xét:

Trong nhóm không kết hôn, có 154 người lương thấp và 30 người lương cao.

Trong nhóm kết hôn, có 268 người lương thấp và 82 người lương cao.

1.6.2 Relative Risk

library(DescTools)
library(epitools)

t4 <- table(d$married,d$wage)
RelRisk(t4)
## [1] 1.09304
riskratio(t4, rev = 'b')
## $data
##        
##         cao thap Total
##   yes    82  268   350
##   no     30  154   184
##   Total 112  422   534
## 
## $measure
##      risk ratio with 95% C.I.
##       estimate    lower    upper
##   yes  1.00000       NA       NA
##   no   1.09304 1.002797 1.191405
## 
## $p.value
##      two-sided
##       midp.exact fisher.exact chi.square
##   yes         NA           NA         NA
##   no  0.05348128   0.05782378 0.05464336
## 
## $correction
## [1] FALSE
## 
## attr(,"method")
## [1] "Unconditional MLE & normal approximation (Wald) CI"
epitab(t4, method = 'riskratio', rev = 'c')
## $tab
##      
##       cao        p0 thap        p1 riskratio     lower     upper    p.value
##   no   30 0.1630435  154 0.8369565 1.0000000        NA        NA         NA
##   yes  82 0.2342857  268 0.7657143 0.9148794 0.8393455 0.9972108 0.05782378
## 
## $measure
## [1] "wald"
## 
## $conf.level
## [1] 0.95
## 
## $pvalue
## [1] "fisher.exact"

Nhận xét:

Tỷ lệ nguy cơ (Risk Ratio) của nhóm không kết hôn so với nhóm kết hôn là 1.094, với khoảng tin cậy 95% từ 1.004 đến 1.193. Giá trị p-value cho thấy giữa hai nhóm gần đạt mức ý nghĩa thống kê 0.05. Tỷ lệ nguy cơ của nhóm kết hôn so với nhóm không kết hôn là 0.914, với khoảng tin cậy 95% từ 0.839 đến 0.996, cho thấy người kết hôn có có mức lương cao thấp hơn 8.6% so với những người không kết hôn.

1.6.3 Oddratio

OddsRatio(t3)
## [1] 0.3332218
oddsratio(t3)
## $data
##         
##          thap cao Total
##   male    206  83   289
##   female  216  29   245
##   Total   422 112   534
## 
## $measure
##         odds ratio with 95% C.I.
##           estimate     lower     upper
##   male   1.0000000        NA        NA
##   female 0.3349143 0.2074688 0.5275531
## 
## $p.value
##         two-sided
##            midp.exact fisher.exact   chi.square
##   male             NA           NA           NA
##   female 1.293077e-06 1.358458e-06 1.795767e-06
## 
## $correction
## [1] FALSE
## 
## attr(,"method")
## [1] "median-unbiased estimate & mid-p exact CI"
epitab(t3, method = 'oddsratio')
## $tab
##         
##          thap        p0 cao        p1 oddsratio     lower     upper
##   male    206 0.4881517  83 0.7410714 1.0000000        NA        NA
##   female  216 0.5118483  29 0.2589286 0.3332218 0.2095441 0.5298968
##         
##               p.value
##   male             NA
##   female 1.358458e-06
## 
## $measure
## [1] "wald"
## 
## $conf.level
## [1] 0.95
## 
## $pvalue
## [1] "fisher.exact"

Nhận xét:

Tỷ lệ odds ratio giữa nam và nữ là khoảng 0.332 với p-value = 1.3*10^-6.Cho thấy sự khác biệt về odds giữa nam và nữ là có ý nghĩa thống kê. Nam có odds thấp hơn so với nữ trong việc có lương thấp, và sự khác biệt này là có ý nghĩa thống kê.

1.7 Phân tích cho 2 biến giới tính và trình độ học vấn

1.7.1 Bảng tần số

trinhdo <-cut(d$education, breaks=c(1,12,18), labels=c('thấp', ' cao'))
table(trinhdo)
## trinhdo
## thấp  cao 
##  302  232
k <- data.frame(d$wage, d$education, d$experience, d$age, d$ethnicity, d$region, d$gender, d$occupation, d$sector, d$union, d$married, trinhdo)

table(k$d.gender,k$trinhdo)
##         
##          thấp  cao
##   male    159  130
##   female  143  102
addmargins(table(k$d.gender,k$trinhdo))
##         
##          thấp  cao Sum
##   male    159  130 289
##   female  143  102 245
##   Sum     302  232 534
d |> ggplot(aes(x = d$gender , y = after_stat(count))) + geom_bar(fill = 'black') + geom_text(aes(label = scales::percent(after_stat(count/sum(count)))), stat = 'count', color = 'red', vjust = - .5) + facet_grid(. ~ k$trinhdo) + labs(x = 'Giới tính', y = 'Số người')

Nhận xét:

Người có trình độ 12 là 302 người chiếm 56.5%, người có trình độ đại học là 232 người chiếm 43.5%.

Số người có trình độ thấp luôn nhiều hơn so với số người có trình độ cao ở cả nam và nữ. Đối với nam, có 159 người có trình độ thấp và 130 người có trình độ cao, trong khi đối với nữ, số liệu tương ứng lần lượt là 143 và 102 người.

Sự chênh lệch giữa số người có trình độ thấp và trình độ cao lớn hơn ở nữ so với nam, với 41 người ở nữ và 29 người ở nam. Điều này có thể chỉ ra sự khác biệt trong phân bố trình độ giáo dục hoặc khả năng học tập giữa nam và nữ trong mẫu dữ liệu này.

1.7.2 Relative Risk

th5 <- table(d$gender, k$trinhdo)
RelRisk(th5)
## [1] 0.9426041
riskratio(th5, rev = 'b')
## $data
##         
##           cao thấp Total
##   female  102  143   245
##   male    130  159   289
##   Total   232  302   534
## 
## $measure
##         risk ratio with 95% C.I.
##           estimate    lower    upper
##   female 1.0000000       NA       NA
##   male   0.9426041 0.812526 1.093507
## 
## $p.value
##         two-sided
##          midp.exact fisher.exact chi.square
##   female         NA           NA         NA
##   male    0.4382977    0.4834948  0.4364356
## 
## $correction
## [1] FALSE
## 
## attr(,"method")
## [1] "Unconditional MLE & normal approximation (Wald) CI"
epitab(th5, method = 'riskratio', rev = 'c')
## $tab
##         
##           cao        p0 thấp        p1 riskratio     lower   upper   p.value
##   male    130 0.4498270  159 0.5501730  1.000000        NA      NA        NA
##   female  102 0.4163265  143 0.5836735  1.060891 0.9144892 1.23073 0.4834948
## 
## $measure
## [1] "wald"
## 
## $conf.level
## [1] 0.95
## 
## $pvalue
## [1] "fisher.exact"

Nhận xét:

Tỷ số rủi ro là 0.9426,điều này có nghĩa là nam có trình độ thấp so với nữ.

Giá trị p-value là khoảng 0.44, không đủ bằng chứng để kết luận về sự khác biệt đáng kể về nguy cơ có trình độ thấp giữa nam và nữ.

Tỷ lệ rủi ro của nam so với nữ là 1.06, với khoảng tin cậy 95% nằm giữa 0.91 và 1.23. Kết quả này cũng không đủ mạnh để kết luận rằng có sự khác biệt đáng kể về nguy cơ có trình độ thấp giữa hai giới tính.

1.7.3 Oddratio

OddsRatio(th5)
## [1] 0.8724045
epitab(th5, method = 'oddsratio')
## $tab
##         
##          thấp        p0  cao        p1 oddsratio     lower    upper   p.value
##   male    159 0.5264901  130 0.5603448 1.0000000        NA       NA        NA
##   female  143 0.4735099  102 0.4396552 0.8724045 0.6185641 1.230414 0.4834948
## 
## $measure
## [1] "wald"
## 
## $conf.level
## [1] 0.95
## 
## $pvalue
## [1] "fisher.exact"

Nhận xét:

Giá trị odds ratio giữa nam và nữ là khoảng 0.87. Khi giá trị odds ratio nhỏ hơn 1, điều này ngụ ý rằng nam có trình độ thấp hơn so với nữ.

Tuy nhiên, giá trị p-value là khoảng 0.48, không đủ bằng chứng để kết luận về sự khác biệt đáng kể về nguy cơ có trình độ thấp giữa nam và nữ.

1.8 Phân tích biến trình độ học vấn (education) và lương

1.8.1 Bảng tần số

th9 <- table(k$trinhdo,k$d.wage)
addmargins(th9)
##       
##        thap cao Sum
##   thấp  268  34 302
##    cao  154  78 232
##   Sum   422 112 534
d |> ggplot(aes(x = d$wage , y = after_stat(count))) + geom_bar(fill = 'black') + geom_text(aes(label = scales::percent(after_stat(count/sum(count)))), stat = 'count', color = 'red', vjust = - .5) + facet_grid(. ~ k$trinhdo) + labs(x = 'Lương', y = 'Số người')

Nhận xét:

Trong dữ liệu này này, ta có:

301 người có mức lương thấp, trong đó có 267 người có trình độ thấp và 34 người có trình độ cao.

232 người có mức lương cao, trong đó có 154 người có trình độ thấp và 78 người có trình độ cao.

1.8.2 Relative Risk

RelRisk(th9)
## [1] 1.336888
riskratio(th9, rev = 'b')
## $data
##        
##         cao thap Total
##    cao   78  154   232
##   thấp   34  268   302
##   Total 112  422   534
## 
## $measure
##       risk ratio with 95% C.I.
##        estimate    lower    upper
##    cao 1.000000       NA       NA
##   thấp 1.336888 1.209665 1.477492
## 
## $p.value
##       two-sided
##          midp.exact fisher.exact   chi.square
##    cao           NA           NA           NA
##   thấp 3.645124e-10  4.68842e-10 3.139058e-10
## 
## $correction
## [1] FALSE
## 
## attr(,"method")
## [1] "Unconditional MLE & normal approximation (Wald) CI"
epitab(th9, method = 'riskratio', rev = 'c')
## $tab
##       
##        cao        p0 thap        p1 riskratio     lower     upper     p.value
##   thấp  34 0.1125828  268 0.8874172 1.0000000        NA        NA          NA
##    cao  78 0.3362069  154 0.6637931 0.7480057 0.6768226 0.8266752 4.68842e-10
## 
## $measure
## [1] "wald"
## 
## $conf.level
## [1] 0.95
## 
## $pvalue
## [1] "fisher.exact"

Nhận xét:

Tỷ lệ rủi ro giữa nhóm có mức lương thấp và nhóm có mức lương cao là khoảng 1.34. Điều này ngụ ý rằngnhóm có mức lương thấp cao hơn khoảng 34% so với nhóm có mức lương cao.

Giá trị p-value = 4.840357259e-10 cho thấy sự khác biệt đáng kể. Điều này ngụ ý rằng sự khác biệt về nguy cơ giữa hai nhóm là có ý nghĩa thống kê.

1.8.3 Oddratio

OddsRatio(th9)
## [1] 3.992361
oddsratio(th9)
## $data
##        
##         thap cao Total
##   thấp   268  34   302
##    cao   154  78   232
##   Total  422 112   534
## 
## $measure
##       odds ratio with 95% C.I.
##        estimate    lower    upper
##   thấp 1.000000       NA       NA
##    cao 3.972397 2.553012 6.294682
## 
## $p.value
##       two-sided
##          midp.exact fisher.exact   chi.square
##   thấp           NA           NA           NA
##    cao 3.645124e-10  4.68842e-10 3.139058e-10
## 
## $correction
## [1] FALSE
## 
## attr(,"method")
## [1] "median-unbiased estimate & mid-p exact CI"
epitab(th9, method = 'oddsratio')
## $tab
##       
##        thap        p0 cao        p1 oddsratio    lower    upper     p.value
##   thấp  268 0.6350711  34 0.3035714  1.000000       NA       NA          NA
##    cao  154 0.3649289  78 0.6964286  3.992361 2.548441 6.254389 4.68842e-10
## 
## $measure
## [1] "wald"
## 
## $conf.level
## [1] 0.95
## 
## $pvalue
## [1] "fisher.exact"

Nhận xét:

Tỷ lệ cơ hội giữa nhóm có mức lương thấp và nhóm có mức lương cao là khoảng 3.98. Điều này có nghĩa là nguy cơ của nhóm có mức lương thấp gần 4 lần so với nhóm có mức lương cao.

Giá trị p-value = 4.840357259e-10. Điều này cho thấy sự khác biệt về nguy cơ giữa hai nhóm là có ý nghĩa thống kê.

1.9 Thống kê suy diễn cho dữ liệu định tính

Kiểm định tính độc lập cho 2 biến định tính: Giả thuyết \(H_0\) : độc lập. Giả thuyết \(H_1\): không độc lập

1.9.1 Kiểm định tính độc lập của giới tính và lương

chisq.test(t3)
## 
##  Pearson's Chi-squared test with Yates' continuity correction
## 
## data:  t3
## X-squared = 21.795, df = 1, p-value = 3.034e-06

Nhận xét:

Bác bỏ giả thuyết \(H_0\), chấp nhận giả thuyết \(H_1\), giới tính và lương có liên quan tới nhau.

1.9.2 Kiểm định tính độc lập của kết hôn và lương

chisq.test(t4)
## 
##  Pearson's Chi-squared test with Yates' continuity correction
## 
## data:  t4
## X-squared = 3.2756, df = 1, p-value = 0.07032

Nhận xét:

Bác bỏ giả thuyết \(H_0\), chấp nhận giả thuyết \(H_1\), kết hôn và lương có liên quan tới nhau.

1.9.3 Kiểm định tính độc lập của giới tính và trình độ học vấn

chisq.test(th5)
## 
##  Pearson's Chi-squared test with Yates' continuity correction
## 
## data:  th5
## X-squared = 0.47697, df = 1, p-value = 0.4898

Nhận xét:

Bác bỏ giả thuyết \(H_0\), chấp nhận giả thuyết \(H_1\), giới tính và trình độ học vấn có liên quan tới nhau.

1.9.4 Kiểm định tính độc lập trình độ học vấn và lương

chisq.test(th9)
## 
##  Pearson's Chi-squared test with Yates' continuity correction
## 
## data:  th9
## X-squared = 38.248, df = 1, p-value = 6.229e-10

Nhận xét:

Bác bỏ giả thuyết \(H_0\), chấp nhận giả thuyết \(H_1\), trình độ học vấn và lương có liên quan tới nhau.

LS0tDQp0aXRsZTogIkNQUzE5ODUiDQphdXRob3I6ICJQaOG6oW1UaGlUaHVUaGFvIg0KZGF0ZTogIjIwMjQtMDYtMDEiDQpvdXRwdXQ6IA0KICBodG1sX2RvY3VtZW50Og0KICAgIHRvYzogVFJVRQ0KICAgIHRvY19mbG9hdDogVFJVRQ0KICAgIGRmX3ByaW50OiBwYWdlZA0KICAgIGNvZGVfZG93bmxvYWQ6IHRydWUNCiAgICBjb2RlX2ZvbGRpbmc6IGhpZGUNCiAgcGRmX2RvY3VtZW50Og0KICAgIGV4dHJhX2RlcGVuZGVuY2llczoNCiAgICAgIHZpZXRuYW06IHV0ZjgNCiAgICB0b2M6IHllcw0KICAgIG51bWJlcl9zZWN0aW9uczogeWVzDQogIHdvcmRfZG9jdW1lbnQ6DQogICAgdG9jOiB5ZXMNCiAgICBudW1iZXJfc2VjdGlvbnM6IHllcw0KZ2VvbWV0cnk6DQogICAgICAtIGlubmVyPTNjbQ0KICAgICAgLSBvdXRlcj00Y20NCiAgICAgIC0gdG9wPTNjbQ0KICAgICAgLSBib3R0b209NGNtDQogICAgICAtIGhlYWRzZXA9MjJwdA0KICAgICAgLSBoZWFkaGVpZ2h0PTExcHQNCiAgICAgIC0gZm9vdHNraXA9MzNwdA0KICAgICAgLSBpZ25vcmVoZWFkDQogICAgICAtIGlnbm9yZWZvb3QNCiAgICAgIC0gaGVpZ2h0cm91bmRlZA0KZWRpdG9yX29wdGlvbnM6IA0KICBtYXJrZG93bjogDQogICAgd3JhcDogNzINCi0tLQ0KDQpgYGB7ciBzZXR1cCwgaW5jbHVkZT1GQUxTRX0NCmtuaXRyOjpvcHRzX2NodW5rJHNldChlY2hvID0gVFJVRSkNCmBgYA0KIyBUdeG6p24gMw0KDQojIyAxLjEuIEdp4bubaSB0aGnhu4d1IGThu68gbGnhu4d1Og0KQuG7mSBk4buvIGxp4buHdSBiYW8gZ+G7k20gNTM0LCAxMSBiaeG6v24NCg0KIEJp4bq/biDEkeG7i25oIHTDrW5oOiANCg0KKyBCaeG6v24gZXRobmljaXR5OiBEw6JuIHThu5ljIChn4buTbSAzIGJp4buDdSBoaeG7h24g4oCcY2F1Y+KAnSBsw6AgbmfGsOG7nWkgSG9hIEvhu7MsIOKAnGhpc3Bhbmlj4oCdIGzDoCBuZ8aw4budaSBn4buRYyBUw6J5IEJhbiBOaGEsIOKAnG90aGVy4oCdIGzDoCBuZ8aw4budaSBuxqFpIGtow6FjLg0KKyByZWdpb246IEPDoSBuaMOibiBjw7Mgc+G7kW5nIOG7nyBtaeG7gW4gTmFtIGtow7RuZz8NCg0KKyBnZW5kZXI6IEJp4bq/biBwaMOibiBsb+G6oWkgY2jhu4kgZ2nhu5tpIHTDrW5oLg0KDQorIEJp4bq/biBvY2N1cGF0aW9uOiBOZ2jhu4EgbmdoaeG7h3AgduG7m2kgY8OhYyBt4bupYyDEkeG7mSAid29ya2VyIiAobmfGsOG7nWkgbGFvIMSR4buZbmcgdGF5IG5naOG7gSBob+G6t2MgY8O0bmcgbmjDom4gZMOieSBjaHV54buBbiBs4bqvcCByw6FwKSwgInRlY2huaWNhbCIgKGPDtG5nIG5ow6JuIGvhu7kgdGh14bqtdCBob+G6t2MgY2h1ecOqbiBuZ2hp4buHcCksICJzZXJ2aWNlcyIgKGPDtG5nIG5ow6JuIGThu4tjaCB24bulKSwgIm9mZmljZSIgKG5ow6JuIHZpw6puIHbEg24gcGjDsm5nIHbDoCB0aMawIGvDvSksICJzYWxlcyIgKG5ow6JuIHZpw6puIGLDoW4gaMOgbmcpLCAibWFuYWdlbWVudCIgKHF14bqjbiBsw70gdsOgIGjDoG5oIGNow61uaCkuDQoNCisgQmnhur9uIHNlY3RvcjogTMSpbmggduG7sWMgbMOgbSB2aeG7h2MgduG7m2kgY8OhYyBt4bupYyDEkeG7mSAibWFudWZhY3R1cmluZyIgKHPhuqNuIHh14bqldCBob+G6t2Mga2hhaSB0aMOhYyBt4buPKSwgImNvbnN0cnVjdGlvbiIgKHjDonkgZOG7sW5nKSwgIm90aGVyIiAoa2jDoWMpLg0KDQorIEJp4bq/biB1bmlvbjogQ8OhIG5ow6JuIGPDsyBsw6BtIHZp4buHYyB24bubaSDEkW/DoG4gdGjhu4Mga2jDtG5nPw0KDQorIEJp4bq/biBtYXJyaWVkOiAgQ8OhIG5ow6JuIGPDsyBr4bq/dCBow7RuIGtow7RuZz8NCiANCiBCaeG6v24gxJHhu4tuaCBsxrDhu6NuZzoNCiANCisgQmnhur9uIHdhZ2U6IFRp4buBbiBsxrDGoW5nICh0w61uaCBi4bqxbmcgxJHDtCBsYSBt4buXaSBnaeG7nSkuDQorIEJp4bq/biBlZHVjYXRpb246IFPhu5EgbsSDbSBo4buNYyB24bqlbi4NCisgQmnhur9uIGV4cGVyaWVuY2U6IFPhu5EgbsSDbSBraW5oIG5naGnhu4dtIGzDoG0gdmnhu4djIHRp4buBbSBuxINuZyAodHXhu5VpIC0gaOG7jWMgduG6pW4gLSA2KS4NCisgQmnhur9uIGFnZTogVHXhu5VpICh0w61uaCBi4bqxbmcgbsSDbSkuDQoNCiMjIDEuMiBLaGFpIGLDoW8gUGFja2FnZSBjw7MgbGnDqm4gcXVhbg0KDQpgYGB7cn0NCmxpYnJhcnkoZ2dwbG90MikNCmBgYA0KS2hhaSBiw6FvIFBhY2thZ2UgQUVSIGNo4bupYSBk4buvIGxp4buHdSBj4bqnbiBkw7luZw0KYGBge3J9DQpsaWJyYXJ5KEFFUikNCmBgYA0KS2hhaSBiw6FvIFBhY2thZ2UgRFQgZMO5bmcgxJHhu4MgaGnhu4NuIHRo4buLIGLhuqNuZyBk4buvIGxp4buHdSANCmBgYHtyfQ0KbGlicmFyeShEVCkNCmBgYA0KSGnhu4duIGRhdGFzZXQgY+G6p24gcGjDom4gdMOtY2ggdHJvbmcgcGFja2FnZSBBRVIgdsOgIGfDoW5nIGRhdGFzZXQgdsOgbyBkDQpgYGB7cn0NCmRhdGEoIkNQUzE5ODUiKQ0KZCA8LSBDUFMxOTg1DQpkYXRhdGFibGUoZCkNCmBgYA0KDQoNCiMjIDEuMyBC4bqjbmcgdOG6p24gc+G7kSB2w6AgduG6vSBiaeG7g3UgxJHhu5MgIGJp4bq/biDEkeG7i25oIHTDrW5oDQoNCiMjIyAxLjMuMSBC4bqjbmcgdOG6p24gc+G7kSBj4bunYSB2w6AgaMOsbmggduG6vSBj4bunYSBiaeG6v24gZ2VuZGVyDQpgYGB7cn0NCnQxIDwtIHRhYmxlKGQkZ2VuZGVyKQ0KYWRkbWFyZ2lucyh0MSkNCnJvdW5kKCh0YWJsZShkJGdlbmRlcikvc3VtKHRhYmxlKGQkZ2VuZGVyKSkqMTAwKSwyKQ0KZCB8PiBnZ3Bsb3QoYWVzKHggPSBkJGdlbmRlciwgeSA9IGFmdGVyX3N0YXQoY291bnQpKSkgKyBnZW9tX2JhcihmaWxsID0gJ2JsYWNrJykgKyBnZW9tX3RleHQoYWVzKGxhYmVsID0gc2NhbGVzOjpwZXJjZW50KGFmdGVyX3N0YXQoY291bnQvc3VtKGNvdW50KSkpKSwgc3RhdCA9ICdjb3VudCcsIGNvbG9yID0gJ2dyZWVuJywgdmp1c3QgPSAtIC41KSArIHRoZW1lX2NsYXNzaWMoKSArIGxhYnMoeCA9ICdHaeG7m2kgdMOtbmgnLCB5ID0gJ1Phu5EgbmfGsOG7nWknKQ0KYGBgDQpOaOG6rW4geMOpdCx0cm9uZyA1MzQgbmfGsOG7nWkga2jhuqNvIHPDoXQgY8OzIDoNCg0KTmFtIGzDoCAyODkgbmfGsOG7nWkgKGNoaeG6v20ga2hv4bqjbmcgNTQuMSUpDQoNCk7hu68gbMOgIDI0NSBuZ8aw4budaSAoY2hp4bq/bSA0NS45JSksIGdp4bubaSB0w61uaCB0xrDGoW5nIMSR4buRaSDEkeG7k25nIMSR4buBdSwgduG7m2kgbmFtIHbDoCBu4buvIGtow7RuZyBjaMOqbmggbOG7h2NoIHF1w6Egbmhp4buBdSAoY2jDqm5oIGzhu4djaCBraG/huqNuZyA4LjIlKS4NCg0KIyMjIDEuMy4yIELhuqNuZyB04bqnbiBz4buRIHbDoCB24bq9IGJp4buDdSDEkeG7kyBj4bunYSBiaeG6v24gbWFycmllZA0KDQpgYGB7cn0NCnQyIDwtIHRhYmxlKGQkbWFycmllZCkNCmFkZG1hcmdpbnModDIpDQpyb3VuZCgodGFibGUoZCRtYXJyaWVkKS9zdW0odGFibGUoZCRtYXJyaWVkKSkqMTAwKSwyKQ0KZCB8PiBnZ3Bsb3QoYWVzKHggPSBkJG1hcnJpZWQsIHkgPSBhZnRlcl9zdGF0KGNvdW50KSkpICsgZ2VvbV9iYXIoZmlsbCA9ICdibGFjaycpICsgZ2VvbV90ZXh0KGFlcyhsYWJlbCA9IHNjYWxlczo6cGVyY2VudChhZnRlcl9zdGF0KGNvdW50L3N1bShjb3VudCkpKSksIHN0YXQgPSAnY291bnQnLCBjb2xvciA9ICdncmVlbicsIHZqdXN0ID0gLSAuNSkgKyB0aGVtZV9jbGFzc2ljKCkgKyBsYWJzKHggPSAna+G6v3QgaMO0bicsIHkgPSAnU+G7kSBuZ8aw4budaScpDQpgYGANCg0KVHJvbmcgNTM0IG5nxrDhu51pIGto4bqjbyBzw6F0LCBU4bu3IGzhu4cga+G6v3QgaMO0biBjaGnhur9tIHPhu5EgbMaw4bujbmcgbOG7m24sIGPDsyAzNTAgbmfGsOG7nWkgxJHDoyBr4bq/dCBow7RuIChjaGnhur9tIDY1LjUlKSwxODAgbmfGsOG7nWkgY2jGsGEga+G6v3QgaMO0biAoMzQuNSUpLCBjaG8gdGjhuqV5IGzDoCBjw7Mgc+G7sSBjaMOqbmggbOG7h2NoIHLhuqV0IGzhu5tuIGdp4buvYSBuZ8aw4budaSDEkcOjIGvhur90IGjDtG4gdsOgIG5nxrDhu51pIGNoxrBhIGvhur90IGjDtG4gKDMxJSkNCg0KIyMjIDEuMy4zIELhuqNuZyB04bqnbiBz4buRIHbDoCB24bq9IGJp4buDdSDEkeG7kyBj4bunYSBiaeG6v24gb2NjdXBhdGlvbiAobmdo4buBIG5naGnhu4dwKQ0KDQpgYGB7cn0NCnRoNCA8LSB0YWJsZShkJG9jY3VwYXRpb24pDQphZGRtYXJnaW5zKHRoNCkNCnJvdW5kKCh0YWJsZShkJG9jY3VwYXRpb24pL3N1bSh0YWJsZShkJG9jY3VwYXRpb24pKSoxMDApLDIpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCmQgfD4gZ2dwbG90KGFlcyh4ID0gZCRvY2N1cGF0aW9uLCB5ID0gYWZ0ZXJfc3RhdChjb3VudCkpKSArIGdlb21fYmFyKGZpbGwgPSAnYmxhY2snKSArIGdlb21fdGV4dChhZXMobGFiZWwgPSBzY2FsZXM6OnBlcmNlbnQoYWZ0ZXJfc3RhdChjb3VudC9zdW0oY291bnQpKSkpLCBzdGF0ID0gJ2NvdW50JywgY29sb3IgPSAnZ3JlZW4nLCB2anVzdCA9IC0gLjUpICsgdGhlbWVfY2xhc3NpYygpICsgbGFicyh4ID0gJ05naOG7gSBuZ2hp4buHcCcsIHkgPSAnU+G7kSBuZ8aw4budaScpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQpgYGANCk5o4bqtbiB4w6l0OiANCg0KQmnhu4N1IMSR4buTIGNobyB0aOG6pXkgbmdo4buBIGPDtG5nIG5ow6JuIGNoaeG6v20gdOG7tyBs4buHIGNhbyBuaOG6pXQgKDI5LjIlKSwgdHJvbmcga2hpIG5naOG7gSBiw6FuIGjDoG5nIGNoaeG6v20gdOG7tyBs4buHIHRo4bqlcCBuaOG6pXQgKDcuMSUpLiBDw6FjIG5naOG7gSBr4bu5IHRodeG6rXQsIHbEg24gcGjDsm5nIHbDoCBk4buLY2ggduG7pSBjw7MgdOG7tyBs4buHIHTGsMahbmcgxJHhu5FpIGNhbywgbOG6p24gbMaw4bujdCBsw6AgMTkuNyUsIDE4LjIlLCB2w6AgMTUuNSUuDQoNCg0KIyMgMS40IFRo4buRbmcga8OqIG3DtCB04bqjIGPhu6dhIGJp4bq/biDEkeG7i25oIGzGsOG7o25nIA0KDQojIyMgMS40LjEgVGjhu5FuZyBrw6ogbcO0IHThuqMgY2hvIGJp4bq/biB3YWdlDQoNCmBgYHtyfQ0Kc3VtbWFyeShkJHdhZ2UpDQp2YXIoZCR3YWdlKQ0Kc2QoZCR3YWdlKQ0KZ2dwbG90KGQsIGFlcyh4ID0gd2FnZSkpICsNCiAgZ2VvbV9kZW5zaXR5KGZpbGwgPSAiYmxhY2siLCBjb2xvciA9ICJicm93biIsIGFscGhhID0gMC41KSArDQogIGxhYnMoeCA9ICJUaeG7gW4gbMawxqFuZyIpDQpgYGANCk5o4bqtbiB4w6l0Og0KDQpHacOhIHRy4buLIG5o4buPIG5o4bqldCBj4bunYSB0aeG7gW4gbMawxqFuZyBsw6AgMSBVU0QvSCwgIGdpw6EgdHLhu4sgbOG7m24gbmjhuqV0IMSR4bqhdCB04bubaSA0NC41MCBVU0QuIFRydW5nIHbhu4sgY+G7p2EgdGnhu4FuIGzGsMahbmcgbMOgIDcuNzggVVNELCBjw7MgbmdoxKlhIGzDoCA1MCUgc+G7kSBuZ8aw4budaSBsYW8gxJHhu5luZyBjw7MgbeG7qWMgbMawxqFuZyBkxrDhu5tpIGhv4bq3YyBi4bqxbmcgNy43OCDEkVVTRC4gR2nDoSB0cuG7iyB0cnVuZyBiw6xuaCBj4bunYSB0aeG7gW4gbMawxqFuZyBsw6AgOS4wMiAsIGNhbyBoxqFuIHRydW5nIHbhu4ssIMSRaeG7gXUgbsOgeSBjaG8gdGjhuqV5IHPhu7EgdOG7k24gdOG6oWkgY+G7p2EgbeG7mXQgc+G7kSBnacOhIHRy4buLIGPhu7FjIMSR4bqhaSBrw6lvIGdpw6EgdHLhu4sgdHJ1bmcgYsOsbmggbMOqbiBjYW8gaMahbi4NCg0KUGjGsMahbmcgc2FpIGzDoCAyNi40MSB2w6AgxJHhu5kgbOG7h2NoIGNodeG6qW4gbMOgIDUuMTQuIE5o4buvbmcgY29uIHPhu5EgbsOgeSBjaG8gdGjhuqV5IG3hu6ljIMSR4buZIGJp4bq/biB0aGnDqm4gdMawxqFuZyDEkeG7kWkgbOG7m24gY+G7p2EgdGnhu4FuIGzGsMahbmcgcXVhbmggZ2nDoSB0cuG7iyB0cnVuZyBiw6xuaC4gUGjhuqduIHTGsCB0aOG7qSBuaOG6pXQgKDUuMjUpIHbDoCBwaOG6p24gdMawIHRo4bupIGJhICgxMS4yNSkgY2hvIGJp4bq/dCA1MCUgc+G7kSBuZ8aw4budaSBsYW8gxJHhu5luZyBjw7MgbeG7qWMgbMawxqFuZyBu4bqxbSB0cm9uZyBraG/huqNuZyB04burIDUuMjUgxJHhur9uIDExLjI1IMSRxqFuIHbhu4sgdGnhu4FuIHThu4cuDQoNCiMjIyAxLjQuMiBUaOG7kW5nIGvDqiBtw7QgdOG6oyBjaG8gYmnhur9uIGFnZQ0KDQpgYGB7cn0NCnN1bW1hcnkoZCRhZ2UpDQp2YXIoZCRhZ2UpDQpzZChkJGFnZSkNCmdncGxvdChkLCBhZXMoeCA9IGFnZSkpICsNCiAgZ2VvbV9oaXN0b2dyYW0oZmlsbCA9ICJibGFjayIsIGNvbG9yID0gInBpbmsiLCBiaW5zID0gMTApICsNCiAgbGFicyh4ID0gIlR14buVaSIpDQpgYGANCk5o4bqtbiB4w6l0Og0KDQpE4buxYSB2w6BvIGvhur90IHF14bqjIHRo4buRbmcga8OqIG3DtCB04bqjIGNow7puZyB0YSB0aOG6pXkgbMOgIMSR4buZIHR14buVaSBs4bubbiBuaOG6pXQgbMOgIDY0LCBuaOG7jyBuaOG6pXQgbMOgIDE4IHbDoCDEkeG7mSB0deG7lWkgdHJ1bmcgYsOsbmggbMOgIDM2LjgzMzMzLg0KROG7sWEgdsOgbyB04bupIHBow6JuIHbhu4sgdGjDrCBjw7MgMjUlIG5nxrDhu51pIGPDsyB0deG7lWkgbmjhu48gaMahbiAyOCB2w6AgY8OzIDI1JSB0cm9uZyBz4buRIG5nxrDhu51pIGto4bqjbyBzw6F0IGzhu5tuIGjGoW4gNDQgdHXhu5VpLg0KROG7sWEgdHLDqm4gbmjhu69uZyDEkeG6t2MgdHLGsG5nIMSRbyBsxrDhu51uZywgdGnhur9uIGjDoG5oIHBow6JuIHThu5UgaGFpIGJp4bq/biDEkeG7i25oIGzGsOG7o25nLg0KDQoNCiMjIyAxLjQuMyBUaOG7kW5nIGvDqiBtw7QgdOG6oyBjaG8gYmnhur9uIGVkdWNhdGlvbg0KYGBge3J9DQpzdW1tYXJ5KGQkZWR1Y2F0aW9uKQ0KdmFyKGQkZWR1Y2F0aW9uKQ0Kc2QoZCRlZHVjYXRpb24pDQpkIHw+IGdncGxvdChhZXMoeCA9IGQkZWR1Y2F0aW9uLCB5ID0gYWZ0ZXJfc3RhdChjb3VudCkpKSArIGdlb21fYmFyKGZpbGwgPSAnYmxhY2snKSArIGdlb21fdGV4dChhZXMobGFiZWwgPSBzY2FsZXM6OnBlcmNlbnQoYWZ0ZXJfc3RhdChjb3VudC9zdW0oY291bnQpKSkpLCBzdGF0ID0gJ2NvdW50JywgY29sb3IgPSAnZ3JlZW4nLCB2anVzdCA9IC0gLjUpICsgdGhlbWVfY2xhc3NpYygpICsgbGFicyh4ID0gJ1Ryw6xuaCDEkeG7mSBo4buNYyB24bqlbiAnLCB5ID0gJ1Phu5EgbmfGsOG7nWknKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQpgYGANCg0KTmjhuq1uIHjDqXQ6DQoNCkJp4buDdSDEkeG7kyBjaG8gdGjhuqV5IHRyw6xuaCDEkeG7mSBo4buNYyB24bqlbiBs4bubcCAxMiBjaGnhur9tIHThu7cgbOG7hyBjYW8gbmjhuqV0ICg0MS4wMSUpLCB0csOsbmggxJHhu5kgc2F1IDEyIGPFqW5nIGNoaeG6v20gdOG7tyBs4buHIGzhu5tuLCB0csOsbmggxJHhu5kgdOG7qyBs4bubcCAxIC0gMTEgY2hp4bq/bSB04bu3IGzhu4cgbmjhu48gY2hvIHRo4bqleSBsw6AgZOG7ryBsaeG7h3UgbmdoacOqbiBj4bupdSBjw7Mgc+G7kSBuZ8aw4budaSBjw7MgdHLDrG5oIMSR4buZIDEyIG5oaeG7gXUgaMahbi4NCiANCg0KYGBge3J9DQpkJGFnZSA8LSBjdXQoZCRhZ2UsIGJyZWFrcz1jKDE3LCAzNiw2NSksIGxhYmVscz1jKCdkdW9pIDM2JywgJ3RyZW4gMzYnKSkNCnRhYmxlKGQkYWdlKQ0KDQoNCmBgYA0KDQojIyAxLjUgUGjDom4gdMOtY2ggdMOsbmggdHLhuqFuZyBnaeG7m2kgdMOtbmgg4bqjbmggaMaw4bufbmcgdOG7m2kgbMawxqFuZw0KYGBge3J9DQpkJHdhZ2UgPC0gY3V0KGQkd2FnZSwgYnJlYWtzPWMoMCwxMiw0NSksbGFiZWxzPWMoJ3RoYXAnLCdjYW8nKSkNCnRhYmxlKGQkd2FnZSApICAgICANCmBgYA0KIyMjIDEuNS4xIELhuqNuZyB04bqnbiBz4buRIA0KYGBge3J9DQp0YWJsZShkJGdlbmRlcixkJHdhZ2UpDQpyb3VuZCgodGFibGUoZCRnZW5kZXIsIGQkd2FnZSkgLyBzdW0odGFibGUoZCRnZW5kZXIsIGQkd2FnZSkpICogMTAwKSwgMikNCg0KYWRkbWFyZ2lucyh0YWJsZShkJGdlbmRlcixkJHdhZ2UpKQ0KDQpgYGANCk5o4bqtbiB4w6l0OiANCg0KIFThu5VuZyBz4buRIG5hbSAgbMOgIDI4OSwgc+G7kSBuZ8aw4budaSBuYW0gY8OzIGzGsMahbmcgdGjhuqVwIGzDoCAyMDUgbmfGsOG7nWkgY2hp4bq/bSAzOCw1OCUsIHPhu5EgbmFtIGPDsyBsxrDGoW5nIGNhbyBsw6AgODMgbmfGsOG7nWkgY2hp4bq/bSAxNS41NCUNCiANCiBU4buVbmcgc+G7kSBu4buvIHRyb25nIG3huqt1IG5naGnDqm0gY+G7qXUgbMOgIDI0NSBuZ8aw4budaSwgdHJvbmcgxJHDsyBz4buRIGzGsOG7o25nIG7hu68gY8OzIGzGsMahbmcgdGjhuqVwIGNoaeG6v20gc+G7kSBsxrDhu6NuZyBs4bubbiBsw6AgMjE2IG5nxrDhu51pIGNoaeG6v20gNDAuNTUlLCBz4buRIGzGsOG7o25nIG7hu68gY8OzIGzGsMahbmcgY2FvIGNoaeG6v20gNS40MyUuDQoNCiMjIyAxLjUuMiBSZWxhdGl2ZSBSaXNrDQpgYGB7cn0NCmxpYnJhcnkoRGVzY1Rvb2xzKQ0KbGlicmFyeShlcGl0b29scykNCg0KdDMgPC0gdGFibGUoZCRnZW5kZXIsZCR3YWdlKQ0KDQpSZWxSaXNrKHQzKQ0Kcmlza3JhdGlvKHQzLCByZXYgPSAnYicpDQoNCmVwaXRhYih0MywgbWV0aG9kID0gJ3Jpc2tyYXRpbycsIHJldiA9ICdjJykNCg0KYGBgDQpOaOG6rW4geMOpdDoNCg0KVOG7tyBz4buRIHLhu6dpIHJvIGzDoCAwLjgwOSB24bubaSBraG/huqNuZyB0aW4gY+G6rXkgOTUlIHThu6sgMC43NDAgxJHhur9uIDAuODguIMSQaeG7gXUgbsOgeSBjw7MgbmdoxKlhIGzDoCBuYW0gY8OzIGzGsMahbmcgdGjhuqVwIGLhurFuZyAwLjgwOSBs4bqnbiBzbyB24bubaSBu4buvLiBLaG/huqNuZyB0aW4gY+G6rXkgOTUlIGNobyBiaeG6v3QgcuG6sW5nIGNow7puZyB0YSBjw7MgdGjhu4MgdGluIHTGsOG7n25nIHLhurFuZyBnacOhIHRy4buLIHRo4buxYyBj4bunYSB04bu3IHPhu5EgcuG7p2kgcm8gbuG6sW0gdHJvbmcga2hv4bqjbmcgdOG7qyAwLjc0MCDEkeG6v24gMC44OCB24bubaSB4w6FjIHN14bqldCA5NSUuDQoNCg0KDQojIyMgMS41LjMgT2RkcmF0aW8NCg0KYGBge3J9DQpPZGRzUmF0aW8odDMpDQpvZGRzcmF0aW8odDMpDQplcGl0YWIodDMsIG1ldGhvZCA9ICdvZGRzcmF0aW8nKQ0KYGBgDQoNCk5o4bqtbiB4w6l0OiANClThu7cgbOG7hyBvZGRzIHJhdGlvIGPhu6dhIG7hu68gKHNvIHbhu5tpIG5hbSBsw6BtIGPGoSBz4bufKSBsw6AgMC4zMzIgduG7m2kga2hv4bqjbmcgdGluIGPhuq15IDk1JSB04burIDAuMjA4IMSR4bq/biAwLjUyNy4NCktob+G6o25nIHRpbiBj4bqteSA5NSUgY2hvIHThu7cgbOG7hyBvZGRzIHJhdGlvIGzDoCB04burIDAuMjA4IMSR4bq/biAwLjUyNy7EkGnhu4F1IG7DoHkgY2hvIHRo4bqleSBjaMO6bmcgdGEgY8OzIHRo4buDIHRpbiB0xrDhu59uZyBy4bqxbmcgZ2nDoSB0cuG7iyB0aOG7sWMgY+G7p2EgdOG7tyBs4buHIG9kZHMgcmF0aW8gbuG6sW0gdHJvbmcga2hv4bqjbmcgbsOgeSB24bubaSB4w6FjIHN14bqldCA5NSUuDQoNClAtdmFsdWUgPSAxLjMwMDRlLTA2IGNobyB04bu3IGzhu4cgb2RkcyByYXRpbyBj4bunYSBu4buvIGzDoCBy4bqldCBuaOG7jyAsIGNobyB0aOG6pXkgc+G7sSBraMOhYyBiaeG7h3QgduG7gSBvZGRzIGdp4buvYSBuYW0gdsOgIG7hu68gbMOgIGPDsyDDvSBuZ2jEqWEgdGjhu5FuZyBrw6ouDQoNCiMjIDEuNiBQaMOibiB0w61jaCBjaG8gMiBiaeG6v24gIGvhur90IGjDtG4gdsOgIGzGsMahbmcNCg0KIyMjIDEuNi4xIELhuqNuZyB04bqnbiBz4buRIA0KDQpgYGB7cn0NCnRhYmxlKGQkbWFycmllZCxkJHdhZ2UpDQpyb3VuZCgodGFibGUoZCRtYXJyaWVkLGQkd2FnZSkgLyBzdW0odGFibGUoZCRtYXJyaWVkLGQkd2FnZSkpICogMTAwKSwgMikNCmFkZG1hcmdpbnModGFibGUoZCRtYXJyaWVkLGQkd2FnZSkpDQoNCmBgYA0KTmjhuq1uIHjDqXQ6DQoNClRyb25nIG5ow7NtIGtow7RuZyBr4bq/dCBow7RuLCBjw7MgMTU0IG5nxrDhu51pIGzGsMahbmcgdGjhuqVwIHbDoCAzMCBuZ8aw4budaSBsxrDGoW5nIGNhby4gDQoNClRyb25nIG5ow7NtIGvhur90IGjDtG4sIGPDsyAyNjggbmfGsOG7nWkgbMawxqFuZyB0aOG6pXAgdsOgIDgyIG5nxrDhu51pIGzGsMahbmcgY2FvLiANCg0KDQojIyMgMS42LjIgUmVsYXRpdmUgUmlzaw0KYGBge3J9DQpsaWJyYXJ5KERlc2NUb29scykNCmxpYnJhcnkoZXBpdG9vbHMpDQoNCnQ0IDwtIHRhYmxlKGQkbWFycmllZCxkJHdhZ2UpDQpSZWxSaXNrKHQ0KQ0Kcmlza3JhdGlvKHQ0LCByZXYgPSAnYicpDQoNCmVwaXRhYih0NCwgbWV0aG9kID0gJ3Jpc2tyYXRpbycsIHJldiA9ICdjJykNCg0KYGBgDQpOaOG6rW4geMOpdDoNCg0KVOG7tyBs4buHIG5ndXkgY8ahIChSaXNrIFJhdGlvKSBj4bunYSBuaMOzbSBraMO0bmcga+G6v3QgaMO0biBzbyB24bubaSBuaMOzbSBr4bq/dCBow7RuIGzDoCAxLjA5NCwgduG7m2kga2hv4bqjbmcgdGluIGPhuq15IDk1JSB04burIDEuMDA0IMSR4bq/biAxLjE5My4gR2nDoSB0cuG7iyBwLXZhbHVlIGNobyB0aOG6pXkgZ2nhu69hIGhhaSBuaMOzbSBn4bqnbiDEkeG6oXQgbeG7qWMgw70gbmdoxKlhIHRo4buRbmcga8OqIDAuMDUuIFThu7cgbOG7hyBuZ3V5IGPGoSBj4bunYSBuaMOzbSBr4bq/dCBow7RuIHNvIHbhu5tpIG5ow7NtIGtow7RuZyBr4bq/dCBow7RuIGzDoCAwLjkxNCwgduG7m2kga2hv4bqjbmcgdGluIGPhuq15IDk1JSB04burIDAuODM5IMSR4bq/biAwLjk5NiwgY2hvIHRo4bqleSBuZ8aw4budaSBr4bq/dCBow7RuIGPDsyBjw7MgbeG7qWMgbMawxqFuZyBjYW8gdGjhuqVwIGjGoW4gOC42JSBzbyB24bubaSBuaOG7r25nIG5nxrDhu51pIGtow7RuZyBr4bq/dCBow7RuLg0KDQojIyMgMS42LjMgT2RkcmF0aW8NCg0KYGBge3J9DQpPZGRzUmF0aW8odDMpDQpvZGRzcmF0aW8odDMpDQplcGl0YWIodDMsIG1ldGhvZCA9ICdvZGRzcmF0aW8nKQ0KYGBgDQpOaOG6rW4geMOpdDogDQoNClThu7cgbOG7hyBvZGRzIHJhdGlvIGdp4buvYSBuYW0gdsOgIG7hu68gbMOgIGtob+G6o25nIDAuMzMyIHbhu5tpIHAtdmFsdWUgPSAxLjMqMTBeLTYuQ2hvIHRo4bqleSBz4buxIGtow6FjIGJp4buHdCB24buBIG9kZHMgZ2nhu69hIG5hbSB2w6AgbuG7ryBsw6AgY8OzIMO9IG5naMSpYSB0aOG7kW5nIGvDqi4NCk5hbSBjw7Mgb2RkcyB0aOG6pXAgaMahbiBzbyB24bubaSBu4buvIHRyb25nIHZp4buHYyBjw7MgbMawxqFuZyB0aOG6pXAsIHbDoCBz4buxIGtow6FjIGJp4buHdCBuw6B5IGzDoCBjw7Mgw70gbmdoxKlhIHRo4buRbmcga8OqLg0KIA0KIyMgMS43IFBow6JuIHTDrWNoIGNobyAyIGJp4bq/biBnaeG7m2kgdMOtbmggdsOgIHRyw6xuaCDEkeG7mSBo4buNYyB24bqlbg0KIyMjIDEuNy4xIELhuqNuZyB04bqnbiBz4buRIA0KYGBge3J9DQp0cmluaGRvIDwtY3V0KGQkZWR1Y2F0aW9uLCBicmVha3M9YygxLDEyLDE4KSwgbGFiZWxzPWMoJ3Ro4bqlcCcsICcgY2FvJykpDQp0YWJsZSh0cmluaGRvKQ0KayA8LSBkYXRhLmZyYW1lKGQkd2FnZSwgZCRlZHVjYXRpb24sIGQkZXhwZXJpZW5jZSwgZCRhZ2UsIGQkZXRobmljaXR5LCBkJHJlZ2lvbiwgZCRnZW5kZXIsIGQkb2NjdXBhdGlvbiwgZCRzZWN0b3IsIGQkdW5pb24sIGQkbWFycmllZCwgdHJpbmhkbykNCg0KdGFibGUoayRkLmdlbmRlcixrJHRyaW5oZG8pDQphZGRtYXJnaW5zKHRhYmxlKGskZC5nZW5kZXIsayR0cmluaGRvKSkNCg0KDQoNCmQgfD4gZ2dwbG90KGFlcyh4ID0gZCRnZW5kZXIgLCB5ID0gYWZ0ZXJfc3RhdChjb3VudCkpKSArIGdlb21fYmFyKGZpbGwgPSAnYmxhY2snKSArIGdlb21fdGV4dChhZXMobGFiZWwgPSBzY2FsZXM6OnBlcmNlbnQoYWZ0ZXJfc3RhdChjb3VudC9zdW0oY291bnQpKSkpLCBzdGF0ID0gJ2NvdW50JywgY29sb3IgPSAncmVkJywgdmp1c3QgPSAtIC41KSArIGZhY2V0X2dyaWQoLiB+IGskdHJpbmhkbykgKyBsYWJzKHggPSAnR2nhu5tpIHTDrW5oJywgeSA9ICdT4buRIG5nxrDhu51pJykNCg0KYGBgDQpOaOG6rW4geMOpdDoNCg0KTmfGsOG7nWkgY8OzIHRyw6xuaCDEkeG7mSAxMiBsw6AgMzAyIG5nxrDhu51pIGNoaeG6v20gNTYuNSUsIG5nxrDhu51pIGPDsyB0csOsbmggxJHhu5kgxJHhuqFpIGjhu41jIGzDoCAyMzIgbmfGsOG7nWkgY2hp4bq/bSA0My41JS4NCg0KU+G7kSBuZ8aw4budaSBjw7MgdHLDrG5oIMSR4buZIHRo4bqlcCBsdcO0biBuaGnhu4F1IGjGoW4gc28gduG7m2kgc+G7kSBuZ8aw4budaSBjw7MgdHLDrG5oIMSR4buZIGNhbyDhu58gY+G6oyBuYW0gdsOgIG7hu68uIMSQ4buRaSB24bubaSBuYW0sIGPDsyAxNTkgbmfGsOG7nWkgY8OzIHRyw6xuaCDEkeG7mSB0aOG6pXAgdsOgIDEzMCBuZ8aw4budaSBjw7MgdHLDrG5oIMSR4buZIGNhbywgdHJvbmcga2hpIMSR4buRaSB24bubaSBu4buvLCBz4buRIGxp4buHdSB0xrDGoW5nIOG7qW5nIGzhuqduIGzGsOG7o3QgbMOgIDE0MyB2w6AgMTAyIG5nxrDhu51pLg0KDQpT4buxIGNow6puaCBs4buHY2ggZ2nhu69hIHPhu5EgbmfGsOG7nWkgY8OzIHRyw6xuaCDEkeG7mSB0aOG6pXAgdsOgIHRyw6xuaCDEkeG7mSBjYW8gbOG7m24gaMahbiDhu58gbuG7ryBzbyB24bubaSBuYW0sIHbhu5tpIDQxIG5nxrDhu51pIOG7nyBu4buvIHbDoCAyOSBuZ8aw4budaSDhu58gbmFtLiDEkGnhu4F1IG7DoHkgY8OzIHRo4buDIGNo4buJIHJhIHPhu7Ega2jDoWMgYmnhu4d0IHRyb25nIHBow6JuIGLhu5EgdHLDrG5oIMSR4buZIGdpw6FvIGThu6VjIGhv4bq3YyBraOG6oyBuxINuZyBo4buNYyB04bqtcCBnaeG7r2EgbmFtIHbDoCBu4buvIHRyb25nIG3huqt1IGThu68gbGnhu4d1IG7DoHkuDQoNCiMjIyAxLjcuMiBSZWxhdGl2ZSBSaXNrDQoNCmBgYHtyfQ0KdGg1IDwtIHRhYmxlKGQkZ2VuZGVyLCBrJHRyaW5oZG8pDQpSZWxSaXNrKHRoNSkNCnJpc2tyYXRpbyh0aDUsIHJldiA9ICdiJykNCmVwaXRhYih0aDUsIG1ldGhvZCA9ICdyaXNrcmF0aW8nLCByZXYgPSAnYycpDQoNCmBgYA0KTmjhuq1uIHjDqXQ6DQoNClThu7cgc+G7kSBy4bunaSBybyBsw6AgMC45NDI2LMSRaeG7gXUgbsOgeSBjw7MgbmdoxKlhIGzDoCBuYW0gY8OzICB0csOsbmggxJHhu5kgdGjhuqVwIHNvIHbhu5tpIG7hu68uIA0KDQpHacOhIHRy4buLIHAtdmFsdWUgbMOgIGtob+G6o25nIDAuNDQsIGtow7RuZyDEkeG7pyBi4bqxbmcgY2jhu6luZyDEkeG7gyBr4bq/dCBsdeG6rW4gduG7gSBz4buxIGtow6FjIGJp4buHdCDEkcOhbmcga+G7gyB24buBIG5ndXkgY8ahIGPDsyB0csOsbmggxJHhu5kgdGjhuqVwIGdp4buvYSBuYW0gdsOgIG7hu68uDQoNCiBU4bu3IGzhu4cgcuG7p2kgcm8gY+G7p2EgbmFtIHNvIHbhu5tpIG7hu68gbMOgIDEuMDYsIHbhu5tpIGtob+G6o25nIHRpbiBj4bqteSA5NSUgbuG6sW0gZ2nhu69hIDAuOTEgdsOgIDEuMjMuIEvhur90IHF14bqjIG7DoHkgY8Wpbmcga2jDtG5nIMSR4bunIG3huqFuaCDEkeG7gyBr4bq/dCBsdeG6rW4gcuG6sW5nIGPDsyBz4buxIGtow6FjIGJp4buHdCDEkcOhbmcga+G7gyB24buBIG5ndXkgY8ahIGPDsyB0csOsbmggxJHhu5kgdGjhuqVwIGdp4buvYSBoYWkgZ2nhu5tpIHTDrW5oLg0KDQoNCg0KIyMjIDEuNy4zIE9kZHJhdGlvDQoNCmBgYHtyfQ0KT2Rkc1JhdGlvKHRoNSkNCg0KZXBpdGFiKHRoNSwgbWV0aG9kID0gJ29kZHNyYXRpbycpDQogICAgICAgDQpgYGANCk5o4bqtbiB4w6l0OiANCg0KR2nDoSB0cuG7iyBvZGRzIHJhdGlvIGdp4buvYSBuYW0gdsOgIG7hu68gbMOgIGtob+G6o25nIDAuODcuIEtoaSBnacOhIHRy4buLIG9kZHMgcmF0aW8gbmjhu48gaMahbiAxLCDEkWnhu4F1IG7DoHkgbmfhu6Ugw70gcuG6sW5nIG5hbSAgY8OzIHRyw6xuaCDEkeG7mSB0aOG6pXAgaMahbiBzbyB24bubaSBu4buvLg0KDQpUdXkgbmhpw6puLCBnacOhIHRy4buLIHAtdmFsdWUgbMOgIGtob+G6o25nIDAuNDgsIGtow7RuZyDEkeG7pyBi4bqxbmcgY2jhu6luZyDEkeG7gyBr4bq/dCBsdeG6rW4gduG7gSBz4buxIGtow6FjIGJp4buHdCDEkcOhbmcga+G7gyB24buBIG5ndXkgY8ahIGPDsyB0csOsbmggxJHhu5kgdGjhuqVwIGdp4buvYSBuYW0gdsOgIG7hu68uDQoNCg0KIyMgMS44IFBow6JuIHTDrWNoIGJp4bq/biB0csOsbmggxJHhu5kgaOG7jWMgduG6pW4gKGVkdWNhdGlvbikgdsOgIGzGsMahbmcNCiMjIyAxLjguMSBC4bqjbmcgdOG6p24gc+G7kQ0KYGBge3J9DQp0aDkgPC0gdGFibGUoayR0cmluaGRvLGskZC53YWdlKQ0KYWRkbWFyZ2lucyh0aDkpDQpkIHw+IGdncGxvdChhZXMoeCA9IGQkd2FnZSAsIHkgPSBhZnRlcl9zdGF0KGNvdW50KSkpICsgZ2VvbV9iYXIoZmlsbCA9ICdibGFjaycpICsgZ2VvbV90ZXh0KGFlcyhsYWJlbCA9IHNjYWxlczo6cGVyY2VudChhZnRlcl9zdGF0KGNvdW50L3N1bShjb3VudCkpKSksIHN0YXQgPSAnY291bnQnLCBjb2xvciA9ICdyZWQnLCB2anVzdCA9IC0gLjUpICsgZmFjZXRfZ3JpZCguIH4gayR0cmluaGRvKSArIGxhYnMoeCA9ICdMxrDGoW5nJywgeSA9ICdT4buRIG5nxrDhu51pJykNCg0KYGBgDQoNCk5o4bqtbiB4w6l0Og0KDQpUcm9uZyBk4buvIGxp4buHdSBuw6B5IG7DoHksIHRhIGPDszoNCg0KMzAxIG5nxrDhu51pIGPDsyBt4bupYyBsxrDGoW5nIHRo4bqlcCwgdHJvbmcgxJHDsyBjw7MgMjY3IG5nxrDhu51pIGPDsyB0csOsbmggxJHhu5kgdGjhuqVwIHbDoCAzNCBuZ8aw4budaSBjw7MgdHLDrG5oIMSR4buZIGNhby4NCg0KMjMyIG5nxrDhu51pIGPDsyBt4bupYyBsxrDGoW5nIGNhbywgdHJvbmcgxJHDsyBjw7MgMTU0IG5nxrDhu51pIGPDsyB0csOsbmggxJHhu5kgdGjhuqVwIHbDoCA3OCBuZ8aw4budaSBjw7MgdHLDrG5oIMSR4buZIGNhby4NCg0KIyMjIDEuOC4yIFJlbGF0aXZlIFJpc2sNCg0KYGBge3J9DQoNClJlbFJpc2sodGg5KQ0Kcmlza3JhdGlvKHRoOSwgcmV2ID0gJ2InKQ0KDQplcGl0YWIodGg5LCBtZXRob2QgPSAncmlza3JhdGlvJywgcmV2ID0gJ2MnKQ0KDQpgYGANCg0KTmjhuq1uIHjDqXQ6DQoNClThu7cgbOG7hyBy4bunaSBybyBnaeG7r2EgbmjDs20gY8OzIG3hu6ljIGzGsMahbmcgdGjhuqVwIHbDoCBuaMOzbSBjw7MgbeG7qWMgbMawxqFuZyBjYW8gbMOgIGtob+G6o25nIDEuMzQuIMSQaeG7gXUgbsOgeSBuZ+G7pSDDvSBy4bqxbmduaMOzbSBjw7MgbeG7qWMgbMawxqFuZyB0aOG6pXAgY2FvIGjGoW4ga2hv4bqjbmcgMzQlIHNvIHbhu5tpIG5ow7NtIGPDsyBt4bupYyBsxrDGoW5nIGNhby4NCg0KR2nDoSB0cuG7iyBwLXZhbHVlID0gIDQuODQwMzU3MjU5ZS0xMCBjaG8gdGjhuqV5IHPhu7Ega2jDoWMgYmnhu4d0IMSRw6FuZyBr4buDLiDEkGnhu4F1IG7DoHkgbmfhu6Ugw70gcuG6sW5nIHPhu7Ega2jDoWMgYmnhu4d0IHbhu4Egbmd1eSBjxqEgZ2nhu69hIGhhaSBuaMOzbSBsw6AgY8OzIMO9IG5naMSpYSB0aOG7kW5nIGvDqi4NCg0KIyMjIDEuOC4zIE9kZHJhdGlvDQoNCmBgYHtyfQ0KT2Rkc1JhdGlvKHRoOSkNCm9kZHNyYXRpbyh0aDkpDQplcGl0YWIodGg5LCBtZXRob2QgPSAnb2Rkc3JhdGlvJykNCiAgICAgDQpgYGBgDQoNCk5o4bqtbiB4w6l0Og0KDQpU4bu3IGzhu4cgY8ahIGjhu5lpIGdp4buvYSBuaMOzbSBjw7MgbeG7qWMgbMawxqFuZyB0aOG6pXAgdsOgIG5ow7NtIGPDsyBt4bupYyBsxrDGoW5nIGNhbyBsw6Aga2hv4bqjbmcgMy45OC4gxJBp4buBdSBuw6B5IGPDsyBuZ2jEqWEgbMOgIG5ndXkgY8ahIGPhu6dhIG5ow7NtIGPDsyBt4bupYyBsxrDGoW5nIHRo4bqlcCBn4bqnbiA0IGzhuqduIHNvIHbhu5tpIG5ow7NtIGPDsyBt4bupYyBsxrDGoW5nIGNhby4NCg0KR2nDoSB0cuG7iyBwLXZhbHVlID0gNC44NDAzNTcyNTllLTEwLiDEkGnhu4F1IG7DoHkgY2hvIHRo4bqleSBz4buxIGtow6FjIGJp4buHdCB24buBIG5ndXkgY8ahIGdp4buvYSBoYWkgbmjDs20gbMOgIGPDsyDDvSBuZ2jEqWEgdGjhu5FuZyBrw6ouDQoNCiMjIDEuOSBUaOG7kW5nIGvDqiBzdXkgZGnhu4VuIGNobyBk4buvIGxp4buHdSDEkeG7i25oIHTDrW5oDQoNCktp4buDbSDEkeG7i25oIHTDrW5oIMSR4buZYyBs4bqtcCBjaG8gMiBiaeG6v24gxJHhu4tuaCB0w61uaDoNCkdp4bqjIHRodXnhur90ICRIXzAkIDogxJHhu5ljIGzhuq1wLg0KR2nhuqMgdGh1eeG6v3QgJEhfMSQ6IGtow7RuZyDEkeG7mWMgbOG6rXANCg0KIyMjIDEuOS4xIEtp4buDbSDEkeG7i25oIHTDrW5oIMSR4buZYyBs4bqtcCBj4bunYSBnaeG7m2kgdMOtbmggdsOgIGzGsMahbmcNCg0KYGBge3J9DQpjaGlzcS50ZXN0KHQzKQ0KDQpgYGANCk5o4bqtbiB4w6l0OiANCg0KQsOhYyBi4buPIGdp4bqjIHRodXnhur90ICRIXzAkLCBjaOG6pXAgbmjhuq1uIGdp4bqjIHRodXnhur90ICRIXzEkLCBnaeG7m2kgdMOtbmggdsOgIGzGsMahbmcgY8OzIGxpw6puIHF1YW4gdOG7m2kgbmhhdS4NCiANCiMjIyAxLjkuMiBLaeG7g20gxJHhu4tuaCB0w61uaCDEkeG7mWMgbOG6rXAgY+G7p2Ega+G6v3QgaMO0biB2w6AgbMawxqFuZw0KDQpgYGB7cn0NCmNoaXNxLnRlc3QodDQpDQoNCmBgYA0KDQpOaOG6rW4geMOpdDogDQoNCkLDoWMgYuG7jyBnaeG6oyB0aHV54bq/dCAkSF8wJCwgY2jhuqVwIG5o4bqtbiBnaeG6oyB0aHV54bq/dCAkSF8xJCwga+G6v3QgaMO0biB2w6AgbMawxqFuZyBjw7MgbGnDqm4gcXVhbiB04bubaSBuaGF1Lg0KDQojIyMgMS45LjMgS2nhu4NtIMSR4buLbmggdMOtbmggxJHhu5ljIGzhuq1wIGPhu6dhIGdp4bubaSB0w61uaCB2w6AgdHLDrG5oIMSR4buZIGjhu41jIHbhuqVuDQoNCmBgYHtyfQ0KY2hpc3EudGVzdCh0aDUpDQoNCmBgYA0KTmjhuq1uIHjDqXQ6IA0KDQpCw6FjIGLhu48gZ2nhuqMgdGh1eeG6v3QgJEhfMCQsIGNo4bqlcCBuaOG6rW4gZ2nhuqMgdGh1eeG6v3QgJEhfMSQsIGdp4bubaSB0w61uaCB2w6AgdHLDrG5oIMSR4buZIGjhu41jIHbhuqVuIGPDsyBsacOqbiBxdWFuIHThu5tpIG5oYXUuDQoNCiMjIyAxLjkuNCBLaeG7g20gxJHhu4tuaCB0w61uaCDEkeG7mWMgbOG6rXAgIHRyw6xuaCDEkeG7mSBo4buNYyB24bqlbiB2w6AgbMawxqFuZw0KDQpgYGB7cn0NCmNoaXNxLnRlc3QodGg5KQ0KDQpgYGANCk5o4bqtbiB4w6l0OiANCg0KQsOhYyBi4buPIGdp4bqjIHRodXnhur90ICRIXzAkLCBjaOG6pXAgbmjhuq1uIGdp4bqjIHRodXnhur90ICRIXzEkLCB0csOsbmggxJHhu5kgaOG7jWMgduG6pW4gdsOgIGzGsMahbmcgY8OzIGxpw6puIHF1YW4gdOG7m2kgbmhhdS4=