1 LỜI CẢM ƠN

Lời đầu tiên, em xin gửi lời cảm ơn đến các thầy cô của trường Đại học Tài chính – Marketing, đặc biệt là các thầy cô bộ môn Khoa Kinh tế - Luật đã tận tình giảng dạy và chỉ dẫn em trong quá trình học tập vừa qua. Và em xin chân thành cảm ơn thầy Trần Mạnh Tường đã giúp đỡ, hướng dẫn em hoàn thành bài tiểu luận môn Phân tích dữ liệu định tính này một cách tốt nhất. Em xin chúc thầy cô có nhiều sức khỏe, hạnh phúc và thành công trên con đường sự nghiệp của mình.

Trong quá trình hoàn thành tiểu luận em khó tránh khỏi nhiều thiếu sót, em rất mong nhận được những ý kiến đóng góp từ thầy cô, từ đó giúp em hoàn thiện, học hỏi thêm được nhiều kinh nghiệm và củng cố thêm kiến thức của mình.

Lời cuối cùng, em xin kính chúc thầy, cô thật nhiều sức khỏe, đạt được nhiều thành công và phát triển.

Em xin chân thành cảm ơn!

2 CHƯƠNG 1: PHẦN MỞ ĐẦU

2.1 Lý do chọn đề tài

Mục tiêu của tất cả các doanh nghiệp chính là việc tạo ra các giá trị cho cổ đông. Theo Fernandez (2002) “Một công ty tạo ra giá trị của cổ đông khi lợi nhuận của cổ đông vượt quá lợi nhuận yêu cầu của vốn chủ sở hữu hay nói cách khác khi lợi nhuận của cổ đông vượt quá giá trị mong đợi”. Có nhiều chỉ tiêu kế toán để đánh giá thành quả của một doanh nghiệp như lãi ròng, thu nhập hoạt động thuần sau thuế và lợi nhuận trên mỗi cổ phần, dòng tiền thuần (NOPAT, NI, EPS và OCF). Do đó, việc sử dụng thước đo tài chính nào phù hợp định giá thành quả doanh nghiệp để có tương quan cao với tài sản cổ đông

2.2 Mục tiêu và phương pháp nghiên cứu

Một trong những bài toán về cổ phiếu có thể ứng dụng phương pháp Monte Carlo để giải quyết chính là đưa ra các dự báo về lợi nhuận trong tương lai. Ta có thể tạo ra mô hình toán học của giá trị lợi nhuận dựa trên các yếu tố lịch sử theo thời gian của mã cổ phiếu. Mô hình này có thể là một mô hình ngẫu nhiên, trong đó các giá trị của các yếu tố ảnh hưởng được tạo ra bằng cách sử dụng số ngẫu nhiên.

Kết quả của mô phỏng Monte Carlo này sẽ cung cấp cho chúng ta một cái nhìn về khả năng xảy ra lợi nhuận của cổ phiếu trong tương lai, giúp ta đưa ra quyết định đầu tư thông minh hơn. Những câu hỏi phương pháp này có thể trả lời bao gồm:

Lợi nhuận kỳ vọng trên thị trường cổ phiếu trong một khoảng thời gian tới?

Xác suất của việc tạo nên một giá trị lợi nhuận nhất định trong một khoảng thời gian tới?

Xác suất của việc mất nhiều hơn một giá trị đầu tư nhất định trong một khoảng thời gian tới?

2.3 Đối tượng và phạm vi nghiên cứu

Giá cổ phiếu của nhóm ngành chứng khoán bao gồn các mã: AGR, APG, BSI, CTS, FTS, HCM, SSI.

Thời gian thu thập từ 1/1/2022 đến 31/7/2023

2.4 Kết cấu đề tài

Nội dung bài tiểu luận bao gồm:

  • Chương 1: Phần mở đầu

  • Chương 2: Tổng quan lý thuyết

  • Chương 3: Dữ liệu nghiên cứu và mô hình đề xuất

  • Chương 4: Kết quả

  • Chương 5: Kết luận

3 CHƯƠNG 2: TỔNG QUAN LÝ THUYẾT

3.1 Tổng quan thị trường chứng khoán

Thị trường chứng khoán giữ vai trò hết sức quan trọng trong hệ thống tài chính ở mỗi quốc gia. Trên thị trường, giá cổ phiếu là yếu tố được các nhà đầu tư đặc biệt quan tâm khi đưa ra quyết định đầu tư.

Chứng khoán là một công cụ tài chính có giá trị, có thể mua bán và nắm giữ như tiền. Lợi nhuận từ đầu tư chứng khoán thông thường đến từ chênh lệch giá mua và giá bán. Ngoài ra, nhà đầu tư có thể thu được lợi nhuận từ việc nhận cổ tức hay trái tức.

Mọi biến động trên thị trường chứng khoán Việt Nam đều có thể tác động đến nền kinh tế nước ta, vì đây là kênh dẫn vốn quan trọng cho nền kinh tế, cũng là kênh đầu tư tiềm năng của công chúng. Thị trường chứng khoán có khả năng tạo thanh khoản cao, tập trung phân phối vốn và chuyển thời hạn vốn phù hợp với nhu cầu phát triển kinh tế. Nhờ vào thị trường chứng khoán, Chính phủ có thể huy động các nguồn lực tài chính mà không phải chịu áp lực về lạm phát, đặc biệt khi nguồn vốn đầu tư khu vực của Nhà nước còn nhiều hạn chế.

Theo nhiều chuyên gia tài chính - kinh tế hàng đầu, thị trường chứng khoán có thể phản ánh chính xác triển vọng của một nền kinh tế thay đổi như thế nào theo chu kỳ nửa năm. Cụ thể là giá chứng khoán tăng sẽ cho thấy nền kinh tế đang phát triển và ngược lại, giá chứng khoán giảm lại là dự báo không mấy tốt đẹp về triển vọng của một nền kinh tế trong tương lai gần.

Thị trường chứng khoán Việt Nam đã hỗ trợ rất tốt cho hoạt động cổ phần hóa doanh nghiệp Nhà nước. Bên cạnh đó, TTCK cũng phối hợp với hệ thống tín dụng của ngân hàng tạo ra 1 cơ cấu thị trường vốn Việt Nam cân đối hơn, hiệu quả hơn, hỗ trợ mạnh mẽ cho nền kinh tế.

  • Chức năng của thị trường chứng khoán Việt Nam

Thị trường chứng khoán Việt Nam có 5 chức năng hoạt động chính:

  • Huy động vốn đầu tư cho nền kinh tế Việt Nam

  • Cung cấp môi trường đầu tư cho công chúng

  • Tạo tính thanh khoản cho các loại chứng khoán

  • Đánh giá hoạt động của doanh nghiệp

  • Tạo môi trường hỗ trợ Chính phủ thực hiện các chính sách kinh tế vĩ mô

3.2 Tình hình chung nhóm ngành chứng khoán

Ngành chứng khoán là nhóm ngành có độ nhạy cảm với VNINDEX rất cao, do đó tính đầu cơ đối với nhóm ngành cũng rất lớn. Trong năm 2022 ghi nhận số lượng tài khoản mở mới giảm mạnh bắt đầu từ quý 3 năm 2022. Bên cạnh đó là giá trị giao dịch cũng sụt giảm do thị trường giảm mạnh và cú sốc trong nửa cuối năm 2022. Thị trường bị tác động lớn do FED thực hiện việc tăng lãi suất, tác động đến các tài sản có tính rủi ro trên thị trường. Nền kinh tế Việt Nam là nền kinh tế nhỏ, rất khó có thể đứng ngoài trong đợt giảm toàn cầu này.

Biểu đồ tình hình biến động giá của các cổ phiếu nhóm ngành chứng khoán

library(readxl)
library(DT)
## Warning: package 'DT' was built under R version 4.3.1
ck <- read_excel("D:/dataCK.xlsx")
library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.3.1
ggplot(ck) +
  geom_line(aes(x = ck$Ngày, y = ck$AGR, color = "AGR")) +
  geom_line(aes(x = ck$Ngày, y = ck$APG, color = "APG")) +
  geom_line(aes(x = ck$Ngày, y = ck$BSI, color = "BSI")) +
  geom_line(aes(x = ck$Ngày, y = ck$CTS, color = "CTS")) +
  geom_line(aes(x = ck$Ngày, y = ck$FTS, color = "FTS")) +
  geom_line(aes(x = ck$Ngày, y = ck$HCM, color = "HCM")) +
  geom_line(aes(x = ck$Ngày, y = ck$SSI, color = "SSI")) +
  labs(x = "Time", y = "price", title = "stock price", color = "stock price") +
  scale_color_manual(values = c("AGR" = "deepskyblue4", "APG" = "brown", "BSI" = "darkseagreen", "CTS" = "goldenrod4", "FTS" = "cyan", "HCM" = "pink", "SSI" = "darkgreen"))
## Warning: Use of `ck$Ngày` is discouraged.
## ℹ Use `Ngày` instead.
## Warning: Use of `ck$AGR` is discouraged.
## ℹ Use `AGR` instead.
## Warning: Use of `ck$Ngày` is discouraged.
## ℹ Use `Ngày` instead.
## Warning: Use of `ck$APG` is discouraged.
## ℹ Use `APG` instead.
## Warning: Use of `ck$Ngày` is discouraged.
## ℹ Use `Ngày` instead.
## Warning: Use of `ck$BSI` is discouraged.
## ℹ Use `BSI` instead.
## Warning: Use of `ck$Ngày` is discouraged.
## ℹ Use `Ngày` instead.
## Warning: Use of `ck$CTS` is discouraged.
## ℹ Use `CTS` instead.
## Warning: Use of `ck$Ngày` is discouraged.
## ℹ Use `Ngày` instead.
## Warning: Use of `ck$FTS` is discouraged.
## ℹ Use `FTS` instead.
## Warning: Use of `ck$Ngày` is discouraged.
## ℹ Use `Ngày` instead.
## Warning: Use of `ck$HCM` is discouraged.
## ℹ Use `HCM` instead.
## Warning: Use of `ck$Ngày` is discouraged.
## ℹ Use `Ngày` instead.
## Warning: Use of `ck$SSI` is discouraged.
## ℹ Use `SSI` instead.

4 CHƯƠNG 3: DỮ LIỆU NGHIÊN CỨU VÀ MÔ HÌNH ĐỀ XUẤT

4.1 Dữ liệu nghiên cứu

library(readxl)
library(DT)
ck <- read_excel("D:/dataCK.xlsx")
datatable(ck)

4.2 Mô tả dữ liệu nghiên cứu

Bộ dữ liệu bao gồm 391 quan sát và 7 biến. Dữ liệu được thu thập từ ngày 1/1/2022 đến 31/7/2023.

Đơn vị: ngàn đồng

  • Biến AGR: là mã chứng khoán của Công ty Cổ phần Chứng khoán Agribank

  • Biến APG: là mã chứng khoán của Công ty Cổ phần Chứng khoán APG

  • Biến BSI: là mã chứng khoán của Công ty Cổ phần Chứng khoán Ngân hàng Đầu tư và Phát triển Việt Nam

  • Biến CTS: là mã chứng khoán của Công ty Cổ phần Chứng khoán Ngân hàng Công thương Việt Nam

  • Biến FTS: là mã chứng khoán của Công ty Cổ phần Chứng khoán FPT

  • Biến HCM: là mã chứng khoán của Công ty Cổ phần Chứng khoán Thành Phố Hồ Chí Minh

  • Biến SSI: là mã chứng khoán của Công ty Cổ phần Chứng khoán SSI

5 CHƯƠNG 4: KẾT QUẢ NGHIÊN CỨU

5.1 Thống kê mô tả

summary(ck)
##       Ngày                             AGR             APG       
##  Min.   :2022-01-04 00:00:00.00   Min.   : 5669   Min.   : 2520  
##  1st Qu.:2022-05-31 12:00:00.00   1st Qu.: 8263   1st Qu.: 6285  
##  Median :2022-10-18 00:00:00.00   Median :11700   Median : 7270  
##  Mean   :2022-10-18 18:50:38.35   Mean   :12285   Mean   : 8871  
##  3rd Qu.:2023-03-11 12:00:00.00   3rd Qu.:14732   3rd Qu.: 9195  
##  Max.   :2023-07-31 00:00:00.00   Max.   :25098   Max.   :20700  
##       BSI             CTS             FTS             HCM       
##  Min.   :12050   Min.   : 7540   Min.   :11827   Min.   :15073  
##  1st Qu.:19600   1st Qu.:13600   1st Qu.:19755   1st Qu.:22390  
##  Median :27509   Median :16867   Median :26563   Median :25200  
##  Mean   :26987   Mean   :18062   Mean   :27000   Mean   :26147  
##  3rd Qu.:32350   3rd Qu.:21322   3rd Qu.:32150   3rd Qu.:27945  
##  Max.   :43645   Max.   :36760   Max.   :43530   Max.   :44878  
##       SSI       
##  Min.   :13900  
##  1st Qu.:19575  
##  Median :22400  
##  Mean   :24979  
##  3rd Qu.:26567  
##  Max.   :47092

5.2 Kiểm định phân phối

5.2.1 Biến AGR

  • Đồ thị
hist(ck$AGR, main = "BIỂU ĐỒ GIÁ CỔ PHIẾU AGR",xlab = "AGR", ylab = "price",col = "#4682B4")

  • Kiểm định phân phối chuẩn

\(H_0\): Biến AGR có phân phối chuẩn

\(H_1\): Biến AGR không có phân phối chuẩn

shapiro.test(ck$AGR)
## 
##  Shapiro-Wilk normality test
## 
## data:  ck$AGR
## W = 0.89837, p-value = 1.772e-15

Với p-value < 0.05 , bác bỏ \(H_0\) nên dãy số liệu này không có phân phối chuẩn

  • Kiểm định phân phối loga chuẩn

\(H_0\): Biến AGR có phân phối loga chuẩn

\(H_1\): Biến AGR không có phân phối loga chuẩn

ks.test(ck$AGR,y="plnorm")
## Warning in ks.test.default(ck$AGR, y = "plnorm"): ties should not be present
## for the Kolmogorov-Smirnov test
## 
##  Asymptotic one-sample Kolmogorov-Smirnov test
## 
## data:  ck$AGR
## D = 1, p-value < 2.2e-16
## alternative hypothesis: two-sided

Với p-value < 0.05 , bác bỏ \(H_0\) nên dãy số liệu này không có phân phối loga chuẩn

  • Kiểm định phân phối mũ

\(H_0\): Biến AGR có phân phối mũ

\(H_1\): Biến AGR không có phân phối mũ

ks.test(ck$AGR,y="pexp")
## Warning in ks.test.default(ck$AGR, y = "pexp"): ties should not be present for
## the Kolmogorov-Smirnov test
## 
##  Asymptotic one-sample Kolmogorov-Smirnov test
## 
## data:  ck$AGR
## D = 1, p-value < 2.2e-16
## alternative hypothesis: two-sided

Với p-value < 0.05 , bác bỏ \(H_0\) nên dãy số liệu này không có phân phối mũ

5.2.2 Biến APG

  • Đồ thị
hist(ck$APG, main = "BIỂU ĐỒ GIÁ CỔ PHIẾU APG",xlab = "APG", ylab = "price",col = "#4682B4")

  • Kiểm định phân phối chuẩn

\(H_0\): Biến APG có phân phối chuẩn

\(H_1\): Biến APG không có phân phối chuẩn

shapiro.test(ck$APG)
## 
##  Shapiro-Wilk normality test
## 
## data:  ck$APG
## W = 0.79233, p-value < 2.2e-16

Với p-value < 0.05 , bác bỏ \(H_0\) nên dãy số liệu này không có phân phối chuẩn

  • Kiểm định phân phối loga chuẩn

\(H_0\): Biến APG có phân phối loga chuẩn

\(H_1\): Biến APG không có phân phối loga chuẩn

ks.test(ck$APG,y="plnorm")
## Warning in ks.test.default(ck$APG, y = "plnorm"): ties should not be present
## for the Kolmogorov-Smirnov test
## 
##  Asymptotic one-sample Kolmogorov-Smirnov test
## 
## data:  ck$APG
## D = 1, p-value < 2.2e-16
## alternative hypothesis: two-sided

Với p-value < 0.05 , bác bỏ \(H_0\) nên dãy số liệu này không có phân phối loga chuẩn

  • Kiểm định phân phối mũ

\(H_0\): Biến APG có phân phối mũ

\(H_1\): Biến APG không có phân phối mũ

ks.test(ck$APG,y="pexp")
## Warning in ks.test.default(ck$APG, y = "pexp"): ties should not be present for
## the Kolmogorov-Smirnov test
## 
##  Asymptotic one-sample Kolmogorov-Smirnov test
## 
## data:  ck$APG
## D = 1, p-value < 2.2e-16
## alternative hypothesis: two-sided

Với p-value < 0.05 , bác bỏ \(H_0\) nên dãy số liệu này không có phân phối mũ

5.2.3 Biến BSI

  • Đồ thị
hist(ck$BSI, main = "BIỂU ĐỒ GIÁ CỔ PHIẾU APG",xlab = "BSI", ylab = "price",col = "#4682B4")

  • Kiểm định phân phối chuẩn

\(H_0\): Biến BSI có phân phối chuẩn

\(H_1\): Biến BSI không có phân phối chuẩn

shapiro.test(ck$BSI)
## 
##  Shapiro-Wilk normality test
## 
## data:  ck$BSI
## W = 0.9632, p-value = 2.438e-08

Với p-value < 0.05 , bác bỏ \(H_0\) nên dãy số liệu này không có phân phối chuẩn

  • Kiểm định phân phối loga chuẩn

\(H_0\): Biến BSI có phân phối loga chuẩn

\(H_1\): Biến BSI không có phân phối loga chuẩn

ks.test(ck$BSI,y="plnorm")
## Warning in ks.test.default(ck$BSI, y = "plnorm"): ties should not be present
## for the Kolmogorov-Smirnov test
## 
##  Asymptotic one-sample Kolmogorov-Smirnov test
## 
## data:  ck$BSI
## D = 1, p-value < 2.2e-16
## alternative hypothesis: two-sided

Với p-value < 0.05 , bác bỏ \(H_0\) nên dãy số liệu này không có phân phối loga chuẩn

  • Kiểm định phân phối mũ

\(H_0\): Biến BSI có phân phối mũ

\(H_1\): Biến BSI không có phân phối mũ

ks.test(ck$BSI,y="pexp")
## Warning in ks.test.default(ck$BSI, y = "pexp"): ties should not be present for
## the Kolmogorov-Smirnov test
## 
##  Asymptotic one-sample Kolmogorov-Smirnov test
## 
## data:  ck$BSI
## D = 1, p-value < 2.2e-16
## alternative hypothesis: two-sided

Với p-value < 0.05 , bác bỏ \(H_0\) nên dãy số liệu này không có phân phối mũ

5.2.4 Biến CTS

  • Đồ thị
hist(ck$CTS, main = "BIỂU ĐỒ GIÁ CỔ PHIẾU CTS",xlab = "CTS", ylab = "price",col = "#4682B4")

  • Kiểm định phân phối chuẩn

\(H_0\): Biến CTS có phân phối chuẩn

\(H_1\): Biến CTS không có phân phối chuẩn

shapiro.test(ck$CTS)
## 
##  Shapiro-Wilk normality test
## 
## data:  ck$CTS
## W = 0.92937, p-value = 1.231e-12

Với p-value < 0.05 , bác bỏ \(H_0\) nên dãy số liệu này không có phân phối chuẩn

  • Kiểm định phân phối loga chuẩn

\(H_0\): Biến CTS có phân phối loga chuẩn

\(H_1\): Biến CTS không có phân phối loga chuẩn

ks.test(ck$CTS,y="plnorm")
## Warning in ks.test.default(ck$CTS, y = "plnorm"): ties should not be present
## for the Kolmogorov-Smirnov test
## 
##  Asymptotic one-sample Kolmogorov-Smirnov test
## 
## data:  ck$CTS
## D = 1, p-value < 2.2e-16
## alternative hypothesis: two-sided

Với p-value < 0.05 , bác bỏ \(H_0\) nên dãy số liệu này không có phân phối loga chuẩn

  • Kiểm định phân phối mũ

\(H_0\): Biến CTS có phân phối mũ

\(H_1\): Biến CTS không có phân phối mũ

ks.test(ck$CTS,y="pexp")
## Warning in ks.test.default(ck$CTS, y = "pexp"): ties should not be present for
## the Kolmogorov-Smirnov test
## 
##  Asymptotic one-sample Kolmogorov-Smirnov test
## 
## data:  ck$CTS
## D = 1, p-value < 2.2e-16
## alternative hypothesis: two-sided

Với p-value < 0.05 , bác bỏ \(H_0\) nên dãy số liệu này không có phân phối mũ

5.2.5 Biến FTS

  • Đồ thị
hist(ck$FTS, main = "BIỂU ĐỒ GIÁ CỔ PHIẾU FTS",xlab = "FTS", ylab = "price",col = "#4682B4")

  • Kiểm định phân phối chuẩn

\(H_0\): Biến FTS có phân phối chuẩn

\(H_1\): Biến FTS không có phân phối chuẩn

shapiro.test(ck$FTS)
## 
##  Shapiro-Wilk normality test
## 
## data:  ck$FTS
## W = 0.97261, p-value = 9.994e-07

Với p-value < 0.05 , bác bỏ \(H_0\) nên dãy số liệu này không có phân phối chuẩn

  • Kiểm định phân phối loga chuẩn

\(H_0\): Biến FTS có phân phối loga chuẩn

\(H_1\): Biến FTS không có phân phối loga chuẩn

ks.test(ck$FTS,y="plnorm")
## Warning in ks.test.default(ck$FTS, y = "plnorm"): ties should not be present
## for the Kolmogorov-Smirnov test
## 
##  Asymptotic one-sample Kolmogorov-Smirnov test
## 
## data:  ck$FTS
## D = 1, p-value < 2.2e-16
## alternative hypothesis: two-sided

Với p-value < 0.05 , bác bỏ \(H_0\) nên dãy số liệu này không có phân phối loga chuẩn

  • Kiểm định phân phối mũ

\(H_0\): Biến FTS có phân phối mũ

\(H_1\): Biến FTS không có phân phối mũ

ks.test(ck$FTS,y="pexp")
## Warning in ks.test.default(ck$FTS, y = "pexp"): ties should not be present for
## the Kolmogorov-Smirnov test
## 
##  Asymptotic one-sample Kolmogorov-Smirnov test
## 
## data:  ck$FTS
## D = 1, p-value < 2.2e-16
## alternative hypothesis: two-sided

Với p-value < 0.05 , bác bỏ \(H_0\) nên dãy số liệu này không có phân phối mũ

5.2.6 Biến HCM

  • Đồ thị
hist(ck$HCM, main = "BIỂU ĐỒ GIÁ CỔ PHIẾU HCM",xlab = "HCM", ylab = "price",col = "#4682B4")

  • Kiểm định phân phối chuẩn

\(H_0\): Biến HCM có phân phối chuẩn

\(H_1\): Biến HCM không có phân phối chuẩn

shapiro.test(ck$HCM)
## 
##  Shapiro-Wilk normality test
## 
## data:  ck$HCM
## W = 0.92774, p-value = 8.361e-13

Với p-value < 0.05 , bác bỏ \(H_0\) nên dãy số liệu này không có phân phối chuẩn

  • Kiểm định phân phối loga chuẩn

\(H_0\): Biến HCM có phân phối loga chuẩn

\(H_1\): Biến HCM không có phân phối loga chuẩn

ks.test(ck$HCM,y="plnorm")
## Warning in ks.test.default(ck$HCM, y = "plnorm"): ties should not be present
## for the Kolmogorov-Smirnov test
## 
##  Asymptotic one-sample Kolmogorov-Smirnov test
## 
## data:  ck$HCM
## D = 1, p-value < 2.2e-16
## alternative hypothesis: two-sided

Với p-value < 0.05 , bác bỏ \(H_0\) nên dãy số liệu này không có phân phối loga chuẩn

  • Kiểm định phân phối mũ

\(H_0\): Biến HCM có phân phối mũ

\(H_1\): Biến HCM không có phân phối mũ

ks.test(ck$HCM,y="pexp")
## Warning in ks.test.default(ck$HCM, y = "pexp"): ties should not be present for
## the Kolmogorov-Smirnov test
## 
##  Asymptotic one-sample Kolmogorov-Smirnov test
## 
## data:  ck$HCM
## D = 1, p-value < 2.2e-16
## alternative hypothesis: two-sided

Với p-value < 0.05 , bác bỏ \(H_0\) nên dãy số liệu này không có phân phối mũ

5.2.7 Biến SSI

  • Đồ thị
hist(ck$SSI, main = "BIỂU ĐỒ GIÁ CỔ PHIẾU SSI",xlab = "SSI", ylab = "price",col = "#4682B4")

  • Kiểm định phân phối chuẩn

\(H_0\): Biến SSI có phân phối chuẩn

\(H_1\): Biến SSI không có phân phối chuẩn

shapiro.test(ck$SSI)
## 
##  Shapiro-Wilk normality test
## 
## data:  ck$SSI
## W = 0.85647, p-value < 2.2e-16

Với p-value < 0.05 , bác bỏ \(H_0\) nên dãy số liệu này không có phân phối chuẩn

  • Kiểm định phân phối loga chuẩn

\(H_0\): Biến BSI có phân phối loga chuẩn

\(H_1\): Biến BSI không có phân phối loga chuẩn

ks.test(ck$SSI, "plnorm")
## Warning in ks.test.default(ck$SSI, "plnorm"): ties should not be present for
## the Kolmogorov-Smirnov test
## 
##  Asymptotic one-sample Kolmogorov-Smirnov test
## 
## data:  ck$SSI
## D = 1, p-value < 2.2e-16
## alternative hypothesis: two-sided

Với p-value < 0.05 , bác bỏ \(H_0\) nên dãy số liệu này không có phân phối loga chuẩn

  • Kiểm định phân phối mũ

\(H_0\): Biến BSI có phân phối mũ

\(H_1\): Biến BSI không có phân phối mũ

ks.test(ck$SSI,y="pexp")
## Warning in ks.test.default(ck$SSI, y = "pexp"): ties should not be present for
## the Kolmogorov-Smirnov test
## 
##  Asymptotic one-sample Kolmogorov-Smirnov test
## 
## data:  ck$SSI
## D = 1, p-value < 2.2e-16
## alternative hypothesis: two-sided

Với p-value < 0.05 , bác bỏ \(H_0\) nên dãy số liệu này không có phân phối mũ

5.3 Chuyển đổi các biến theo phân phối chuẩn

Sau khi kiểm định các phân phối của các biến thì vẫn chưa thể xác định phân phối của của các biến đầu vào. Do đó, tôi sẽ sử dụng hàm sample() để tạo ra các mẫu ngẫu nhiên từ bộ dữ liệu với kích thước mẫu là 3 và 5. Sau đó sẽ kiểm tra xem mẫu có tuân theo phân phối chuẩn hay không bằng cách sử dụng phép kiểm định Shapiro-Wilk.

5.3.1 Chuyển đổi biến AGR

AGR <- sample(ck$AGR, 5)
hist(AGR)

  • Kiểm định phân phối chuẩn

\(H_0\): Biến AGR có phân phối chuẩn

\(H_1\): Biến AGR không có phân phối chuẩn

shapiro.test(AGR)
## 
##  Shapiro-Wilk normality test
## 
## data:  AGR
## W = 0.93282, p-value = 0.6157

Với p-value > 0.05 , chấp nhận \(H_0\) nên dãy số liệu này có phân phối chuẩn

5.3.2 Chuyển đổi biến APG

APG <- sample(ck$APG, 5)
hist(APG)

  • Kiểm định phân phối chuẩn

\(H_0\): Biến APG có phân phối chuẩn

\(H_1\): Biến APG không có phân phối chuẩn

shapiro.test(APG)
## 
##  Shapiro-Wilk normality test
## 
## data:  APG
## W = 0.7585, p-value = 0.03561

Với p-value > 0.05 , chấp nhận \(H_0\) nên dãy số liệu này có phân phối chuẩn

5.3.3 Chuyển đổi biến BSI

BSI <- sample(ck$BSI, 5)
hist(BSI)

  • Kiểm định phân phối chuẩn

\(H_0\): Biến BSI có phân phối chuẩn

\(H_1\): Biến BSI không có phân phối chuẩn

shapiro.test(BSI)
## 
##  Shapiro-Wilk normality test
## 
## data:  BSI
## W = 0.97746, p-value = 0.9206

Với p-value > 0.05 , chấp nhận \(H_0\) nên dãy số liệu này có phân phối chuẩn

5.3.4 Chuyển đổi biến CTS

CTS <- sample(ck$CTS, 5)
hist(CTS)

  • Kiểm định phân phối chuẩn

\(H_0\): Biến CTS có phân phối chuẩn

\(H_1\): Biến CTS không có phân phối chuẩn

shapiro.test(CTS)
## 
##  Shapiro-Wilk normality test
## 
## data:  CTS
## W = 0.85654, p-value = 0.2161

Với p-value > 0.05 , chấp nhận \(H_0\) nên dãy số liệu này có phân phối chuẩn

5.3.5 Chuyển đổi biến FTS

FTS <- sample(ck$FTS, 5)
hist(FTS)

  • Kiểm định phân phối chuẩn

\(H_0\): Biến FTS có phân phối chuẩn

\(H_1\): Biến FTS không có phân phối chuẩn

shapiro.test(FTS)
## 
##  Shapiro-Wilk normality test
## 
## data:  FTS
## W = 0.87147, p-value = 0.2724

Với p-value > 0.05 , chấp nhận \(H_0\) nên dãy số liệu này có phân phối chuẩn

5.3.6 Chuyển đổi biến HCM

HCM <- sample(ck$HCM, 5)
hist(HCM)

  • Kiểm định phân phối chuẩn

\(H_0\): Biến HCM có phân phối chuẩn

\(H_1\): Biến HCM không có phân phối chuẩn

shapiro.test(HCM)
## 
##  Shapiro-Wilk normality test
## 
## data:  HCM
## W = 0.96309, p-value = 0.8293

Với p-value > 0.05 , chấp nhận \(H_0\) nên dãy số liệu này có phân phối chuẩn

5.3.7 Chuyển đổi biến SSI

SSI <- sample(ck$SSI, 5)
hist(SSI)

  • Kiểm định phân phối chuẩn

\(H_0\): Biến SSI có phân phối chuẩn

\(H_1\): Biến SSI không có phân phối chuẩn

shapiro.test(SSI)
## 
##  Shapiro-Wilk normality test
## 
## data:  SSI
## W = 0.79092, p-value = 0.06819

Với p-value > 0.05 , chấp nhận \(H_0\) nên dãy số liệu này có phân phối chuẩn

5.4 Mô phỏng dữ liệu

5.4.1 Mô phỏng các biến độc lập trong dữ liệu nghiên cứu

  • Biến AGR
library(fBasics)
## Warning: package 'fBasics' was built under R version 4.3.1
datatable(basicStats(AGR))
AGR1 <- rnorm(n = 10000, mean = 11173.54, sd = 3173.182627 )
  • Biến APG
library(fBasics)
datatable(basicStats(APG))
APG1 <- rnorm(n = 10000, mean = 7782, sd = 2405.071725 )
  • Biến BSI
library(fBasics)
datatable(basicStats(BSI))
BSI1 <- rnorm(n = 10000, mean = 20554.6, sd = 3257.937354 )
  • Biến CTS
library(fBasics)
datatable(basicStats(CTS))
CTS1 <- rnorm(n = 10000, mean = 18607.92, sd = 9173.643852 )
  • Biến FTS
library(fBasics)
datatable(basicStats(CTS))
FTS1 <- rnorm(n = 10000, mean = 18607.92, sd = 9173.643852 )
  • Biến HCM
library(fBasics)
datatable(basicStats(HCM))
HCM1 <- rnorm(n = 10000, mean = 25818.4, sd = 2595.264977 )
  • Biến SSI
library(fBasics)
datatable(basicStats(SSI))
HCM1 <- rnorm(n = 10000, mean = 25996.16, sd = 10752.125636 )
LS0tDQp0aXRsZTogIlRJ4buCVSBMVeG6rE4iDQphdXRob3I6ICJOR1VZ4buETiBUSMOaWSBOR8OCTiINCmRhdGU6ICIyMDIzLTA4LTA1Ig0Kb3V0cHV0OiANCiAgaHRtbF9kb2N1bWVudDoNCiAgICBkZl9wcmludDogcGFnZWQNCiAgICB0aGVtZTogZmxhdGx5DQogICAgdG9jOiB0cnVlDQogICAgdG9jX2Zsb2F0OiANCiAgICAgIGNvbGxhcHNlZDogZmFsc2UNCiAgICAgIHNtb290aF9zY3JvbGw6IGZhbHNlDQogICAgbnVtYmVyX3NlY3Rpb25zOiB0cnVlDQogICAgY29kZV9mb2xkaW5nIDogaGlkZQ0KICAgIGNvZGVfZG93bmxvYWQ6IHRydWUNCi0tLQ0KDQo8c3R5bGU+DQpib2R5IHsNCnRleHQtYWxpZ246IGp1c3RpZnl9DQo8L3N0eWxlPg0KDQoNCiMgTOG7nEkgQ+G6ok0gxqBODQoNCkzhu51pIMSR4bqndSB0acOqbiwgZW0geGluIGfhu61pIGzhu51pIGPhuqNtIMahbiDEkeG6v24gY8OhYyB0aOG6p3kgY8O0IGPhu6dhIHRyxrDhu51uZyDEkOG6oWkgaOG7jWMgVMOgaSBjaMOtbmgg4oCTIE1hcmtldGluZywgxJHhurdjIGJp4buHdCBsw6AgY8OhYyB0aOG6p3kgY8O0IGLhu5kgbcO0biBLaG9hIEtpbmggdOG6vyAtIEx14bqtdCDEkcOjIHThuq1uIHTDrG5oIGdp4bqjbmcgZOG6oXkgdsOgIGNo4buJIGThuqtuIGVtIHRyb25nIHF1w6EgdHLDrG5oIGjhu41jIHThuq1wIHbhu6thIHF1YS4gVsOgIGVtIHhpbiBjaMOibiB0aMOgbmggY+G6o20gxqFuIHRo4bqneSBUcuG6p24gTeG6oW5oIFTGsOG7nW5nIMSRw6MgZ2nDunAgxJHhu6EsIGjGsOG7m25nIGThuqtuIGVtIGhvw6BuIHRow6BuaCBiw6BpIHRp4buDdSBsdeG6rW4gbcO0biBQaMOibiB0w61jaCBk4buvIGxp4buHdSDEkeG7i25oIHTDrW5oIG7DoHkgbeG7mXQgY8OhY2ggdOG7kXQgbmjhuqV0LiBFbSB4aW4gY2jDumMgdGjhuqd5IGPDtCBjw7Mgbmhp4buBdSBz4bupYyBraOG7j2UsIGjhuqFuaCBwaMO6YyB2w6AgdGjDoG5oIGPDtG5nIHRyw6puIGNvbiDEkcaw4budbmcgc+G7sSBuZ2hp4buHcCBj4bunYSBtw6xuaC4NCg0KVHJvbmcgcXXDoSB0csOsbmggaG/DoG4gdGjDoG5oIHRp4buDdSBsdeG6rW4gZW0ga2jDsyB0csOhbmgga2jhu49pIG5oaeG7gXUgdGhp4bq/dSBzw7N0LCBlbSBy4bqldCBtb25nIG5o4bqtbiDEkcaw4bujYyBuaOG7r25nIMO9IGtp4bq/biDEkcOzbmcgZ8OzcCB04burIHRo4bqneSBjw7QsIHThu6sgxJHDsyBnacO6cCBlbSBob8OgbiB0aGnhu4duLCBo4buNYyBo4buPaSB0aMOqbSDEkcaw4bujYyBuaGnhu4F1IGtpbmggbmdoaeG7h20gdsOgIGPhu6duZyBj4buRIHRow6ptIGtp4bq/biB0aOG7qWMgY+G7p2EgbcOsbmguIA0KDQpM4budaSBjdeG7kWkgY8O5bmcsIGVtIHhpbiBrw61uaCBjaMO6YyB0aOG6p3ksIGPDtCB0aOG6rXQgbmhp4buBdSBz4bupYyBraOG7j2UsIMSR4bqhdCDEkcaw4bujYyBuaGnhu4F1IHRow6BuaCBjw7RuZyB2w6AgcGjDoXQgdHJp4buDbi4gDQoNCkVtIHhpbiBjaMOibiB0aMOgbmggY+G6o20gxqFuIQ0KDQoNCiMgQ0jGr8agTkcgMTogUEjhuqZOIE3hu54gxJDhuqZVDQoNCiMjIEzDvSBkbyBjaOG7jW4gxJHhu4EgdMOgaQ0KDQpN4bulYyB0acOqdSBj4bunYSB04bqldCBj4bqjIGPDoWMgZG9hbmggbmdoaeG7h3AgY2jDrW5oIGzDoCB2aeG7h2MgdOG6oW8gcmEgY8OhYyBnacOhIHRy4buLIGNobyBj4buVIMSRw7RuZy4gVGhlbyBGZXJuYW5kZXogKDIwMDIpIOKAnE3hu5l0IGPDtG5nIHR5IHThuqFvIHJhIGdpw6EgdHLhu4sgY+G7p2EgY+G7lSDEkcO0bmcga2hpIGzhu6NpIG5odeG6rW4gY+G7p2EgY+G7lSDEkcO0bmcgdsaw4bujdCBxdcOhIGzhu6NpIG5odeG6rW4gecOqdSBj4bqndSBj4bunYSB24buRbiBjaOG7pyBz4bufIGjhu691IGhheSBuw7NpIGPDoWNoIGtow6FjIGtoaSBs4bujaSBuaHXhuq1uIGPhu6dhIGPhu5UgxJHDtG5nIHbGsOG7o3QgcXXDoSBnacOhIHRy4buLIG1vbmcgxJHhu6Np4oCdLiBDw7Mgbmhp4buBdSBjaOG7iSB0acOqdSBr4bq/IHRvw6FuIMSR4buDIMSRw6FuaCBnacOhIHRow6BuaCBxdeG6oyBj4bunYSBt4buZdCBkb2FuaCBuZ2hp4buHcCBuaMawIGzDo2kgcsOybmcsIHRodSBuaOG6rXAgaG/huqF0IMSR4buZbmcgdGh14bqnbiBzYXUgdGh14bq/IHbDoCBs4bujaSBuaHXhuq1uIHRyw6puIG3hu5dpIGPhu5UgcGjhuqduLCBkw7JuZyB0aeG7gW4gdGh14bqnbiAoTk9QQVQsIE5JLCBFUFMgdsOgIE9DRikuIERvIMSRw7MsIHZp4buHYyBz4butIGThu6VuZyB0aMaw4bubYyDEkW8gdMOgaSBjaMOtbmggbsOgbyBwaMO5IGjhu6NwIMSR4buLbmggZ2nDoSB0aMOgbmggcXXhuqMgZG9hbmggbmdoaeG7h3AgxJHhu4MgY8OzIHTGsMahbmcgcXVhbiBjYW8gduG7m2kgdMOgaSBz4bqjbiBj4buVIMSRw7RuZw0KDQojIyBN4bulYyB0acOqdSB2w6AgcGjGsMahbmcgcGjDoXAgbmdoacOqbiBj4bupdQ0KDQpN4buZdCB0cm9uZyBuaOG7r25nIGLDoGkgdG/DoW4gduG7gSBj4buVIHBoaeG6v3UgY8OzIHRo4buDIOG7qW5nIGThu6VuZyBwaMawxqFuZyBwaMOhcCBNb250ZSBDYXJsbyDEkeG7gyBnaeG6o2kgcXV54bq/dCBjaMOtbmggbMOgIMSRxrBhIHJhIGPDoWMgZOG7sSBiw6FvIHbhu4EgbOG7o2kgbmh14bqtbiB0cm9uZyB0xrDGoW5nIGxhaS4gVGEgY8OzIHRo4buDIHThuqFvIHJhIG3DtCBow6xuaCB0b8OhbiBo4buNYyBj4bunYSBnacOhIHRy4buLIGzhu6NpIG5odeG6rW4gZOG7sWEgdHLDqm4gY8OhYyB54bq/dSB04buRIGzhu4tjaCBz4butIHRoZW8gdGjhu51pIGdpYW4gY+G7p2EgbcOjIGPhu5UgcGhp4bq/dS4gTcO0IGjDrG5oIG7DoHkgY8OzIHRo4buDIGzDoCBt4buZdCBtw7QgaMOsbmggbmfhuqt1IG5oacOqbiwgdHJvbmcgxJHDsyBjw6FjIGdpw6EgdHLhu4sgY+G7p2EgY8OhYyB54bq/dSB04buRIOG6o25oIGjGsOG7n25nIMSRxrDhu6NjIHThuqFvIHJhIGLhurFuZyBjw6FjaCBz4butIGThu6VuZyBz4buRIG5n4bqrdSBuaGnDqm4uDQoNCkvhur90IHF14bqjIGPhu6dhIG3DtCBwaOG7j25nIE1vbnRlIENhcmxvIG7DoHkgc+G6vSBjdW5nIGPhuqVwIGNobyBjaMO6bmcgdGEgbeG7mXQgY8OhaSBuaMOsbiB24buBIGto4bqjIG7Eg25nIHjhuqN5IHJhIGzhu6NpIG5odeG6rW4gY+G7p2EgY+G7lSBwaGnhur91IHRyb25nIHTGsMahbmcgbGFpLCBnacO6cCB0YSDEkcawYSByYSBxdXnhur90IMSR4buLbmggxJHhuqd1IHTGsCB0aMO0bmcgbWluaCBoxqFuLiBOaOG7r25nIGPDonUgaOG7j2kgcGjGsMahbmcgcGjDoXAgbsOgeSBjw7MgdGjhu4MgdHLhuqMgbOG7nWkgYmFvIGfhu5NtOg0KDQpM4bujaSBuaHXhuq1uIGvhu7MgduG7jW5nIHRyw6puIHRo4buLIHRyxrDhu51uZyBj4buVIHBoaeG6v3UgdHJvbmcgbeG7mXQga2hv4bqjbmcgdGjhu51pIGdpYW4gdOG7m2k/IA0KDQpYw6FjIHN14bqldCBj4bunYSB2aeG7h2MgdOG6oW8gbsOqbiBt4buZdCBnacOhIHRy4buLIGzhu6NpIG5odeG6rW4gbmjhuqV0IMSR4buLbmggdHJvbmcgbeG7mXQga2hv4bqjbmcgdGjhu51pIGdpYW4gdOG7m2k/IA0KDQpYw6FjIHN14bqldCBj4bunYSB2aeG7h2MgbeG6pXQgbmhp4buBdSBoxqFuIG3hu5l0IGdpw6EgdHLhu4sgxJHhuqd1IHTGsCBuaOG6pXQgxJHhu4tuaCB0cm9uZyBt4buZdCBraG/huqNuZyB0aOG7nWkgZ2lhbiB04bubaT8gDQoNCiMjIMSQ4buRaSB0xrDhu6NuZyB2w6AgcGjhuqFtIHZpIG5naGnDqm4gY+G7qXUNCg0KR2nDoSBj4buVIHBoaeG6v3UgY+G7p2EgbmjDs20gbmfDoG5oIGNo4bupbmcga2hvw6FuIGJhbyBn4buTbiBjw6FjIG3DozogQUdSLCBBUEcsIEJTSSwgQ1RTLCBGVFMsIEhDTSwgU1NJLg0KDQpUaOG7nWkgZ2lhbiB0aHUgdGjhuq1wIHThu6sgMS8xLzIwMjIgxJHhur9uIDMxLzcvMjAyMw0KDQojIyBL4bq/dCBj4bqldSDEkeG7gSB0w6BpIA0KDQpO4buZaSBkdW5nIGLDoGkgdGnhu4N1IGx14bqtbiBiYW8gZ+G7k206DQoNCiAqICpDaMawxqFuZyAxOiogIFBo4bqnbiBt4bufIMSR4bqndQ0KDQogKiAqQ2jGsMahbmcgMjoqICBU4buVbmcgcXVhbiBsw70gdGh1eeG6v3QgDQoNCiAqICpDaMawxqFuZyAzOiogIEThu68gbGnhu4d1IG5naGnDqm4gY+G7qXUgdsOgIG3DtCBow6xuaCDEkeG7gSB4deG6pXQNCg0KICogKkNoxrDGoW5nIDQ6KiAgS+G6v3QgcXXhuqMNCg0KICogKkNoxrDGoW5nIDU6KiAgS+G6v3QgbHXhuq1uIA0KIA0KDQoNCiMgQ0jGr8agTkcgMjogVOG7lE5HIFFVQU4gTMOdIFRIVVnhur5UDQoNCiMjIFThu5VuZyBxdWFuIHRo4buLIHRyxrDhu51uZyBjaOG7qW5nIGtob8Ohbg0KDQpUaOG7iyAgdHLGsOG7nW5nICBjaOG7qW5nICBraG/DoW4gIGdp4buvICB2YWkgIHRyw7IgIGjhur90ICBz4bupYyBxdWFuIHRy4buNbmcgdHJvbmcgaOG7hyB0aOG7kW5nIHTDoGkgY2jDrW5oIOG7nyBt4buXaSBxdeG7kWMgZ2lhLiBUcsOqbiB0aOG7iyB0csaw4budbmcsIGdpw6EgY+G7lSBwaGnhur91IGzDoCB54bq/dSB04buRIMSRxrDhu6NjIGPDoWMgbmjDoCDEkeG6p3UgdMawIMSR4bq3YyBiaeG7h3QgcXVhbiB0w6JtIGtoaSDEkcawYSByYSBxdXnhur90IMSR4buLbmggxJHhuqd1IHTGsC4gDQoNCkNo4bupbmcga2hvw6FuIGzDoCBt4buZdCBjw7RuZyBj4bulIHTDoGkgY2jDrW5oIGPDsyBnacOhIHRy4buLLCBjw7MgdGjhu4MgbXVhIGLDoW4gdsOgIG7huq9tIGdp4buvIG5oxrAgdGnhu4FuLiBM4bujaSBuaHXhuq1uIHThu6sgxJHhuqd1IHTGsCBjaOG7qW5nIGtob8OhbiB0aMO0bmcgdGjGsOG7nW5nIMSR4bq/biB04burIGNow6puaCBs4buHY2ggZ2nDoSBtdWEgdsOgIGdpw6EgYsOhbi4gTmdvw6BpIHJhLCBuaMOgIMSR4bqndSB0xrAgY8OzIHRo4buDIHRodSDEkcaw4bujYyBs4bujaSBuaHXhuq1uIHThu6sgdmnhu4djIG5o4bqtbiBj4buVIHThu6ljIGhheSB0csOhaSB04bupYy4gDQoNCk3hu41pIGJp4bq/biDEkeG7mW5nIHRyw6puIHRo4buLIHRyxrDhu51uZyBjaOG7qW5nIGtob8OhbiBWaeG7h3QgTmFtIMSR4buBdSBjw7MgdGjhu4MgdMOhYyDEkeG7mW5nIMSR4bq/biBu4buBbiBraW5oIHThur8gbsaw4bubYyB0YSwgdsOsIMSRw6J5IGzDoCBrw6puaCBk4bqrbiB24buRbiBxdWFuIHRy4buNbmcgY2hvIG7hu4FuIGtpbmggdOG6vywgY8WpbmcgbMOgIGvDqm5oIMSR4bqndSB0xrAgdGnhu4FtIG7Eg25nIGPhu6dhIGPDtG5nIGNow7puZy4gVGjhu4sgdHLGsOG7nW5nIGNo4bupbmcga2hvw6FuIGPDsyBraOG6oyBuxINuZyB04bqhbyB0aGFuaCBraG/huqNuIGNhbywgdOG6rXAgdHJ1bmcgcGjDom4gcGjhu5FpIHbhu5FuIHbDoCBjaHV54buDbiB0aOG7nWkgaOG6oW4gduG7kW4gcGjDuSBo4bujcCB24bubaSBuaHUgY+G6p3UgcGjDoXQgdHJp4buDbiBraW5oIHThur8uIE5o4budIHbDoG8gdGjhu4sgdHLGsOG7nW5nIGNo4bupbmcga2hvw6FuLCBDaMOtbmggcGjhu6cgY8OzIHRo4buDIGh1eSDEkeG7mW5nIGPDoWMgbmd14buTbiBs4buxYyB0w6BpIGNow61uaCBtw6Aga2jDtG5nIHBo4bqjaSBjaOG7i3Ugw6FwIGzhu7FjIHbhu4EgbOG6oW0gcGjDoXQsIMSR4bq3YyBiaeG7h3Qga2hpIG5ndeG7k24gduG7kW4gxJHhuqd1IHTGsCBraHUgduG7sWMgY+G7p2EgTmjDoCBuxrDhu5tjIGPDsm4gbmhp4buBdSBo4bqhbiBjaOG6vy4NCg0KVGhlbyBuaGnhu4F1IGNodXnDqm4gZ2lhIHTDoGkgY2jDrW5oIC0ga2luaCB04bq/IGjDoG5nIMSR4bqndSwgdGjhu4sgdHLGsOG7nW5nIGNo4bupbmcga2hvw6FuIGPDsyB0aOG7gyBwaOG6o24gw6FuaCBjaMOtbmggeMOhYyB0cmnhu4NuIHbhu41uZyBj4bunYSBt4buZdCBu4buBbiBraW5oIHThur8gdGhheSDEkeG7lWkgbmjGsCB0aOG6vyBuw6BvIHRoZW8gY2h1IGvhu7MgbuG7rWEgbsSDbS4gQ+G7pSB0aOG7gyBsw6AgZ2nDoSBjaOG7qW5nIGtob8OhbiB0xINuZyBz4bq9IGNobyB0aOG6pXkgbuG7gW4ga2luaCB04bq/IMSRYW5nIHBow6F0IHRyaeG7g24gdsOgIG5nxrDhu6NjIGzhuqFpLCBnacOhIGNo4bupbmcga2hvw6FuIGdp4bqjbSBs4bqhaSBsw6AgZOG7sSBiw6FvIGtow7RuZyBt4bqleSB04buRdCDEkeG6uXAgduG7gSB0cmnhu4NuIHbhu41uZyBj4bunYSBt4buZdCBu4buBbiBraW5oIHThur8gdHJvbmcgdMawxqFuZyBsYWkgZ+G6p24uDQoNClRo4buLIHRyxrDhu51uZyBjaOG7qW5nIGtob8OhbiBWaeG7h3QgTmFtIMSRw6MgaOG7lyB0cuG7oyBy4bqldCB04buRdCBjaG8gaG/huqF0IMSR4buZbmcgY+G7lSBwaOG6p24gaMOzYSBkb2FuaCBuZ2hp4buHcCBOaMOgIG7GsOG7m2MuIELDqm4gY+G6oW5oIMSRw7MsIFRUQ0sgY8WpbmcgcGjhu5FpIGjhu6NwIHbhu5tpIGjhu4cgdGjhu5FuZyB0w61uIGThu6VuZyBj4bunYSBuZ8OibiBow6BuZyB04bqhbyByYSAxIGPGoSBj4bqldSB0aOG7iyB0csaw4budbmcgduG7kW4gVmnhu4d0IE5hbSBjw6JuIMSR4buRaSBoxqFuLCBoaeG7h3UgcXXhuqMgaMahbiwgaOG7lyB0cuG7oyBt4bqhbmggbeG6vSBjaG8gbuG7gW4ga2luaCB04bq/Lg0KDQoqICoqQ2jhu6ljIG7Eg25nIGPhu6dhIHRo4buLIHRyxrDhu51uZyBjaOG7qW5nIGtob8OhbiBWaeG7h3QgTmFtKioNCg0KVGjhu4sgdHLGsOG7nW5nIGNo4bupbmcga2hvw6FuIFZp4buHdCBOYW0gY8OzIDUgY2jhu6ljIG7Eg25nIGhv4bqhdCDEkeG7mW5nIGNow61uaDoNCg0KLSBIdXkgxJHhu5luZyB24buRbiDEkeG6p3UgdMawIGNobyBu4buBbiBraW5oIHThur8gVmnhu4d0IE5hbQ0KDQotIEN1bmcgY+G6pXAgbcO0aSB0csaw4budbmcgxJHhuqd1IHTGsCBjaG8gY8O0bmcgY2jDum5nDQoNCi0gVOG6oW8gdMOtbmggdGhhbmgga2hv4bqjbiBjaG8gY8OhYyBsb+G6oWkgY2jhu6luZyBraG/DoW4NCg0KLSDEkMOhbmggZ2nDoSBob+G6oXQgxJHhu5luZyBj4bunYSBkb2FuaCBuZ2hp4buHcA0KDQotIFThuqFvIG3DtGkgdHLGsOG7nW5nIGjhu5cgdHLhu6MgQ2jDrW5oIHBo4bunIHRo4buxYyBoaeG7h24gY8OhYyBjaMOtbmggc8OhY2gga2luaCB04bq/IHbEqSBtw7QNCg0KDQojIyBUw6xuaCBow6xuaCBjaHVuZyBuaMOzbSBuZ8OgbmggY2jhu6luZyBraG/DoW4NCg0KTmfDoG5oIGNo4bupbmcga2hvw6FuIGzDoCBuaMOzbSBuZ8OgbmggY8OzIMSR4buZIG5o4bqheSBj4bqjbSB24bubaSBWTklOREVYIHLhuqV0IGNhbywgZG8gxJHDsyB0w61uaCDEkeG6p3UgY8ahIMSR4buRaSB24bubaSBuaMOzbSBuZ8OgbmggY8WpbmcgcuG6pXQgbOG7m24uIFRyb25nIG7Eg20gMjAyMiBnaGkgbmjhuq1uIHPhu5EgbMaw4bujbmcgdMOgaSBraG/huqNuIG3hu58gbeG7m2kgZ2nhuqNtIG3huqFuaCBi4bqvdCDEkeG6p3UgdOG7qyBxdcO9IDMgbsSDbSAyMDIyLiBCw6puIGPhuqFuaCDEkcOzIGzDoCBnacOhIHRy4buLIGdpYW8gZOG7i2NoIGPFqW5nIHPhu6V0IGdp4bqjbSBkbyB0aOG7iyB0csaw4budbmcgZ2nhuqNtIG3huqFuaCB2w6AgY8O6IHPhu5FjIHRyb25nIG7hu61hIGN14buRaSBuxINtIDIwMjIuIFRo4buLIHRyxrDhu51uZyBi4buLIHTDoWMgxJHhu5luZyBs4bubbiBkbyBGRUQgdGjhu7FjIGhp4buHbiB2aeG7h2MgdMSDbmcgbMOjaSBzdeG6pXQsIHTDoWMgxJHhu5luZyDEkeG6v24gY8OhYyB0w6BpIHPhuqNuIGPDsyB0w61uaCBy4bunaSBybyB0csOqbiB0aOG7iyB0csaw4budbmcuIE7hu4FuIGtpbmggdOG6vyBWaeG7h3QgTmFtIGzDoCBu4buBbiBraW5oIHThur8gbmjhu48sIHLhuqV0IGtow7MgY8OzIHRo4buDIMSR4bupbmcgbmdvw6BpIHRyb25nIMSR4bujdCBnaeG6o20gdG/DoG4gY+G6p3UgbsOgeS4NCg0KDQoqKkJp4buDdSDEkeG7kyB0w6xuaCBow6xuaCBiaeG6v24gxJHhu5luZyBnacOhIGPhu6dhIGPDoWMgY+G7lSBwaGnhur91IG5ow7NtIG5nw6BuaCBjaOG7qW5nIGtob8OhbioqDQoNCmBgYHtyfQ0KbGlicmFyeShyZWFkeGwpDQpsaWJyYXJ5KERUKQ0KY2sgPC0gcmVhZF9leGNlbCgiRDovZGF0YUNLLnhsc3giKQ0KbGlicmFyeShnZ3Bsb3QyKQ0KZ2dwbG90KGNrKSArDQogIGdlb21fbGluZShhZXMoeCA9IGNrJE5nw6B5LCB5ID0gY2skQUdSLCBjb2xvciA9ICJBR1IiKSkgKw0KICBnZW9tX2xpbmUoYWVzKHggPSBjayROZ8OgeSwgeSA9IGNrJEFQRywgY29sb3IgPSAiQVBHIikpICsNCiAgZ2VvbV9saW5lKGFlcyh4ID0gY2skTmfDoHksIHkgPSBjayRCU0ksIGNvbG9yID0gIkJTSSIpKSArDQogIGdlb21fbGluZShhZXMoeCA9IGNrJE5nw6B5LCB5ID0gY2skQ1RTLCBjb2xvciA9ICJDVFMiKSkgKw0KICBnZW9tX2xpbmUoYWVzKHggPSBjayROZ8OgeSwgeSA9IGNrJEZUUywgY29sb3IgPSAiRlRTIikpICsNCiAgZ2VvbV9saW5lKGFlcyh4ID0gY2skTmfDoHksIHkgPSBjayRIQ00sIGNvbG9yID0gIkhDTSIpKSArDQogIGdlb21fbGluZShhZXMoeCA9IGNrJE5nw6B5LCB5ID0gY2skU1NJLCBjb2xvciA9ICJTU0kiKSkgKw0KICBsYWJzKHggPSAiVGltZSIsIHkgPSAicHJpY2UiLCB0aXRsZSA9ICJzdG9jayBwcmljZSIsIGNvbG9yID0gInN0b2NrIHByaWNlIikgKw0KICBzY2FsZV9jb2xvcl9tYW51YWwodmFsdWVzID0gYygiQUdSIiA9ICJkZWVwc2t5Ymx1ZTQiLCAiQVBHIiA9ICJicm93biIsICJCU0kiID0gImRhcmtzZWFncmVlbiIsICJDVFMiID0gImdvbGRlbnJvZDQiLCAiRlRTIiA9ICJjeWFuIiwgIkhDTSIgPSAicGluayIsICJTU0kiID0gImRhcmtncmVlbiIpKQ0KYGBgDQoNCg0KIyBDSMavxqBORyAzOiBE4buuIExJ4buGVSBOR0hJw4pOIEPhu6hVIFbDgCBNw5QgSMOMTkggxJDhu4AgWFXhuqRUDQoNCiMjIEThu68gbGnhu4d1IG5naGnDqm4gY+G7qXUNCg0KYGBge3J9DQpsaWJyYXJ5KHJlYWR4bCkNCmxpYnJhcnkoRFQpDQpjayA8LSByZWFkX2V4Y2VsKCJEOi9kYXRhQ0sueGxzeCIpDQpkYXRhdGFibGUoY2spDQpgYGANCg0KDQojIyBNw7QgdOG6oyBk4buvIGxp4buHdSBuZ2hpw6puIGPhu6l1DQoNCkLhu5kgZOG7ryBsaeG7h3UgYmFvIGfhu5NtIDM5MSBxdWFuIHPDoXQgdsOgIDcgYmnhur9uLiBE4buvIGxp4buHdSDEkcaw4bujYyB0aHUgdGjhuq1wIHThu6sgbmfDoHkgMS8xLzIwMjIgxJHhur9uIDMxLzcvMjAyMy4NCg0KxJDGoW4gduG7izogbmfDoG4gxJHhu5NuZyANCg0KKiBCaeG6v24gQUdSOiBsw6AgbcOjIGNo4bupbmcga2hvw6FuIGPhu6dhIEPDtG5nIHR5IEPhu5UgcGjhuqduIENo4bupbmcga2hvw6FuIEFncmliYW5rIA0KDQoqIEJp4bq/biBBUEc6IGzDoCBtw6MgY2jhu6luZyBraG/DoW4gY+G7p2EgQ8O0bmcgdHkgQ+G7lSBwaOG6p24gQ2jhu6luZyBraG/DoW4gQVBHDQoNCiogQmnhur9uIEJTSTogbMOgIG3DoyBjaOG7qW5nIGtob8OhbiBj4bunYSBDw7RuZyB0eSBD4buVIHBo4bqnbiBDaOG7qW5nIGtob8OhbiBOZ8OibiBow6BuZyDEkOG6p3UgdMawIHbDoCBQaMOhdCB0cmnhu4NuIFZp4buHdCBOYW0NCg0KKiBCaeG6v24gQ1RTOiBsw6AgbcOjIGNo4bupbmcga2hvw6FuIGPhu6dhIEPDtG5nIHR5IEPhu5UgcGjhuqduIENo4bupbmcga2hvw6FuIE5nw6JuIGjDoG5nIEPDtG5nIHRoxrDGoW5nIFZp4buHdCBOYW0NCg0KKiBCaeG6v24gRlRTOiBsw6AgbcOjIGNo4bupbmcga2hvw6FuIGPhu6dhIEPDtG5nIHR5IEPhu5UgcGjhuqduIENo4bupbmcga2hvw6FuIEZQVA0KDQoqIEJp4bq/biBIQ006IGzDoCBtw6MgY2jhu6luZyBraG/DoW4gY+G7p2EgQ8O0bmcgdHkgQ+G7lSBwaOG6p24gQ2jhu6luZyBraG/DoW4gVGjDoG5oIFBo4buRIEjhu5MgQ2jDrSBNaW5oDQoNCiogQmnhur9uIFNTSTogbMOgIG3DoyBjaOG7qW5nIGtob8OhbiBj4bunYSBDw7RuZyB0eSBD4buVIHBo4bqnbiBDaOG7qW5nIGtob8OhbiBTU0kgDQoNCg0KIyBDSMavxqBORyA0OiBL4bq+VCBRVeG6oiBOR0hJw4pOIEPhu6hVDQoNCiMjIFRo4buRbmcga8OqIG3DtCB04bqjIA0KDQpgYGB7cn0NCnN1bW1hcnkoY2spDQpgYGANCg0KDQojIyBLaeG7g20gxJHhu4tuaCBwaMOibiBwaOG7kWkNCg0KIyMjIEJp4bq/biBBR1INCg0KKiAqKsSQ4buTIHRo4buLKioNCg0KYGBge3J9DQpoaXN0KGNrJEFHUiwgbWFpbiA9ICJCSeG7glUgxJDhu5IgR0nDgSBD4buUIFBISeG6vlUgQUdSIix4bGFiID0gIkFHUiIsIHlsYWIgPSAicHJpY2UiLGNvbCA9ICIjNDY4MkI0IikNCmBgYA0KDQoqICoqS2nhu4NtIMSR4buLbmggcGjDom4gcGjhu5FpIGNodeG6qW4qKg0KDQokSF8wJDogQmnhur9uIEFHUiBjw7MgcGjDom4gcGjhu5FpIGNodeG6qW4NCg0KJEhfMSQ6IEJp4bq/biBBR1Iga2jDtG5nIGPDsyBwaMOibiBwaOG7kWkgY2h14bqpbg0KDQoNCmBgYHtyfQ0Kc2hhcGlyby50ZXN0KGNrJEFHUikNCmBgYA0KDQpW4bubaSBwLXZhbHVlIDwgMC4wNSAsIGLDoWMgYuG7jyAkSF8wJCBuw6puIGTDo3kgc+G7kSBsaeG7h3UgbsOgeSBraMO0bmcgY8OzIHBow6JuIHBo4buRaSBjaHXhuqluDQoNCiogKipLaeG7g20gxJHhu4tuaCBwaMOibiBwaOG7kWkgbG9nYSBjaHXhuqluKioNCg0KJEhfMCQ6IEJp4bq/biBBR1IgY8OzIHBow6JuIHBo4buRaSBsb2dhIGNodeG6qW4NCg0KJEhfMSQ6IEJp4bq/biBBR1Iga2jDtG5nIGPDsyBwaMOibiBwaOG7kWkgbG9nYSBjaHXhuqluDQoNCmBgYHtyfQ0Ka3MudGVzdChjayRBR1IseT0icGxub3JtIikNCmBgYA0KDQpW4bubaSBwLXZhbHVlIDwgMC4wNSAsIGLDoWMgYuG7jyAkSF8wJCBuw6puIGTDo3kgc+G7kSBsaeG7h3UgbsOgeSBraMO0bmcgY8OzIHBow6JuIHBo4buRaSBsb2dhIGNodeG6qW4NCg0KKiAqKktp4buDbSDEkeG7i25oIHBow6JuIHBo4buRaSBtxakqKg0KDQokSF8wJDogQmnhur9uIEFHUiBjw7MgcGjDom4gcGjhu5FpIG3FqQ0KDQokSF8xJDogQmnhur9uIEFHUiBraMO0bmcgY8OzIHBow6JuIHBo4buRaSBtxakNCg0KYGBge3J9DQprcy50ZXN0KGNrJEFHUix5PSJwZXhwIikNCmBgYA0KDQpW4bubaSBwLXZhbHVlIDwgMC4wNSAsIGLDoWMgYuG7jyAkSF8wJCBuw6puIGTDo3kgc+G7kSBsaeG7h3UgbsOgeSBraMO0bmcgY8OzIHBow6JuIHBo4buRaSBtxakNCg0KDQojIyMgQmnhur9uIEFQRw0KDQoqICoqxJDhu5MgdGjhu4sqKg0KDQpgYGB7cn0NCmhpc3QoY2skQVBHLCBtYWluID0gIkJJ4buCVSDEkOG7kiBHScOBIEPhu5QgUEhJ4bq+VSBBUEciLHhsYWIgPSAiQVBHIiwgeWxhYiA9ICJwcmljZSIsY29sID0gIiM0NjgyQjQiKQ0KYGBgDQoNCiogKipLaeG7g20gxJHhu4tuaCBwaMOibiBwaOG7kWkgY2h14bqpbioqDQoNCiRIXzAkOiBCaeG6v24gQVBHIGPDsyBwaMOibiBwaOG7kWkgY2h14bqpbg0KDQokSF8xJDogQmnhur9uIEFQRyBraMO0bmcgY8OzIHBow6JuIHBo4buRaSBjaHXhuqluDQoNCg0KYGBge3J9DQpzaGFwaXJvLnRlc3QoY2skQVBHKQ0KYGBgDQoNClbhu5tpIHAtdmFsdWUgPCAwLjA1ICwgYsOhYyBi4buPICRIXzAkIG7Dqm4gZMOjeSBz4buRIGxp4buHdSBuw6B5IGtow7RuZyBjw7MgcGjDom4gcGjhu5FpIGNodeG6qW4NCg0KKiAqKktp4buDbSDEkeG7i25oIHBow6JuIHBo4buRaSBsb2dhIGNodeG6qW4qKg0KDQokSF8wJDogQmnhur9uIEFQRyBjw7MgcGjDom4gcGjhu5FpIGxvZ2EgY2h14bqpbg0KDQokSF8xJDogQmnhur9uIEFQRyBraMO0bmcgY8OzIHBow6JuIHBo4buRaSBsb2dhIGNodeG6qW4NCg0KYGBge3J9DQprcy50ZXN0KGNrJEFQRyx5PSJwbG5vcm0iKQ0KYGBgDQoNClbhu5tpIHAtdmFsdWUgPCAwLjA1ICwgYsOhYyBi4buPICRIXzAkIG7Dqm4gZMOjeSBz4buRIGxp4buHdSBuw6B5IGtow7RuZyBjw7MgcGjDom4gcGjhu5FpIGxvZ2EgY2h14bqpbg0KDQoqICoqS2nhu4NtIMSR4buLbmggcGjDom4gcGjhu5FpIG3FqSoqDQoNCiRIXzAkOiBCaeG6v24gQVBHIGPDsyBwaMOibiBwaOG7kWkgbcWpDQoNCiRIXzEkOiBCaeG6v24gQVBHIGtow7RuZyBjw7MgcGjDom4gcGjhu5FpIG3FqQ0KDQpgYGB7cn0NCmtzLnRlc3QoY2skQVBHLHk9InBleHAiKQ0KYGBgDQoNClbhu5tpIHAtdmFsdWUgPCAwLjA1ICwgYsOhYyBi4buPICRIXzAkIG7Dqm4gZMOjeSBz4buRIGxp4buHdSBuw6B5IGtow7RuZyBjw7MgcGjDom4gcGjhu5FpIG3FqQ0KDQojIyMgQmnhur9uIEJTSQ0KDQoqICoqxJDhu5MgdGjhu4sqKg0KDQpgYGB7cn0NCmhpc3QoY2skQlNJLCBtYWluID0gIkJJ4buCVSDEkOG7kiBHScOBIEPhu5QgUEhJ4bq+VSBBUEciLHhsYWIgPSAiQlNJIiwgeWxhYiA9ICJwcmljZSIsY29sID0gIiM0NjgyQjQiKQ0KYGBgDQoNCiogKipLaeG7g20gxJHhu4tuaCBwaMOibiBwaOG7kWkgY2h14bqpbioqDQoNCiRIXzAkOiBCaeG6v24gQlNJIGPDsyBwaMOibiBwaOG7kWkgY2h14bqpbg0KDQokSF8xJDogQmnhur9uIEJTSSBraMO0bmcgY8OzIHBow6JuIHBo4buRaSBjaHXhuqluDQoNCg0KYGBge3J9DQpzaGFwaXJvLnRlc3QoY2skQlNJKQ0KYGBgDQoNClbhu5tpIHAtdmFsdWUgPCAwLjA1ICwgYsOhYyBi4buPICRIXzAkIG7Dqm4gZMOjeSBz4buRIGxp4buHdSBuw6B5IGtow7RuZyBjw7MgcGjDom4gcGjhu5FpIGNodeG6qW4NCg0KKiAqKktp4buDbSDEkeG7i25oIHBow6JuIHBo4buRaSBsb2dhIGNodeG6qW4qKg0KDQokSF8wJDogQmnhur9uIEJTSSBjw7MgcGjDom4gcGjhu5FpIGxvZ2EgY2h14bqpbg0KDQokSF8xJDogQmnhur9uIEJTSSBraMO0bmcgY8OzIHBow6JuIHBo4buRaSBsb2dhIGNodeG6qW4NCg0KYGBge3J9DQprcy50ZXN0KGNrJEJTSSx5PSJwbG5vcm0iKQ0KYGBgDQoNClbhu5tpIHAtdmFsdWUgPCAwLjA1ICwgYsOhYyBi4buPICRIXzAkIG7Dqm4gZMOjeSBz4buRIGxp4buHdSBuw6B5IGtow7RuZyBjw7MgcGjDom4gcGjhu5FpIGxvZ2EgY2h14bqpbg0KDQoqICoqS2nhu4NtIMSR4buLbmggcGjDom4gcGjhu5FpIG3FqSoqDQoNCiRIXzAkOiBCaeG6v24gQlNJIGPDsyBwaMOibiBwaOG7kWkgbcWpDQoNCiRIXzEkOiBCaeG6v24gQlNJIGtow7RuZyBjw7MgcGjDom4gcGjhu5FpIG3FqQ0KDQpgYGB7cn0NCmtzLnRlc3QoY2skQlNJLHk9InBleHAiKQ0KYGBgDQoNClbhu5tpIHAtdmFsdWUgPCAwLjA1ICwgYsOhYyBi4buPICRIXzAkIG7Dqm4gZMOjeSBz4buRIGxp4buHdSBuw6B5IGtow7RuZyBjw7MgcGjDom4gcGjhu5FpIG3FqQ0KDQojIyMgQmnhur9uIENUUw0KDQoqICoqxJDhu5MgdGjhu4sqKg0KDQpgYGB7cn0NCmhpc3QoY2skQ1RTLCBtYWluID0gIkJJ4buCVSDEkOG7kiBHScOBIEPhu5QgUEhJ4bq+VSBDVFMiLHhsYWIgPSAiQ1RTIiwgeWxhYiA9ICJwcmljZSIsY29sID0gIiM0NjgyQjQiKQ0KYGBgDQoNCiogKipLaeG7g20gxJHhu4tuaCBwaMOibiBwaOG7kWkgY2h14bqpbioqDQoNCiRIXzAkOiBCaeG6v24gQ1RTIGPDsyBwaMOibiBwaOG7kWkgY2h14bqpbg0KDQokSF8xJDogQmnhur9uIENUUyBraMO0bmcgY8OzIHBow6JuIHBo4buRaSBjaHXhuqluDQoNCg0KYGBge3J9DQpzaGFwaXJvLnRlc3QoY2skQ1RTKQ0KYGBgDQoNClbhu5tpIHAtdmFsdWUgPCAwLjA1ICwgYsOhYyBi4buPICRIXzAkIG7Dqm4gZMOjeSBz4buRIGxp4buHdSBuw6B5IGtow7RuZyBjw7MgcGjDom4gcGjhu5FpIGNodeG6qW4NCg0KKiAqKktp4buDbSDEkeG7i25oIHBow6JuIHBo4buRaSBsb2dhIGNodeG6qW4qKg0KDQokSF8wJDogQmnhur9uIENUUyBjw7MgcGjDom4gcGjhu5FpIGxvZ2EgY2h14bqpbg0KDQokSF8xJDogQmnhur9uIENUUyBraMO0bmcgY8OzIHBow6JuIHBo4buRaSBsb2dhIGNodeG6qW4NCg0KYGBge3J9DQprcy50ZXN0KGNrJENUUyx5PSJwbG5vcm0iKQ0KYGBgDQoNClbhu5tpIHAtdmFsdWUgPCAwLjA1ICwgYsOhYyBi4buPICRIXzAkIG7Dqm4gZMOjeSBz4buRIGxp4buHdSBuw6B5IGtow7RuZyBjw7MgcGjDom4gcGjhu5FpIGxvZ2EgY2h14bqpbg0KDQoqICoqS2nhu4NtIMSR4buLbmggcGjDom4gcGjhu5FpIG3FqSoqDQoNCiRIXzAkOiBCaeG6v24gQ1RTIGPDsyBwaMOibiBwaOG7kWkgbcWpDQoNCiRIXzEkOiBCaeG6v24gQ1RTIGtow7RuZyBjw7MgcGjDom4gcGjhu5FpIG3FqQ0KDQpgYGB7cn0NCmtzLnRlc3QoY2skQ1RTLHk9InBleHAiKQ0KYGBgDQoNClbhu5tpIHAtdmFsdWUgPCAwLjA1ICwgYsOhYyBi4buPICRIXzAkIG7Dqm4gZMOjeSBz4buRIGxp4buHdSBuw6B5IGtow7RuZyBjw7MgcGjDom4gcGjhu5FpIG3FqQ0KDQojIyMgQmnhur9uIEZUUw0KDQoqICoqxJDhu5MgdGjhu4sqKg0KDQpgYGB7cn0NCmhpc3QoY2skRlRTLCBtYWluID0gIkJJ4buCVSDEkOG7kiBHScOBIEPhu5QgUEhJ4bq+VSBGVFMiLHhsYWIgPSAiRlRTIiwgeWxhYiA9ICJwcmljZSIsY29sID0gIiM0NjgyQjQiKQ0KYGBgDQoNCiogKipLaeG7g20gxJHhu4tuaCBwaMOibiBwaOG7kWkgY2h14bqpbioqDQoNCiRIXzAkOiBCaeG6v24gRlRTIGPDsyBwaMOibiBwaOG7kWkgY2h14bqpbg0KDQokSF8xJDogQmnhur9uIEZUUyBraMO0bmcgY8OzIHBow6JuIHBo4buRaSBjaHXhuqluDQoNCg0KYGBge3J9DQpzaGFwaXJvLnRlc3QoY2skRlRTKQ0KYGBgDQoNClbhu5tpIHAtdmFsdWUgPCAwLjA1ICwgYsOhYyBi4buPICRIXzAkIG7Dqm4gZMOjeSBz4buRIGxp4buHdSBuw6B5IGtow7RuZyBjw7MgcGjDom4gcGjhu5FpIGNodeG6qW4NCg0KKiAqKktp4buDbSDEkeG7i25oIHBow6JuIHBo4buRaSBsb2dhIGNodeG6qW4qKg0KDQokSF8wJDogQmnhur9uIEZUUyBjw7MgcGjDom4gcGjhu5FpIGxvZ2EgY2h14bqpbg0KDQokSF8xJDogQmnhur9uIEZUUyBraMO0bmcgY8OzIHBow6JuIHBo4buRaSBsb2dhIGNodeG6qW4NCg0KYGBge3J9DQprcy50ZXN0KGNrJEZUUyx5PSJwbG5vcm0iKQ0KYGBgDQoNClbhu5tpIHAtdmFsdWUgPCAwLjA1ICwgYsOhYyBi4buPICRIXzAkIG7Dqm4gZMOjeSBz4buRIGxp4buHdSBuw6B5IGtow7RuZyBjw7MgcGjDom4gcGjhu5FpIGxvZ2EgY2h14bqpbg0KDQoqICoqS2nhu4NtIMSR4buLbmggcGjDom4gcGjhu5FpIG3FqSoqDQoNCiRIXzAkOiBCaeG6v24gRlRTIGPDsyBwaMOibiBwaOG7kWkgbcWpDQoNCiRIXzEkOiBCaeG6v24gRlRTIGtow7RuZyBjw7MgcGjDom4gcGjhu5FpIG3FqQ0KDQpgYGB7cn0NCmtzLnRlc3QoY2skRlRTLHk9InBleHAiKQ0KYGBgDQoNClbhu5tpIHAtdmFsdWUgPCAwLjA1ICwgYsOhYyBi4buPICRIXzAkIG7Dqm4gZMOjeSBz4buRIGxp4buHdSBuw6B5IGtow7RuZyBjw7MgcGjDom4gcGjhu5FpIG3FqQ0KDQojIyMgQmnhur9uIEhDTQ0KDQoqICoqxJDhu5MgdGjhu4sqKg0KDQpgYGB7cn0NCmhpc3QoY2skSENNLCBtYWluID0gIkJJ4buCVSDEkOG7kiBHScOBIEPhu5QgUEhJ4bq+VSBIQ00iLHhsYWIgPSAiSENNIiwgeWxhYiA9ICJwcmljZSIsY29sID0gIiM0NjgyQjQiKQ0KYGBgDQoNCiogKipLaeG7g20gxJHhu4tuaCBwaMOibiBwaOG7kWkgY2h14bqpbioqDQoNCiRIXzAkOiBCaeG6v24gSENNIGPDsyBwaMOibiBwaOG7kWkgY2h14bqpbg0KDQokSF8xJDogQmnhur9uIEhDTSBraMO0bmcgY8OzIHBow6JuIHBo4buRaSBjaHXhuqluDQoNCg0KYGBge3J9DQpzaGFwaXJvLnRlc3QoY2skSENNKQ0KYGBgDQoNClbhu5tpIHAtdmFsdWUgPCAwLjA1ICwgYsOhYyBi4buPICRIXzAkIG7Dqm4gZMOjeSBz4buRIGxp4buHdSBuw6B5IGtow7RuZyBjw7MgcGjDom4gcGjhu5FpIGNodeG6qW4NCg0KKiAqKktp4buDbSDEkeG7i25oIHBow6JuIHBo4buRaSBsb2dhIGNodeG6qW4qKg0KDQokSF8wJDogQmnhur9uIEhDTSBjw7MgcGjDom4gcGjhu5FpIGxvZ2EgY2h14bqpbg0KDQokSF8xJDogQmnhur9uIEhDTSBraMO0bmcgY8OzIHBow6JuIHBo4buRaSBsb2dhIGNodeG6qW4NCg0KYGBge3J9DQprcy50ZXN0KGNrJEhDTSx5PSJwbG5vcm0iKQ0KYGBgDQoNClbhu5tpIHAtdmFsdWUgPCAwLjA1ICwgYsOhYyBi4buPICRIXzAkIG7Dqm4gZMOjeSBz4buRIGxp4buHdSBuw6B5IGtow7RuZyBjw7MgcGjDom4gcGjhu5FpIGxvZ2EgY2h14bqpbg0KDQoqICoqS2nhu4NtIMSR4buLbmggcGjDom4gcGjhu5FpIG3FqSoqDQoNCiRIXzAkOiBCaeG6v24gSENNIGPDsyBwaMOibiBwaOG7kWkgbcWpDQoNCiRIXzEkOiBCaeG6v24gSENNIGtow7RuZyBjw7MgcGjDom4gcGjhu5FpIG3FqQ0KDQpgYGB7cn0NCmtzLnRlc3QoY2skSENNLHk9InBleHAiKQ0KYGBgDQoNClbhu5tpIHAtdmFsdWUgPCAwLjA1ICwgYsOhYyBi4buPICRIXzAkIG7Dqm4gZMOjeSBz4buRIGxp4buHdSBuw6B5IGtow7RuZyBjw7MgcGjDom4gcGjhu5FpIG3FqQ0KDQojIyMgQmnhur9uIFNTSQ0KDQoqICoqxJDhu5MgdGjhu4sqKg0KDQpgYGB7cn0NCmhpc3QoY2skU1NJLCBtYWluID0gIkJJ4buCVSDEkOG7kiBHScOBIEPhu5QgUEhJ4bq+VSBTU0kiLHhsYWIgPSAiU1NJIiwgeWxhYiA9ICJwcmljZSIsY29sID0gIiM0NjgyQjQiKQ0KYGBgDQoNCiogKipLaeG7g20gxJHhu4tuaCBwaMOibiBwaOG7kWkgY2h14bqpbioqDQoNCiRIXzAkOiBCaeG6v24gU1NJIGPDsyBwaMOibiBwaOG7kWkgY2h14bqpbg0KDQokSF8xJDogQmnhur9uIFNTSSBraMO0bmcgY8OzIHBow6JuIHBo4buRaSBjaHXhuqluDQoNCg0KYGBge3J9DQpzaGFwaXJvLnRlc3QoY2skU1NJKQ0KYGBgDQoNClbhu5tpIHAtdmFsdWUgPCAwLjA1ICwgYsOhYyBi4buPICRIXzAkIG7Dqm4gZMOjeSBz4buRIGxp4buHdSBuw6B5IGtow7RuZyBjw7MgcGjDom4gcGjhu5FpIGNodeG6qW4NCg0KKiAqKktp4buDbSDEkeG7i25oIHBow6JuIHBo4buRaSBsb2dhIGNodeG6qW4qKg0KDQokSF8wJDogQmnhur9uIEJTSSBjw7MgcGjDom4gcGjhu5FpIGxvZ2EgY2h14bqpbg0KDQokSF8xJDogQmnhur9uIEJTSSBraMO0bmcgY8OzIHBow6JuIHBo4buRaSBsb2dhIGNodeG6qW4NCg0KYGBge3J9DQprcy50ZXN0KGNrJFNTSSwgInBsbm9ybSIpDQpgYGANCg0KVuG7m2kgcC12YWx1ZSA8IDAuMDUgLCBiw6FjIGLhu48gJEhfMCQgbsOqbiBkw6N5IHPhu5EgbGnhu4d1IG7DoHkga2jDtG5nIGPDsyBwaMOibiBwaOG7kWkgbG9nYSBjaHXhuqluDQoNCiogKipLaeG7g20gxJHhu4tuaCBwaMOibiBwaOG7kWkgbcWpKioNCg0KJEhfMCQ6IEJp4bq/biBCU0kgY8OzIHBow6JuIHBo4buRaSBtxakNCg0KJEhfMSQ6IEJp4bq/biBCU0kga2jDtG5nIGPDsyBwaMOibiBwaOG7kWkgbcWpDQoNCmBgYHtyfQ0Ka3MudGVzdChjayRTU0kseT0icGV4cCIpDQpgYGANCg0KVuG7m2kgcC12YWx1ZSA8IDAuMDUgLCBiw6FjIGLhu48gJEhfMCQgbsOqbiBkw6N5IHPhu5EgbGnhu4d1IG7DoHkga2jDtG5nIGPDsyBwaMOibiBwaOG7kWkgbcWpDQoNCiMjIENodXnhu4NuIMSR4buVaSBjw6FjIGJp4bq/biB0aGVvIHBow6JuIHBo4buRaSBjaHXhuqluIA0KDQpTYXUga2hpIGtp4buDbSDEkeG7i25oIGPDoWMgcGjDom4gcGjhu5FpIGPhu6dhIGPDoWMgYmnhur9uIHRow6wgduG6q24gY2jGsGEgdGjhu4MgeMOhYyDEkeG7i25oIHBow6JuIHBo4buRaSBj4bunYSBj4bunYSBjw6FjIGJp4bq/biDEkeG6p3UgdsOgby4gRG8gxJHDsywgdMO0aSBz4bq9IHPhu60gZOG7pW5nIGjDoG0gc2FtcGxlKCkgxJHhu4MgdOG6oW8gcmEgY8OhYyBt4bqrdSBuZ+G6q3Ugbmhpw6puIHThu6sgYuG7mSBk4buvIGxp4buHdSB24bubaSBrw61jaCB0aMaw4bubYyBt4bqrdSBsw6AgMyB2w6AgNS4gU2F1IMSRw7Mgc+G6vSBraeG7g20gdHJhIHhlbSBt4bqrdSBjw7MgdHXDom4gdGhlbyBwaMOibiBwaOG7kWkgY2h14bqpbiBoYXkga2jDtG5nIGLhurFuZyBjw6FjaCBz4butIGThu6VuZyBwaMOpcCBraeG7g20gxJHhu4tuaCBTaGFwaXJvLVdpbGsuDQoNCiMjIyBDaHV54buDbiDEkeG7lWkgYmnhur9uIEFHUg0KDQpgYGB7cn0NCkFHUiA8LSBzYW1wbGUoY2skQUdSLCA1KQ0KaGlzdChBR1IpDQpgYGANCg0KDQoqICoqS2nhu4NtIMSR4buLbmggcGjDom4gcGjhu5FpIGNodeG6qW4qKg0KDQokSF8wJDogQmnhur9uIEFHUiBjw7MgcGjDom4gcGjhu5FpIGNodeG6qW4NCg0KJEhfMSQ6IEJp4bq/biBBR1Iga2jDtG5nIGPDsyBwaMOibiBwaOG7kWkgY2h14bqpbg0KDQoNCmBgYHtyfQ0Kc2hhcGlyby50ZXN0KEFHUikNCmBgYA0KDQpW4bubaSBwLXZhbHVlID4gMC4wNSAsIGNo4bqlcCBuaOG6rW4gJEhfMCQgbsOqbiBkw6N5IHPhu5EgbGnhu4d1IG7DoHkgY8OzIHBow6JuIHBo4buRaSBjaHXhuqluDQoNCg0KIyMjIENodXnhu4NuIMSR4buVaSBiaeG6v24gQVBHDQoNCmBgYHtyfQ0KQVBHIDwtIHNhbXBsZShjayRBUEcsIDUpDQpoaXN0KEFQRykNCmBgYA0KDQoqICoqS2nhu4NtIMSR4buLbmggcGjDom4gcGjhu5FpIGNodeG6qW4qKg0KDQokSF8wJDogQmnhur9uIEFQRyBjw7MgcGjDom4gcGjhu5FpIGNodeG6qW4NCg0KJEhfMSQ6IEJp4bq/biBBUEcga2jDtG5nIGPDsyBwaMOibiBwaOG7kWkgY2h14bqpbg0KDQoNCmBgYHtyfQ0Kc2hhcGlyby50ZXN0KEFQRykNCmBgYA0KDQpW4bubaSBwLXZhbHVlID4gMC4wNSAsIGNo4bqlcCBuaOG6rW4gJEhfMCQgbsOqbiBkw6N5IHPhu5EgbGnhu4d1IG7DoHkgY8OzIHBow6JuIHBo4buRaSBjaHXhuqluDQoNCg0KIyMjIENodXnhu4NuIMSR4buVaSBiaeG6v24gQlNJDQoNCmBgYHtyfQ0KQlNJIDwtIHNhbXBsZShjayRCU0ksIDUpDQpoaXN0KEJTSSkNCmBgYA0KDQoqICoqS2nhu4NtIMSR4buLbmggcGjDom4gcGjhu5FpIGNodeG6qW4qKg0KDQokSF8wJDogQmnhur9uIEJTSSBjw7MgcGjDom4gcGjhu5FpIGNodeG6qW4NCg0KJEhfMSQ6IEJp4bq/biBCU0kga2jDtG5nIGPDsyBwaMOibiBwaOG7kWkgY2h14bqpbg0KDQoNCmBgYHtyfQ0Kc2hhcGlyby50ZXN0KEJTSSkNCmBgYA0KDQpW4bubaSBwLXZhbHVlID4gMC4wNSAsIGNo4bqlcCBuaOG6rW4gJEhfMCQgbsOqbiBkw6N5IHPhu5EgbGnhu4d1IG7DoHkgY8OzIHBow6JuIHBo4buRaSBjaHXhuqluDQoNCg0KIyMjIENodXnhu4NuIMSR4buVaSBiaeG6v24gQ1RTDQoNCmBgYHtyfQ0KQ1RTIDwtIHNhbXBsZShjayRDVFMsIDUpDQpoaXN0KENUUykNCmBgYA0KDQoqICoqS2nhu4NtIMSR4buLbmggcGjDom4gcGjhu5FpIGNodeG6qW4qKg0KDQokSF8wJDogQmnhur9uIENUUyBjw7MgcGjDom4gcGjhu5FpIGNodeG6qW4NCg0KJEhfMSQ6IEJp4bq/biBDVFMga2jDtG5nIGPDsyBwaMOibiBwaOG7kWkgY2h14bqpbg0KDQoNCmBgYHtyfQ0Kc2hhcGlyby50ZXN0KENUUykNCmBgYA0KDQpW4bubaSBwLXZhbHVlID4gMC4wNSAsIGNo4bqlcCBuaOG6rW4gJEhfMCQgbsOqbiBkw6N5IHPhu5EgbGnhu4d1IG7DoHkgY8OzIHBow6JuIHBo4buRaSBjaHXhuqluDQoNCg0KIyMjIENodXnhu4NuIMSR4buVaSBiaeG6v24gRlRTDQoNCmBgYHtyfQ0KRlRTIDwtIHNhbXBsZShjayRGVFMsIDUpDQpoaXN0KEZUUykNCmBgYA0KDQoqICoqS2nhu4NtIMSR4buLbmggcGjDom4gcGjhu5FpIGNodeG6qW4qKg0KDQokSF8wJDogQmnhur9uIEZUUyBjw7MgcGjDom4gcGjhu5FpIGNodeG6qW4NCg0KJEhfMSQ6IEJp4bq/biBGVFMga2jDtG5nIGPDsyBwaMOibiBwaOG7kWkgY2h14bqpbg0KDQoNCmBgYHtyfQ0Kc2hhcGlyby50ZXN0KEZUUykNCmBgYA0KDQpW4bubaSBwLXZhbHVlID4gMC4wNSAsIGNo4bqlcCBuaOG6rW4gJEhfMCQgbsOqbiBkw6N5IHPhu5EgbGnhu4d1IG7DoHkgY8OzIHBow6JuIHBo4buRaSBjaHXhuqluDQoNCg0KIyMjIENodXnhu4NuIMSR4buVaSBiaeG6v24gSENNDQoNCmBgYHtyfQ0KSENNIDwtIHNhbXBsZShjayRIQ00sIDUpDQpoaXN0KEhDTSkNCmBgYA0KDQoqICoqS2nhu4NtIMSR4buLbmggcGjDom4gcGjhu5FpIGNodeG6qW4qKg0KDQokSF8wJDogQmnhur9uIEhDTSBjw7MgcGjDom4gcGjhu5FpIGNodeG6qW4NCg0KJEhfMSQ6IEJp4bq/biBIQ00ga2jDtG5nIGPDsyBwaMOibiBwaOG7kWkgY2h14bqpbg0KDQoNCmBgYHtyfQ0Kc2hhcGlyby50ZXN0KEhDTSkNCmBgYA0KDQpW4bubaSBwLXZhbHVlID4gMC4wNSAsIGNo4bqlcCBuaOG6rW4gJEhfMCQgbsOqbiBkw6N5IHPhu5EgbGnhu4d1IG7DoHkgY8OzIHBow6JuIHBo4buRaSBjaHXhuqluDQoNCiMjIyBDaHV54buDbiDEkeG7lWkgYmnhur9uIFNTSQ0KDQpgYGB7cn0NClNTSSA8LSBzYW1wbGUoY2skU1NJLCA1KQ0KaGlzdChTU0kpDQpgYGANCg0KKiAqKktp4buDbSDEkeG7i25oIHBow6JuIHBo4buRaSBjaHXhuqluKioNCg0KJEhfMCQ6IEJp4bq/biBTU0kgY8OzIHBow6JuIHBo4buRaSBjaHXhuqluDQoNCiRIXzEkOiBCaeG6v24gU1NJIGtow7RuZyBjw7MgcGjDom4gcGjhu5FpIGNodeG6qW4NCg0KDQpgYGB7cn0NCnNoYXBpcm8udGVzdChTU0kpDQpgYGANCg0KVuG7m2kgcC12YWx1ZSA+IDAuMDUgLCBjaOG6pXAgbmjhuq1uICRIXzAkIG7Dqm4gZMOjeSBz4buRIGxp4buHdSBuw6B5IGPDsyBwaMOibiBwaOG7kWkgY2h14bqpbg0KDQoNCiMjIE3DtCBwaOG7j25nIGThu68gbGnhu4d1IA0KDQojIyMgTcO0IHBo4buPbmcgY8OhYyBiaeG6v24gxJHhu5ljIGzhuq1wIHRyb25nIGThu68gbGnhu4d1IG5naGnDqm4gY+G7qXUNCg0KKiAqKkJp4bq/biBBR1IqKg0KDQpgYGB7cn0NCmxpYnJhcnkoZkJhc2ljcykNCmRhdGF0YWJsZShiYXNpY1N0YXRzKEFHUikpDQpgYGANCg0KDQpgYGB7cn0NCkFHUjEgPC0gcm5vcm0obiA9IDEwMDAwLCBtZWFuID0gMTExNzMuNTQsIHNkID0gMzE3My4xODI2MjcgKQ0KYGBgDQoNCiogKipCaeG6v24gQVBHKioNCg0KYGBge3J9DQpsaWJyYXJ5KGZCYXNpY3MpDQpkYXRhdGFibGUoYmFzaWNTdGF0cyhBUEcpKQ0KYGBgDQoNCg0KYGBge3J9DQpBUEcxIDwtIHJub3JtKG4gPSAxMDAwMCwgbWVhbiA9IDc3ODIsIHNkID0gMjQwNS4wNzE3MjUgKQ0KYGBgDQoNCiogKipCaeG6v24gQlNJKioNCg0KYGBge3J9DQpsaWJyYXJ5KGZCYXNpY3MpDQpkYXRhdGFibGUoYmFzaWNTdGF0cyhCU0kpKQ0KYGBgDQoNCg0KYGBge3J9DQpCU0kxIDwtIHJub3JtKG4gPSAxMDAwMCwgbWVhbiA9IDIwNTU0LjYsIHNkID0gMzI1Ny45MzczNTQgKQ0KYGBgDQoNCiogKipCaeG6v24gQ1RTKioNCg0KYGBge3J9DQpsaWJyYXJ5KGZCYXNpY3MpDQpkYXRhdGFibGUoYmFzaWNTdGF0cyhDVFMpKQ0KYGBgDQoNCg0KYGBge3J9DQpDVFMxIDwtIHJub3JtKG4gPSAxMDAwMCwgbWVhbiA9IDE4NjA3LjkyLCBzZCA9IDkxNzMuNjQzODUyICkNCmBgYA0KDQoNCg0KKiAqKkJp4bq/biBGVFMqKg0KDQpgYGB7cn0NCmxpYnJhcnkoZkJhc2ljcykNCmRhdGF0YWJsZShiYXNpY1N0YXRzKENUUykpDQpgYGANCg0KDQpgYGB7cn0NCkZUUzEgPC0gcm5vcm0obiA9IDEwMDAwLCBtZWFuID0gMTg2MDcuOTIsIHNkID0gOTE3My42NDM4NTIgKQ0KYGBgDQoNCiogKipCaeG6v24gSENNKioNCg0KYGBge3J9DQpsaWJyYXJ5KGZCYXNpY3MpDQpkYXRhdGFibGUoYmFzaWNTdGF0cyhIQ00pKQ0KYGBgDQoNCg0KYGBge3J9DQpIQ00xIDwtIHJub3JtKG4gPSAxMDAwMCwgbWVhbiA9IDI1ODE4LjQsIHNkID0gMjU5NS4yNjQ5NzcgKQ0KYGBgDQoNCiogKipCaeG6v24gU1NJKioNCg0KYGBge3J9DQpsaWJyYXJ5KGZCYXNpY3MpDQpkYXRhdGFibGUoYmFzaWNTdGF0cyhTU0kpKQ0KYGBgDQoNCg0KYGBge3J9DQpIQ00xIDwtIHJub3JtKG4gPSAxMDAwMCwgbWVhbiA9IDI1OTk2LjE2LCBzZCA9IDEwNzUyLjEyNTYzNiApDQpgYGANCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0K