Bộ dữ liệu: https://docs.google.com/spreadsheets/d/1x9TxD7lZf6rKGolFUkGsuvOYunO5wrXh/edit?usp=sharing&ouid=108623162874824511581&rtpof=true&sd=true

File PDF bài luận: https://drive.google.com/file/d/19G304Y6IiULMIvfmtTTQEqNpBnMSi7tz/view?usp=sharing

1 MỞ ĐẦU

1.1 Lí do chọn đề tài

Theo Bộ Công Thương, trong 10 năm (2011-2020), công nghiệp là ngành có tốc độ tăng trưởng cao nhất trong các ngành kinh tế quốc dân với đóng góp xấp xỉ 30% vào GDP và trở thành ngành xuất khẩu chủ lực của đất nước, góp phần đưa Việt Nam từ vị trí thứ 50 (năm 2010) lên vị trí thứ 22 (năm 2019) trong các quốc gia xuất khẩu lớn nhất thế giới.

Bộ Công Thương đặt ra mục tiêu đến năm 2030 Việt Nam là nước có công nghiệp hiện đại, thuộc nhóm quốc gia có năng lực cạnh tranh công nghiệp cao, nhóm 15 quốc gia xuất khẩu lớn nhất thế giới.

Nhận thấy tiềm năng tăng trưởng kinh tế Việt Nam phụ thuộc nhiều vào nhóm ngành Công nghiệp và xây dựng, tác giả quyết định tiến hành mô phỏng các yếu tố cấu thành nhóm ngành này như: Công nghiệp; Khai khoáng; Công nghiệp chế biến, chế tạo; Sản xuất và phân phối ; Cung cấp ; xây dựng.

1.2 Mục tiêu nghiên cứu

  • Mục tiêu chung: xem xét sự tăng trưởng cơ cấu GDP nhóm ngành công nghiệp và xây dựng trong tương lai.

  • Mục tiêu cụ thể: đánh giá các yếu tố trong nhóm ngành công nghiệp và xây dựng tăng trưởng như thế nào. Đề ra các giải pháp nhằm khai thác tối ưu tiềm năng, góp phần làm tăng trưởng nền kinh tế nước nhà.

1.3 Đối tượng, phạm vị nghiên cứu

1.4 Đối tượng nghiên cứu

  • Mô phỏng các yếu tố cấu thành cơ cấu GDP nhóm ngành công nghiệp và xây dựng như: Công nghiệp; Khai khoáng; Công nghiệp chế biến, chế tạo; Sản xuất và phân phối ; Cung cấp ; xây dựng.

1.5 Phạm vi nghiên cứu

  • Phạm vi: tại Việt Nam.

1.6 Phương pháp nghiên cứu

  • Phương Pháp Monte Carlo (Monte Carlo Method).

2 CƠ SỞ LÝ THUYẾT

2.1 Lý thuyết các phân phối

2.1.1 Phân phối đều

X ∼ Unif{1, 2, · · · , n} là mô hình đều rời rạc trên tập hợp số tự nhiên từ 1, 2, · · · , n. Hàm P(X = x) = 1/n được gọi là hàm xác suất khối lượng của biến X tại điểm x.

cpp1 <- runif(n = 1000,min = 8,max = 10) #Sinh 1000 biến cpp1 có phân phối đều trong khoảng [8,10]
hist(cpp1, main = "Uniform Distribution", xlab = "ccp1")

summary(cpp1)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   8.002   8.507   8.940   8.970   9.428  10.000

2.1.2 Phân phối chuẩn chính tắc

Phân phối chuẩn tắc (standard normal distribution) là phân phối chuẩn với giá trị trung bình (μ) bằng 0 và độ lệch chuẩn (σ) bằng 1. Phân phối chuẩn còn được gọi là đường cong chuông (bell curve) vì đồ thị của mật độ xác suất có dạng chuông.

cpp2 <- rnorm(100) # Sinh 100 biến cpp2 có phân phối chuẩn trung bình 0 và độ lệch tiêu chuẩn 1
hist(cpp2, main = "Normal Distribution", xlab = "cpp2")

library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.2.3
cpp2 <- as.data.frame(cpp2)
ggplot(cpp2,aes(cpp2)) + geom_density(color='green')

summary(cpp2)
##       cpp2        
##  Min.   :-3.0800  
##  1st Qu.:-0.3985  
##  Median : 0.1689  
##  Mean   : 0.1050  
##  3rd Qu.: 0.6423  
##  Max.   : 3.2206

2.1.3 Phân phối Poisson

Biến ngẫu nhiên X có phân phối Poisson là biến ngẫu nhiên dùng để mô tả cho số lần xảy ra của một sự việc/biến cố (event) mà chúng ta quan tâm xảy ra trong một khoảng thời gian hoặc không gian cho trước.

cpp3 <- rpois(n = 10,lambda = 1.2)
cpp3
##  [1] 0 1 3 1 1 3 0 2 1 1
cpp3 <- table(cpp3)
cpp3 <- as.data.frame(cpp3)
ggplot(cpp3,aes(cpp3,Freq)) + geom_col(fill='red') +
  geom_point() + geom_line(aes(as.integer(cpp3),Freq),color='green')

summary(cpp3)
##  cpp3       Freq     
##  0:1   Min.   :1.00  
##  1:1   1st Qu.:1.75  
##  2:1   Median :2.00  
##  3:1   Mean   :2.50  
##        3rd Qu.:2.75  
##        Max.   :5.00

2.1.4 Phân phối nhị thức

Nếu phép thử Bernoulli được thực hiện lặp lại n lần (độc lập nhau). Khi đó số phép thử thành công X trong n phép thử được thực hiện sẽ tuân theo mô hình nhị thức (binomial model) với hai tham số n và p, ký hiệu X ∼ Binomial(n, p), n ≥ 1, p ∈ (0, 1).

cpp4 <- rbinom(n = 100, size = 15, prob = 0.2)
cpp4 <- table(cpp4)
cpp4 <- as.data.frame(cpp4)
ggplot(cpp4,aes(cpp4,Freq)) + geom_col(fill='red')

summary(cpp4)
##       cpp4        Freq      
##  0      :1   Min.   : 1.00  
##  1      :1   1st Qu.: 4.75  
##  2      :1   Median :12.50  
##  3      :1   Mean   :12.50  
##  4      :1   3rd Qu.:16.50  
##  5      :1   Max.   :31.00  
##  (Other):2

2.1.5 Phân phối siêu bội

Giả sử tổng thể có N phần tử, trong đó có n (n ≤ N) phần tử có dấu hiệu A và (N-n) phần tử có dấu hiệu không A. Lấy ngẫu nhiên một mẫu có kích thước k, k ≤ N. Số phần tử có dấu hiệu A trong mẫu được lấy ra, là một biến ngẫu nhiên có mô hình siêu bội, ký hiệu X ∼ Hypergeometric(N, n, k, x).

cpp5 <- rhyper(nn = 100,m = 100,n = 75,k = 25)
hist(cpp5, main = " Hypergeometric Distribution", xlab = "cpp5")

cpp5 <- as.data.frame(cpp5)
ggplot(cpp5,aes(cpp5)) + geom_density(color='green')

summary(cpp5)
##       cpp5      
##  Min.   : 9.00  
##  1st Qu.:13.00  
##  Median :14.00  
##  Mean   :14.38  
##  3rd Qu.:16.00  
##  Max.   :21.00

2.2 Tổng quan về GDP

2.2.1 Khái niệm

GDP : Đo lường tổng giá trị (tính theo giá thị trường) của tất cả các hàng hóa và dịch vụcuối cùng được tạo ra trong phạm vi lãnh thổ của một quốc gia trong một thời kỳ nhất định(thường là 1 năm).

GDP bao gồm:

  • Hàng hóa, dịch vụ do công dân nước sở tại làm ra ở trong nước

  • Hàng hóa, dịch vụ do người nước ngoài làm ra ở nước sở tại

Nội dung tổng quát của GDP được xét dưới các góc độ khác nhau:

– Xét dưới góc độ sử dụng (chi tiêu): GDP là tổng cầu của nền kinh tế gồm tiêu dùng cuốicùng của hộ dân cư, tiêu dùng cuối cùng của Nhà nước, tích luỹ tài sản và chênh lệch xuấtnhập khẩu hàng hoá và dịch vụ.

– Xét dưới góc độ thu nhập: GDP gồm thu nhập của người lao động từ sản xuất, thuế sảnxuất, khấu hao tài sản cố định dùng cho sản xuất và giá trị thặng dư sản xuất trong kỳ.

– Xét dưới góc độ sản xuất: GDP bằng giá trị sản xuất trừ đi chi phí trung gian.

2.2.2 Ý nghĩa của chỉ số GDP

  • GDP là thước đo để đánh giá tốc độ tăng trưởng kinh tế của một quốc gia và thể hiện sựbiến động của sản phẩm/dịch vụ theo thời gian.

  • Sự suy giảm chỉ số GDP sẽ có tác động xấu đến nền kinh tế và có thể dẫn đến các tìnhtrạng kinh tế suy thoái, lạm phát, thất nghiệp, đồng tiền mất giá… Đây là các tác động xấu,ảnh hưởng trực tiếp đến quá trình sản xuất kinh doanh của các doanh nghiệp cũng như đời sống của người dân.

  • Chỉ số GDP bình quân đầu người sẽ cho bạn biết mức thu nhập tương đối cũng như chấtlượng sống của người dân ở mỗi quốc gia.

2.2.3 Cơ cấu kinh tế ngành

Cơ cấu ngành của nền kinh tế là quan hệ tỷ lệ của tập hợp tất cả các ngành hình thành nên nền kinh tế và các mối quan hệ tương đối ổn định giữa chúng. Cơ cấu ngành là một chỉnh thể liên kết các ngành kinh tế theo một kiểu cấu trúc nhất định,tạo ra những thuộc tính mới, chất lượng mới của hệ thống mà những thuộc tính nàykhông thể có ở từng bộ phận riêng rẽ hợp thành hệ thống; Là tổng thể những mốiquan hệ về số lượng (số lượng ngành, tỷ trọng) và chất lượng giữa các ngành trongnền kinh tế (Phạm Thị Khanh, 2010, trang 12). Việt Nam phân loại ngành kinh tếtheo hướng dẫn phân loại ngành do Liên hiệp quốc ban hành, có thể khái quát thànhba nhóm ngành lớn: 1. Nông – Lâm – Ngư nghiệp; 2. Công nghiệp, xây dựng; 3.Thương mại và dịch vụ.

2.2.4 Những chỉ tiêu phản ánh sự chuyển dịch cơ cấu kinh tế ngành

Đối với quá trình chuyển dịch cơ cấu kinh tế ngành, những chỉ tiêu cơ bản phản ánh sự chuyển dịch bao gồm:

  1. Mức độ thay đổi của cơ cấu GDP

Phân tích sự thay đổi tỷ lệ phần trăm GDP của các ngành nông nghiệp,công nghiệp, và dịch vụ là một trong những tiêu chí đầu tiên thường được dùng để đánh giá quá trình chuyển dịch cơ cấu ngành.

  1. Mức độ thay đổi của cơ cấu lao động

Sự chuyển dịch cơ cấu ngành kinh tế còn được đánh giá qua một chỉ tiêurất quan trọng là cơ cấu lao động đang làm việc trong nền kinh tế được phân bổ nhưthế nào vào các lĩnh vực sản xuất khác nhau.

  1. Mức độ thay đổi của cơ cấu hàng xuất khẩu

Mức độ thay đổi này thường trải qua một quá trình là: từ chỗ chủ yếu sản xuất và xuất khẩu các loại sản phẩm sử dụng nhiều lao động, kỹ thuật thấp như lắp ráp, sản phẩm dệt may, chế biến nông lâm thủy sản… chuyển dần sang các loại sản phẩm sử dụng nhiều lao động trình độ cao, công nghệ kỹ thuật hiện đại như sản phẩm cơ khí chế tạo, hóa chất, điện tử,… Chính vì vậy, sự chuyển dịch cơ cấu hàngxuất khẩu, từ những mặt hàng sơ chế sang những loại sản phẩm chế biến dựa trên cơ sở công nghệ - kỹ thuật cao luôn được xem như một trong những thước đo rất quan trọng đánh giá mức độ thành công của quá trình chuyển dịch cơ cấu kinh tế.

Bên cạnh ba chỉ tiêu chủ yếu trên, một nhóm các chỉ tiêu khác cũngthường được sử dụng để đánh giá tính hiệu quả của cơ cấu kinh tế. Đó là các chỉ sốvề tốc độ tăng trưởng kinh tế, năng suất lao động xã hội, chỉ số ICOR, mức độ tiêuhao năng lượng trên mỗi đơn vị GDP được tạo ra, số lượng việc làm mới được tạo ra,tỷ lệ thất nghiệp, tốc độ giảm nghèo…

2.3 Tình hình cơ cấu GDP của Việt Nam từ 2014-2019

2.3.1 Tình hình tăng trưởng kinh tế của VN giai đoạn 2014-2015.

knitr::include_graphics("D:/HỌC TẬP/Mô phỏng ngẫu nhiên/GDP 2008-2015.png")

Nhìn vào biểu đồ tăng trưởng kinh tế VN theo ngành giai đoạn 2011-2015, ta thấy các số liệu kinh tế tăng trưởng bắt đầu từ năm 2014-2015 có dấu hiệu tăng lên. Tăng trưởng GDP tăng từ 6% đến 7%. Có thể nói đây là một con số khá khiêm tốn nhưng so với những năm trước, đây là một dấu hiệu đáng mừng cho việc kinh tế VN đang trên đà phục hồi và phát triển. Khu vực sản xuất công nghiệp và xây dựng tiếp tục là thành tố quan trọng đóng góp cho sự cải thiện về tốc độ tăng trưởng. Khu vực này đã mở rộng 9,64% trong năm 2015, cao hơn nhiều so với con số 6,42% của năm 2014. Bước vào thời kỳ hồi phục, nông nghiệp không còn là động lực chính cho phát triển của nền kinh tế. Tăng trưởng khu vực này chỉ còn 2,4% trong năm 2015, tháp nhất trong giai đoạn 2011-2015. Trong khi đó, khu vực dịch vụ cũng không có nhiều chuyển biến tích cực khi tăng trưởng năm 2015 chỉ tương đương so với năm 2014 và thấp hơn nhiều so với các năm trước đó.

2.3.2 Tình hình tăng trưởng kinh tế của VN giai đoạn 2015-2017.

knitr::include_graphics("D:/HỌC TẬP/Mô phỏng ngẫu nhiên/GDP 2015-2017.png")

So với năm 2016 tăng trưởng không như kỳ vọng, năm 2017, kinh tế Việt Nam. cho thấy một dấu hiệu khởi sắc hơn với mức tăng trưởng cả năm 2017 đạt 6,81%, vượt chỉ tiêu do Quốc hội đề ra. Trong đó, tăng trưởng quý III và quý IV/2017 đạt mức cao “ấn tượng” lần lượt là 7,46% và 7,65% cao nhất trong vòng 7 năm và cao hơn nhiều so với cùng kỳ các năm trước đó.

Khu vực nông, lâm, ngư nghiệp cho thấy, sự phục hồi rõ lo nhất khi tăng trưởng cả năm đạt 2,90% (cao hơn đáng kể so với mức tăng của hai năm trước đó). Trong khu vực này, ngành thủy sản và lâm nghiệp đạt mức tăng lần lượt là 5,54% và 5,14% Trong khi đó, tình trạng mưa lũ trên diện rộng khiến nông nghiệp chỉ tăng trưởng ở mức khiêm tốn 2,07%.

Khu vực dịch vụ cũng đóng góp lớn vào mức tăng trưởng chung của toàn nền kinh tế, tiếp tục đà tăng trưởng từ năm 2015, với mức tăng 7,44% cả năm 2017. Trong đó, lĩnh vực tài chính, ngân hàng, bảo hiểm và kinh doanh bất động sản năm 2017 đạt mức tăng trưởng cao nhất trong nhiều năm qua, lần lượt đạt 8,14% và 4,07%.

Công nghiệp chế biến chế tạo như mọi năm vẫn luôn là động lực chính thúc đẩy tăng trưởng kinh tế với mức tăng trưởng lên đến 14,40% trong năm 2017. Trong khi đó, toàn khu vực công nghiệp và xây dựng tiếp tục cho thấy, miễn ứng trưởng thấp hơn so với hai năm trước, chỉ đạt 8%, chủ yếu đến từ sự suy giảm ngành khai khoáng. Tuy nhiên, trong năm 2017, sự suy giảm này không làm chậm tốc độ tăng trưởng chung của toàn nền kinh tế.

2.3.3 Tình hình tăng trưởng kinh tế VN giai đoạn 2017-2019.

knitr::include_graphics("D:/HỌC TẬP/Mô phỏng ngẫu nhiên/GDP 10 năm.png")

Nhìn vào biểu đồ tăng trưởng GDP 10 năm gần đây, đặc biệt từ năm 2016-2019, tăng trưởng. GDP có những con số khởi sắc đáng kể. Chi từ mốc 6,21% vào năm 2016, GDP của VN đã vực dậy lên 6.81% và tiếp tục tăng lên cao nhất với 7,02% vào năm 2019, cao nhất so với cùng kì. Sau khi chứng kiến thời kì tăng trưởng GDP mạnh từ 2014 đến 2015 rồi giảm xuống vào năm 2016 là 6,21%, ta được thấy sự tăng trưởng mạnh mẽ vào cuối thời kỳ, cho thấy sự phục hồi rõ rệt của nền kinh tế Việt Nam trong giai đoạn đã nhắc đến.

knitr::include_graphics("D:/HỌC TẬP/Mô phỏng ngẫu nhiên/GDP 2014-2019.png")

Nhìn vào biểu đồ tăng trưởng GDP của giai đoạn 2014-2019, ta thấy nhóm GDP của Công nghiệp và xây dựng có sự gia tăng đáng kể. Từ 5,9% vào năm 2014 tăng đến gần 10% vào năm 2015 rồi dao động không đáng kể đến cuối thời kỳ. Các con số này đã cho ta thấy được chỉ số GDP của ngành này cho thấy những dấu hiệu tích cực của việc đầu tư tăng trưởng kinh tế vào công nghiệp trong thời kì công nghiệp hóa, hiện đại hóa của đất nước. Động lực chính của tăng trưởng kinh tế năm 2019 tiếp tục là ngành công nghiệp chế biến, chế tạo (tăng 11,29%) và các ngành dịch vụ thị trường (như ngành vận tải, kho bãi tăng 9,12%; bán buôn và bán lẻ tăng 8,82%; hoạt động tài chính, ngân hàng và bảo hiểm tăng 8,62%).

Khối ngành dịch vụ dao động chỉ số tăng trưởng GDP từ 6% đến 6,3% trong vòng 5 năm từ 2014 đến 2019. Điều này cho thấy chính phủ đã có những chính sách duy trì sự phát triển của ngành dịch vụ khá tốt và bắt đầu có những chuyển biến tích cực cho kinh tế Việt Nam.

Còn với mức tăng trưởng GDP của ngành nông lâm thủy sản chứng kiến mức giảm rõ rệt trong giai đoạn 2014-2016 từ 1,9% xuống gần như 0,2%. Sau đó tăng mạnh vào năm 2017 là 2,2% trước khi giảm xuống còn 1,9% vào cuối thời kỳ.

Nhìn chung, nền kinh tế VN năm 2014-2019 đang tăng trưởng theo hướng công nghiệp hóa, hiện đại hóa.

3 PHƯƠNG PHÁP VÀ DỮ LIỆU NGHIÊN CỨU

3.1 Mô hình đề xuất

Tổng sản phẩm trong nước là giá trị sản phẩm vật chất và dịch vụ cuối cùng được tạo ra của nền kinh tế trong một khoảng thời gian nhất định (quý, năm). Điều này có nghĩa trong GDP không tính các giá trị sản phẩm vật chất và dịch vụ đã sử dụng ở các khâu trung gian trong quá trình sản xuất tạo ra sản phẩm. GDP biểu thị kết quả sản xuất do các đơn vị thường trú tạo ra trong lãnh thổ kinh tế của một quốc gia.

Theo tiêu chuẩn phân loại ngành của Liên Hợp Quốc, có thể phân loại thành 3 nhóm ngành lớn:

  • Khu vực I: Nông nghiệp, lâm nghiệp và ngư nghiệp.

  • Khu vực II: Công nghiệp, xây dựng

  • Khu vực III: Dịch vụ

  • Cơ cấu ngành công nghiệp nước ta tương đối đa dạng bao gồm: Công nghiệp; khai khoáng; công nghiệp chế biến, chế tạo; sản xuất và phân phối điện, khí đốt, nước nóng, hơi nước và điều hòa không khí; Cung cấp nước, hoạt động quản lý và xử lý rác thải, nước thải; Xây dựng.

Tổng sản phẩm trong nước theo giá hiện hành phân theo nhóm ngành Công nghiệp và xây dựng, công thức tính:

  Tổng sản phẩm trong nước nhóm ngành CNXD  =   Công nghiệp + Khai khoáng + Công nghiệp chế biến, chế tạo + Sản xuất và phân phối điện, khí đốt, nước nóng, hơi nước và điều hòa không khí +  Cung cấp nước, hoạt động quản lý và xử lý rác thải, nước thải + Xây dựng.

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

Hệ thống phổ biến dữ liệu chung tăng cường (e-GDDS) Trang dữ liệu tóm tắt quốc gia (NSDP) – VIỆT NAM http://nsdp.gso.gov.vn/

Dữ liệu gồm 52 quan sát từ quý 1 năm 2010 đến quý 4 năm 2022 gồm 6 biến:

  • CN: Công nghiệp

  • KK: Khai khoáng

  • CNCBCT: Công nghiệp chế biến, chế tạo

  • SXPP: Sản xuất và phân phối điện, khí đốt, nước nóng, hơi nước và điều hòa không khí

  • CC: Cung cấp nước, hoạt động quản lý và xử lý rác thải, nước thải

  • XD: Xây dựng

setwd("D:/HỌC TẬP/Mô phỏng ngẫu nhiên")
library(xlsx)
library(readxl)
## Warning: package 'readxl' was built under R version 4.2.3
library(data.table)
## Warning: package 'data.table' was built under R version 4.2.3
d <- read.xlsx("GDP_MPNN.xlsx",1)
data.table(d)
##         NA.       CN       KK   CNCBCT     SXPP        CC       XD
##  1: Q1 2010 27.80233 7.276075 17.72502 2.396061 0.4051811 5.518612
##  2: Q2 2010 26.75083 6.744417 17.06550 2.518298 0.4226227 6.085374
##  3: Q3 2010 26.97934 6.655979 17.36618 2.516098 0.4410775 6.188818
##  4: Q4 2010 25.52245 6.524900 16.39179 2.153805 0.4519643 7.249104
##  5: Q1 2011 29.69929 7.859633 19.33079 2.136214 0.3726605 5.086161
##  6: Q2 2011 29.79878 8.670915 18.52638 2.218944 0.3825372 5.293760
##  7: Q3 2011 29.26935 6.657590 19.74397 2.433711 0.4340879 5.254924
##  8: Q4 2011 27.80478 8.007136 17.24470 2.072588 0.4803541 6.158234
##  9: Q1 2012 31.43137 7.133887 21.70656 2.191048 0.3998756 4.703270
## 10: Q2 2012 31.89412 8.970369 20.28061 2.242091 0.4010558 5.225348
## 11: Q3 2012 29.68559 6.450603 20.17093 2.618891 0.4451643 5.156563
## 12: Q4 2012 29.25116 7.527098 19.01356 2.198952 0.5115411 6.119646
## 13: Q1 2013 30.76942 6.487755 21.44801 2.416436 0.4172150 4.609639
## 14: Q2 2013 31.39315 7.787355 20.63107 2.552621 0.4221004 5.043063
## 15: Q3 2013 30.67386 6.215322 21.35042 2.661172 0.4469455 4.860839
## 16: Q4 2013 29.15255 6.872262 19.37957 2.400505 0.5002216 5.823399
## 17: Q1 2014 30.51610 6.610706 20.73667 2.739031 0.4296976 4.609448
## 18: Q2 2014 31.05277 7.409740 20.28529 2.926901 0.4308440 4.933733
## 19: Q3 2014 30.47767 6.060404 21.04597 2.924489 0.4468084 4.947560
## 20: Q4 2014 29.00402 6.439169 19.43414 2.613998 0.5167128 5.667065
## 21: Q1 2015 29.23257 4.435080 21.35291 2.986814 0.4577655 4.749028
## 22: Q2 2015 29.45609 4.842444 20.90392 3.249980 0.4597477 5.185735
## 23: Q3 2015 29.64403 4.313458 21.52479 3.328762 0.4770228 5.255187
## 24: Q4 2015 27.01316 3.453826 20.07873 2.928111 0.5524936 6.524618
## 25: Q1 2016 29.07729 3.553725 21.68888 3.351740 0.4829513 4.734969
## 26: Q2 2016 29.03322 3.605723 21.55285 3.412853 0.4617858 5.306063
## 27: Q3 2016 29.37279 3.330322 22.16920 3.394086 0.4791873 5.318349
## 28: Q4 2016 26.97445 2.881695 20.57187 2.973055 0.5478269 6.631873
## 29: Q1 2017 29.17387 3.735911 21.48111 3.489877 0.4669709 4.711940
## 30: Q2 2017 29.56666 3.421134 22.23031 3.446898 0.4683159 5.381099
## 31: Q3 2017 30.68682 3.192556 23.42899 3.588540 0.4767325 5.427479
## 32: Q4 2017 29.72389 2.842052 23.19806 3.151522 0.5322520 6.659747
## 33: Q1 2018 30.47793 4.029690 22.41827 3.557580 0.4723820 4.800841
## 34: Q2 2018 30.59450 3.601389 22.81979 3.690668 0.4826517 5.609320
## 35: Q3 2018 31.93339 3.395256 24.61641 3.427264 0.4944588 5.638618
## 36: Q4 2018 30.31750 3.105171 23.47818 3.197829 0.5363122 6.626978
## 37: Q1 2019 30.68016 3.463981 22.83401 3.900762 0.4814111 4.839561
## 38: Q2 2019 30.96742 3.146650 23.46250 3.871339 0.4869268 5.669476
## 39: Q3 2019 32.18733 2.937786 24.93589 3.806626 0.5070302 5.760281
## 40: Q4 2019 29.97142 2.528621 23.79019 3.120956 0.5316565 6.978980
## 41: Q1 2020 30.34627 2.901958 22.88656 4.074066 0.4836864 4.908820
## 42: Q2 2020 30.11332 2.624843 22.77702 4.204425 0.5070250 5.918180
## 43: Q3 2020 31.76856 2.190370 24.95579 4.102598 0.5197984 5.890936
## 44: Q4 2020 30.67356 1.974749 24.88840 3.310571 0.4998360 7.065943
## 45: Q1 2021 30.57364 2.821993 23.22615 4.048846 0.4766484 4.908126
## 46: Q2 2021 31.35697 2.641854 23.97584 4.217828 0.5214420 5.870273
## 47: Q3 2021 32.86119 2.458709 25.44723 4.423421 0.5318323 6.055922
## 48: Q4 2021 31.28222 1.920831 25.62377 3.263171 0.4744490 6.854210
## 49: Q1 2022 32.02314 3.092619 24.21416 4.242842 0.4735109 5.054937
## 50: Q2 2022 32.81631 3.197458 24.98466 4.130962 0.5032227 6.050760
## 51: Q3 2022 32.78072 2.844548 25.02685 4.407470 0.5018547 6.490710
## 52: Q4 2022 30.79383 2.243662 24.76535 3.311026 0.4737833 6.989623
##         NA.       CN       KK   CNCBCT     SXPP        CC       XD

4 XÁC ĐỊNH PHÂN PHỐI CỦA CÁC BIẾN ĐẦU VÀO

4.1 Biến Công nghiệp

4.1.1 Đồ thị

CN <- d$CN
KK <- d$KK
CNCBCT <- d$CNCBCT
SXPP <- d$SXPP
CC <- d$CC
XD <- d$XD
hist(CN, col = 'pink')

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

Kiểm định Shapiro-Wilk Test

Giả thuyết:

\(H_0\): CN tuân theo phân phối chuẩn

\(H_1\): CN không tuân theo phân phối chuẩn

shapiro.test(CN)
## 
##  Shapiro-Wilk normality test
## 
## data:  CN
## W = 0.9569, p-value = 0.05749

Kết quả kiểm định cho thấy p- value = 0,05749 > 0,05 nên chưa đủ cơ sở bác bỏ \(H_0\). Vậy CN tuân theo phân phối chuẩn.

library(ggplot2)
d |> ggplot() +
  geom_qq(aes(sample = CN), color = 'red') +
  geom_qq_line(aes(sample = CN), color = 'green')

4.2 Biến Khai khoáng

4.2.1 Đồ thị

library(fBasics)
## Warning: package 'fBasics' was built under R version 4.2.3
basicStats(KK)
##                     KK
## nobs         52.000000
## NAs           0.000000
## Minimum       1.920831
## Maximum       8.970369
## 1. Quartile   2.928829
## 3. Quartile   6.622025
## Mean          4.674834
## Median        3.603556
## Sum         243.091381
## SE Mean       0.288557
## LCL Mean      4.095532
## UCL Mean      5.254137
## Variance      4.329790
## Stdev         2.080815
## Skewness      0.457590
## Kurtosis     -1.327147
hist(KK, col = 'pink')

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

  • Kiểm định Shapiro-Wilk Test

Giả thuyết:

\(H_0\): KK tuân theo phân phối chuẩn

\(H_1\): KK không tuân theo phân phối chuẩn

shapiro.test(KK)
## 
##  Shapiro-Wilk normality test
## 
## data:  KK
## W = 0.88306, p-value = 0.0001037

Kết quả kiểm định cho thấy p- value = 0,0001037 < 0,05 nên ta bác bỏ \(H_0\). Vậy KK không tuân theo phân phối chuẩn.

library(ggplot2)
d |> ggplot() +
  geom_qq(aes(sample = KK), color = 'red') +
  geom_qq_line(aes(sample = KK), color = 'green')

  • Kiểm định Kolmogorov-Smirnov (KS)

Giả thuyết

\(H_0\): KK tuân theo phân phối mũ

\(H_1\): KK không tuân theo phân phối mũ

ks.test(KK, y = 'pexp')
## 
##  Exact one-sample Kolmogorov-Smirnov test
## 
## data:  KK
## D = 0.85351, p-value < 2.2e-16
## alternative hypothesis: two-sided

Kết quả kiểm định cho thấy p- value < 0,05 nên ta bác bỏ \(H_0\). Vậy KK không tuân theo phân phối mũ.

ks.test(KK, y = 'plnorm')
## 
##  Exact one-sample Kolmogorov-Smirnov test
## 
## data:  KK
## D = 0.74504, p-value < 2.2e-16
## alternative hypothesis: two-sided

Kết quả kiểm định cho thấy p- value < 0,05 nên ta bác bỏ \(H_0\). Vậy KK không tuân theo phân phối loga chuẩn.

4.3 Biến Công nghiệp chế biến, chế tạo

4.3.1 Đồ thị

hist(CNCBCT, col = 'pink')

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

  • Kiểm định Shapiro-Wilk Test

Giả thuyết:

\(H_0\): CNCBCT tuân theo phân phối chuẩn

\(H_1\): CNCBCT không tuân theo phân phối chuẩn

shapiro.test(CNCBCT)
## 
##  Shapiro-Wilk normality test
## 
## data:  CNCBCT
## W = 0.96832, p-value = 0.1791

Kết quả kiểm định cho thấy p- value = 0,1791 > 0,05 nên chưa đủ cơ sở bác bỏ \(H_0\). Vậy CNCBCT tuân theo phân phối chuẩn.

library(ggplot2)
d |> ggplot() +
  geom_qq(aes(sample = CNCBCT), color = 'red') +
  geom_qq_line(aes(sample = CNCBCT), color = 'green')

4.4 Biến Sản xuất và phân phối điện, khí đốt, nước nóng, hơi nước và điều hòa không khí

4.4.1 Đồ thị

library(fBasics)
basicStats(SXPP)
##                   SXPP
## nobs         52.000000
## NAs           0.000000
## Minimum       2.072588
## Maximum       4.423421
## 1. Quartile   2.544040
## 3. Quartile   3.614072
## Mean          3.164314
## Median        3.223905
## Sum         164.544342
## SE Mean       0.095360
## LCL Mean      2.972872
## UCL Mean      3.355757
## Variance      0.472860
## Stdev         0.687648
## Skewness      0.125870
## Kurtosis     -1.158070
hist(SXPP, col = 'pink')

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

  • Kiểm định Shapiro-Wilk Test

Giả thuyết:

\(H_0\): SXPP tuân theo phân phối chuẩn

\(H_1\): SXPP không tuân theo phân phối chuẩn

shapiro.test(SXPP)
## 
##  Shapiro-Wilk normality test
## 
## data:  SXPP
## W = 0.9534, p-value = 0.04065

` Kết quả kiểm định cho thấy p- value = 0,04065 < 0,05 nên ta bác bỏ \(H_0\). Vậy SXPP không tuân theo phân phối chuẩn.

library(ggplot2)
d |> ggplot() +
  geom_qq(aes(sample = SXPP), color = 'red') +
  geom_qq_line(aes(sample = SXPP), color = 'green')

  • Kiểm định Kolmogorov-Smirnov (KS)

Giả thuyết

\(H_0\): SXPP tuân theo phân phối mũ

\(H_1\): SXPP không tuân theo phân phối mũ

ks.test(SXPP, y = 'pexp')
## 
##  Exact one-sample Kolmogorov-Smirnov test
## 
## data:  SXPP
## D = 0.87414, p-value < 2.2e-16
## alternative hypothesis: two-sided

Kết quả kiểm định cho thấy p- value < 0,05 nên ta bác bỏ \(H_0\). Vậy SXPP không tuân theo phân phối mũ.

ks.test(SXPP, y = 'plnorm')
## 
##  Exact one-sample Kolmogorov-Smirnov test
## 
## data:  SXPP
## D = 0.76694, p-value < 2.2e-16
## alternative hypothesis: two-sided

Kết quả kiểm định cho thấy p- value < 0,05 nên ta bác bỏ \(H_0\). Vậy SXPP không tuân theo phân phối loga chuẩn.

4.5 Biến Cung cấp nước, hoạt động quản lý và xử lý rác thải, nước thải

4.5.1 Đồ thị

hist(CC, col = 'pink')

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

  • Kiểm định Shapiro-Wilk Test

Giả thuyết:

\(H_0\): CC tuân theo phân phối chuẩn

\(H_1\): CC không tuân theo phân phối chuẩn

shapiro.test(CC)
## 
##  Shapiro-Wilk normality test
## 
## data:  CC
## W = 0.98178, p-value = 0.6039

Kết quả kiểm định cho thấy p- value = 0,6039 > 0,05 nên chưa đủ cơ sở bác bỏ \(H_0\). Vậy CC tuân theo phân phối chuẩn.

library(ggplot2)
d |> ggplot() +
  geom_qq(aes(sample = CC), color = 'red') +
  geom_qq_line(aes(sample = CC), color = 'green')

4.6 Biến Xây dựng

4.6.1 Đồ thị

library(fBasics)
basicStats(XD)
##                     XD
## nobs         52.000000
## NAs           0.000000
## Minimum       4.609448
## Maximum       7.249104
## 1. Quartile   5.019187
## 3. Quartile   6.093942
## Mean          5.623137
## Median        5.473046
## Sum         292.403139
## SE Mean       0.102082
## LCL Mean      5.418199
## UCL Mean      5.828076
## Variance      0.541879
## Stdev         0.736124
## Skewness      0.515979
## Kurtosis     -0.863092
hist(XD, col = 'pink')

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

  • Kiểm định Shapiro-Wilk Test

Giả thuyết:

\(H_0\): XD tuân theo phân phối chuẩn

\(H_1\): XD không tuân theo phân phối chuẩn

shapiro.test(XD)
## 
##  Shapiro-Wilk normality test
## 
## data:  XD
## W = 0.93825, p-value = 0.009511

Kết quả kiểm định cho thấy p- value = 0,009511 < 0,05 nên ta bác bỏ \(H_0\). Vậy XD không tuân theo phân phối chuẩn.

library(ggplot2)
d |> ggplot() +
  geom_qq(aes(sample = XD), color = 'red') +
  geom_qq_line(aes(sample = XD), color = 'green')

  • Kiểm định Kolmogorov-Smirnov (KS)

Giả thuyết

\(H_0\): XD tuân theo phân phối mũ

\(H_1\): XD không tuân theo phân phối mũ

ks.test(XD, y = 'pexp')
## 
##  Exact one-sample Kolmogorov-Smirnov test
## 
## data:  XD
## D = 0.99004, p-value < 2.2e-16
## alternative hypothesis: two-sided

Kết quả kiểm định cho thấy p- value < 0,05 nên ta bác bỏ \(H_0\). Vậy XD không tuân theo phân phối mũ.

ks.test(XD, y = 'plnorm')
## 
##  Exact one-sample Kolmogorov-Smirnov test
## 
## data:  XD
## D = 0.93676, p-value < 2.2e-16
## alternative hypothesis: two-sided

Kết quả kiểm định cho thấy p- value < 0,05 nên ta bác bỏ \(H_0\). Vậy XD không tuân theo phân phối loga chuẩn.

5 KẾT QUẢ MÔ PHỎNG

5.1 Mô phỏng các biến đầu vào

5.1.1 Biến Công nghiệp

library(fBasics)
basicStats(d$CN)
##                 X..d.CN
## nobs          52.000000
## NAs            0.000000
## Minimum       25.522454
## Maximum       32.861191
## 1. Quartile   29.246508
## 3. Quartile   30.988757
## Mean          30.046214
## Median        30.331883
## Sum         1562.403123
## SE Mean        0.223032
## LCL Mean      29.598458
## UCL Mean      30.493970
## Variance       2.586659
## Stdev          1.608309
## Skewness      -0.602237
## Kurtosis       0.213309
# Công nghiệp 
cn <- rnorm(10000, mean = 30.046214, sd = 1.608309)
hist(cn)

5.1.2 Biến Công nghiệp chế biến, chế tạo

library(fBasics)
basicStats(d$CNCBCT)
##             X..d.CNCBCT
## nobs          52.000000
## NAs            0.000000
## Minimum       16.391785
## Maximum       25.623769
## 1. Quartile   20.253186
## 3. Quartile   23.466423
## Mean          21.734342
## Median        21.620866
## Sum         1130.185762
## SE Mean        0.331439
## LCL Mean      21.068951
## UCL Mean      22.399732
## Variance       5.712282
## Stdev          2.390038
## Skewness      -0.309763
## Kurtosis      -0.730576
# Công nghiệp chế biến, chế tạo 
cb <- rnorm(10000, mean = 21.734342, sd = 2.390038)
hist(cb)

5.1.3 Biến Cung cấp nước, hoạt động quản lý và xử lý rác thải, nước thải

library(fBasics)
basicStats(d$CC)
##               X..d.CC
## nobs        52.000000
## NAs          0.000000
## Minimum      0.372661
## Maximum      0.552494
## 1. Quartile  0.446397
## 3. Quartile  0.502197
## Mean         0.472724
## Median       0.476690
## Sum         24.581638
## SE Mean      0.005888
## LCL Mean     0.460903
## UCL Mean     0.484544
## Variance     0.001803
## Stdev        0.042458
## Skewness    -0.294518
## Kurtosis    -0.494198
# Cung cấp nước, hoạt động quản lý và xử lý rác thải, nước thải 
cc <- rnorm(10000, mean = 0.472724, sd = 0.042458)
hist(cc)

5.1.4 Biến Khai khoáng

library(dplyr)
## Warning: package 'dplyr' was built under R version 4.2.3
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:data.table':
## 
##     between, first, last
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
n_bins <- 10
breaks <- quantile(d$KK, probs = seq(0, 1, length.out = n_bins + 1), type = 1, na.rm = TRUE)

kkg <- sapply(2:length(breaks), function(i) sample(d$KK[d$KK >= breaks[i - 1] & d$KK <= breaks[i]], 10, replace = TRUE))

K <- table(kkg)

Kk <- as.data.frame(K) %>%
  mutate(Tan_suat = Freq / sum(Freq))
Kk
##                 kkg Freq Tan_suat
## 1  1.92083072355096    2     0.02
## 2  1.97474913117254    2     0.02
## 3  2.19037016484278    2     0.02
## 4  2.24366243785466    2     0.02
## 5  2.52862056159668    5     0.05
## 6  2.62484344167525    1     0.01
## 7  2.64185419294828    1     0.01
## 8  2.82199267200874    2     0.02
## 9  2.84205178770792    3     0.03
## 10 2.84454830489354    5     0.05
## 11 2.88169508218852    1     0.01
## 12 2.93778579138361    2     0.02
## 13 3.09261934876639    1     0.01
## 14 3.10517103176282    3     0.03
## 15 3.14664992520624    2     0.02
## 16 3.19745821238171    1     0.01
## 17 3.33032150313402    2     0.02
## 18 3.39525603420142    5     0.05
## 19 3.42113440645587    1     0.01
## 20 3.46398112064342    3     0.03
## 21 3.55372534567234    1     0.01
## 22 3.60138947622404    3     0.03
## 23 3.60572294915913    1     0.01
## 24 3.73591123782747    6     0.06
## 25 4.31345833990272    1     0.01
## 26 4.43507972706516    2     0.02
## 27 4.84244445505115    2     0.02
## 28 6.21532187544485    4     0.04
## 29 6.45060306543078    1     0.01
## 30 6.48775540590923    4     0.04
## 31 6.52489964192492    1     0.01
## 32 6.61070647937773    4     0.04
## 33 6.65597943580786    1     0.01
## 34 6.65758990825106    3     0.03
## 35 6.74441653045645    3     0.03
## 36 6.87226183056873    3     0.03
## 37 7.27607503110032    1     0.01
## 38 7.40973976407404    2     0.02
## 39 7.52709766389301    2     0.02
## 40 7.85963287752904    5     0.05
## 41 8.67091503086552    3     0.03
## 42 8.97036938810019    1     0.01
# Khai khoáng 
prob1 <- Kk$Tan_suat
khaikhoang1 <- sample(Kk$kkg, 10000, replace = TRUE , prob = prob1)
khaikhoang2 <-  as.character(khaikhoang1)
kk <- as.numeric(khaikhoang2)
hist(kk)

5.1.5 Biến Sản xuất và phân phối điện, khí đốt, nước nóng, hơi nước và điều hòa không khí

library(dplyr)
n_bins <- 10
breaks <- quantile(d$SXPP, probs = seq(0, 1, length.out = n_bins + 1), type = 1, na.rm = TRUE)

sx <- sapply(2:length(breaks), function(i) sample(d$SXPP[d$SXPP >= breaks[i - 1] & d$SXPP <= breaks[i]], 10, replace = TRUE))

S <- table(sx)

Sx <- as.data.frame(S) %>%
  mutate(Tan_suat = Freq / sum(Freq))

Sx
##                  sx Freq Tan_suat
## 1  2.07258757256233    1     0.01
## 2  2.13621413312328    2     0.02
## 3  2.15380480044362    1     0.01
## 4  2.19104826362534    1     0.01
## 5  2.19895231629668    2     0.02
## 6  2.21894399118426    5     0.05
## 7  2.39606075386324    2     0.02
## 8  2.41643557297172    3     0.03
## 9  2.43371067088471    4     0.04
## 10 2.51609754688072    3     0.03
## 11 2.55262124062935    3     0.03
## 12 2.61889137813463    5     0.05
## 13 2.66117191348481    1     0.01
## 14 2.73903133769287    3     0.03
## 15 2.92811096947551    5     0.05
## 16 2.97305489385597    2     0.02
## 17 2.98681368388827    3     0.03
## 18 3.12095626761687    4     0.04
## 19 3.19782920657643    2     0.02
## 20 3.24997986364639    1     0.01
## 21 3.26317077436855    1     0.01
## 22 3.31057120569083    2     0.02
## 23 3.31102608845456    2     0.02
## 24 3.32876151068537    1     0.01
## 25 3.35173993702559    1     0.01
## 26 3.39408641098406    2     0.02
## 27 3.41285302107156    1     0.01
## 28 3.42726380961728    5     0.05
## 29 3.44689779613138    2     0.02
## 30 3.48987650424477    1     0.01
## 31 3.55758040201798    3     0.03
## 32 3.58853953069416    2     0.02
## 33 3.69066752906663    2     0.02
## 34 3.80662598727375    1     0.01
## 35  3.8713393839475    1     0.01
## 36 3.90076233030699    2     0.02
## 37 4.04884601252283    3     0.03
## 38 4.07406596990505    1     0.01
## 39 4.10259846919176    1     0.01
## 40 4.13096207790727    7     0.07
## 41 4.20442527948733    2     0.02
## 42 4.21782829225471    1     0.01
## 43 4.24284247686347    1     0.01
## 44 4.40747024247083    2     0.02
# Sản xuất và phân phối điện, khí đốt, nước nóng, hơi nước và điều hòa không khí 
prob2 <- Sx$Tan_suat
sanxuat1 <- sample(Sx$sx, 10000, replace = TRUE , prob = prob2)
sanxuat2 <-  as.character(sanxuat1)
sxpp <- as.numeric(sanxuat2)
hist(sxpp)

5.1.6 Biến Xây dựng

library(dplyr)
n_bins <- 10
breaks <- quantile(d$XD, probs = seq(0, 1, length.out = n_bins + 1), type = 1, na.rm = TRUE)

xaydung <- sapply(2:length(breaks), function(i) sample(d$XD[d$XD >= breaks[i - 1] & d$XD <= breaks[i]], 10, replace = TRUE))

X <- table(xaydung)

Xd <- as.data.frame(X) %>%
  mutate(Tan_suat = Freq / sum(Freq))
Xd
##             xaydung Freq Tan_suat
## 1  4.60944800824035    2     0.02
## 2  4.60963901748547    3     0.03
## 3  4.70326981177233    1     0.01
## 4  4.71193988910874    1     0.01
## 5  4.74902765309405    6     0.06
## 6   4.8008409503509    3     0.03
## 7  4.83956113499323    2     0.02
## 8  4.86083870371692    1     0.01
## 9  4.90881998434628    2     0.02
## 10 4.93373262353868    2     0.02
## 11 4.94755979332598    3     0.03
## 12  5.0549374862877    3     0.03
## 13 5.08616054360378    4     0.04
## 14 5.18573466785971    2     0.02
## 15 5.22534845930231    3     0.03
## 16 5.25492422210561    1     0.01
## 17 5.25518659722746    3     0.03
## 18 5.30606260262954    1     0.01
## 19 5.31834866586471    3     0.03
## 20 5.38109898873241    3     0.03
## 21 5.42747907348727    1     0.01
## 22  5.5186119455827    3     0.03
## 23 5.63861799100156    3     0.03
## 24 5.66706530705024    1     0.01
## 25 5.76028099735905    6     0.06
## 26 5.82339872880876    2     0.02
## 27 5.87027302648059    4     0.04
## 28 5.91818006317723    1     0.01
## 29 6.05075983543772    3     0.03
## 30 6.05592220052127    1     0.01
## 31 6.08537412367017    4     0.04
## 32 6.15823362860776    2     0.02
## 33 6.18881802299602    1     0.01
## 34 6.49071000149057    1     0.01
## 35 6.52461790009741    1     0.01
## 36 6.62697776316361    2     0.02
## 37 6.63187296744266    4     0.04
## 38 6.65974654307538    2     0.02
## 39   6.854209648257    2     0.02
## 40 6.97898022102724    1     0.01
## 41 7.06594290519492    2     0.02
## 42 7.24910423600482    4     0.04
# Xây dựng
prob3 <- Xd$Tan_suat
xaydung1 <- sample(Xd$xaydung, 10000, replace = TRUE , prob = prob3)
xaydung2 <-  as.character(xaydung1)
xd <- as.numeric(xaydung2)
hist(xd)

5.2 Kết quả

# Cơ cấu GDP nhóm công nghiệp và xây dựng 

GDP <- cn + kk + cb + sxpp + cc + xd 

hist(GDP)

summary(GDP)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   53.50   63.08   65.57   65.61   68.09   79.52

Giá trị trung bình của cơ cấu GDP nhóm ngành công nghiệp và xây dựng tại Việt Nam là 65,28%. Trong dữ liệu gốc, vào quý 4 năm 2022 giá trị này là 68,57%. Tác giả tiến hành phân GDP vừa mô phỏng được làm 2 đoạn là tăng và giảm.

GDPgiam <- GDP[GDP <= 68.57]
GDPtang <- GDP[GDP > 68.57]

table(cut(GDP, breaks= c(0, 68.57, 100), labels = c('giam','tang')))
## 
## giam tang 
## 7862 2138
length(GDPgiam)/length(GDP)
## [1] 0.7862
length(GDPtang)/length(GDP)
## [1] 0.2138

Dựa vào kết quả mô phỏng với 10000 quan sát, xác suất để cơ cấu GDP nhóm ngành công nghiệp và xây dựng tăng so với quý 4 năm 2022 là 22,3% và xác suất để cơ cấu GDP nhóm ngành công nghiệp và xây dựng giảm so với quý 4 năm 2022 là 77,7%.

GDPtangit <- GDPtang[GDPtang <= 70]
GDPtangvua <- GDPtang[GDPtang > 70 & GDPtang <= 75]
GDPtangcao <- GDPtang[GDPtang > 75]

length(GDPtangit)/length(GDP)
## [1] 0.0922
length(GDPtangvua)/length(GDP)
## [1] 0.1159
length(GDPtangcao)/length(GDP)
## [1] 0.0057

Xác suất để cơ cấu GDP nhóm ngành công nghiệp và xây dựng tăng ít khoảng (68,57 ; 70] là 9,82% ; xác suất GDP tăng vừa khoảng (70,75] là 11,75% và xác suất GDP tăng cao khoảng (75,100] là 0,73%.

GDPgiamnhieu <- GDPgiam[GDPgiam <= 60]
GDPgiamvua <- GDPgiam[GDPgiam > 60 & GDPgiam <= 65]
GDPgiamit <- GDPgiam[GDPgiam > 65]

length(GDPgiamit)/length(GDP)
## [1] 0.3464
length(GDPgiamvua)/length(GDP)
## [1] 0.3758
length(GDPgiamnhieu)/length(GDP)
## [1] 0.064

Xác suất để cơ cấu GDP nhóm ngành công nghiệp và xây dựng giảm ít khoảng (65 ; 68,57] là 35,14% ; xác suất GDP giảm vừa khoảng (60,65] là 36,78% và xác suất GDP giảm nhiều khoảng (0,60] là 5,78%.

6 KẾT LUẬN

Bài tiểu luận đã tận dụng phương pháp mô phỏng Monte Carlo để tạo ra các kịch bản khả thi về cơ cấu GDP trong các nhóm ngành công nghiệp và xây dựng của Việt Nam, trong khoảng thời gian từ quý 1 năm 2010 đến quý 4 năm 2022. Kết quả của nghiên cứu đã mang lại những thông tin quan trọng về xu hướng phát triển trong tương lai.

Cụ thể, kết quả mô phỏng đã cho thấy khả năng cơ cấu GDP nhóm ngành công nghiệp và xây dựng tăng lên so với quý 4 năm 2022 là 22,3% và xác suất để cơ cấu GDP nhóm ngành công nghiệp và xây dựng giảm so với quý 4 năm 2022 là 77,7%. Điều này đưa ra cảnh báo về một tương lai có thể đối mặt với những biến đổi trong cơ cấu kinh tế, và việc phải đảm bảo rằng các biện pháp thích hợp được đưa ra để ứng phó với các thay đổi tiềm năng.

Như vậy, bài tiểu luận không chỉ giới thiệu một phương pháp mô phỏng quan trọng để dự báo cơ cấu GDP trong tương lai một cách linh hoạt, mà còn mang lại những kết quả quan trọng về khả năng tăng trưởng trong cơ cấu GDP nhóm ngành công nghiệp và xây dựng của nền kinh tế Việt Nam. Điều này có thể giúp các nhà quản lý và người định hình chính sách có cái nhìn toàn diện hơn về các xu hướng kinh tế và hướng dẫn quyết định của họ trong tương lai.

LS0tDQp0aXRsZTogTcO0IHBo4buPbmcgY8OhYyB54bq/dSB04buRIGPhuqV1IHRow6BuaCBjxqEgY+G6pXUgR0RQIG5ow7NtIG5nw6BuaCBjw7RuZyBuZ2hp4buHcCB2w6AgeMOieSBk4buxbmcNCiAgY+G7p2EgVmnhu4d0IE5hbQ0KYXV0aG9yOiAiQ2FvIFBo4bqhbSBI4bqxbmciDQpkYXRlOiAiMjAyMy0wNy0zMSINCm91dHB1dDoNCiAgaHRtbF9kb2N1bWVudDoNCiAgICB0b2M6IHllcw0KICAgIHRvY19kZXB0aDogNQ0KICAgIHRvY19mbG9hdDogeWVzDQogICAgbnVtYmVyX3NlY3Rpb25zOiB5ZXMNCiAgICBjb2RlX2ZvbGRpbmc6IGhpZGUNCiAgICBjb2RlX2Rvd25sb2FkOiB5ZXMNCiAgd29yZF9kb2N1bWVudDoNCiAgICB0b2M6IHllcw0KICAgIHRvY19kZXB0aDogJzUnDQogIHBkZl9kb2N1bWVudDoNCiAgICB0b2M6IHllcw0KICAgIHRvY19kZXB0aDogJzUnDQotLS0NCmBgYHtyIHNldHVwLCBpbmNsdWRlPUZBTFNFfQ0Ka25pdHI6Om9wdHNfY2h1bmskc2V0KGVjaG8gPSBUUlVFKQ0KYGBgDQoNCkLhu5kgZOG7ryBsaeG7h3U6IDxodHRwczovL2RvY3MuZ29vZ2xlLmNvbS9zcHJlYWRzaGVldHMvZC8xeDlUeEQ3bFpmNnJLR29sRlVrR3N1dk9ZdW5PNXdyWGgvZWRpdD91c3A9c2hhcmluZyZvdWlkPTEwODYyMzE2Mjg3NDgyNDUxMTU4MSZydHBvZj10cnVlJnNkPXRydWU+DQoNCkZpbGUgUERGIGLDoGkgbHXhuq1uOiA8aHR0cHM6Ly9kcml2ZS5nb29nbGUuY29tL2ZpbGUvZC8xOUczMDRZNklpVUxNSXZmbXRUVFFFcU5wQm5NU2k3dHovdmlldz91c3A9c2hhcmluZz4NCg0KIyBN4bueIMSQ4bqmVSANCg0KIyMgTMOtIGRvIGNo4buNbiDEkeG7gSB0w6BpIA0KDQpUaGVvIELhu5kgQ8O0bmcgVGjGsMahbmcsIHRyb25nIDEwIG7Eg20gKDIwMTEtMjAyMCksIGPDtG5nIG5naGnhu4dwIGzDoCBuZ8OgbmggY8OzIHThu5FjIMSR4buZIHTEg25nIHRyxrDhu59uZyBjYW8gbmjhuqV0IHRyb25nIGPDoWMgbmfDoG5oIGtpbmggdOG6vyBxdeG7kWMgZMOibiB24bubaSDEkcOzbmcgZ8OzcCB44bqlcCB44buJIDMwJSB2w6BvIEdEUCB2w6AgdHLhu58gdGjDoG5oIG5nw6BuaCB4deG6pXQga2jhuql1IGNo4bunIGzhu7FjIGPhu6dhIMSR4bqldCBuxrDhu5tjLCBnw7NwIHBo4bqnbiDEkcawYSBWaeG7h3QgTmFtIHThu6sgduG7iyB0csOtIHRo4bupIDUwIChuxINtIDIwMTApIGzDqm4gduG7iyB0csOtIHRo4bupIDIyIChuxINtIDIwMTkpIHRyb25nIGPDoWMgcXXhu5FjIGdpYSB4deG6pXQga2jhuql1IGzhu5tuIG5o4bqldCB0aOG6vyBnaeG7m2kuIA0KDQpC4buZIEPDtG5nIFRoxrDGoW5nIMSR4bq3dCByYSBt4bulYyB0acOqdSDEkeG6v24gbsSDbSAyMDMwIFZp4buHdCBOYW0gbMOgIG7GsOG7m2MgY8OzIGPDtG5nIG5naGnhu4dwIGhp4buHbiDEkeG6oWksIHRodeG7mWMgbmjDs20gcXXhu5FjIGdpYSBjw7MgbsSDbmcgbOG7sWMgY+G6oW5oIHRyYW5oIGPDtG5nIG5naGnhu4dwIGNhbywgbmjDs20gMTUgcXXhu5FjIGdpYSB4deG6pXQga2jhuql1IGzhu5tuIG5o4bqldCB0aOG6vyBnaeG7m2kuIA0KDQpOaOG6rW4gdGjhuqV5IHRp4buBbSBuxINuZyB0xINuZyB0csaw4bufbmcga2luaCB04bq/IFZp4buHdCBOYW0gcGjhu6UgdGh14buZYyBuaGnhu4F1IHbDoG8gbmjDs20gbmfDoG5oIEPDtG5nIG5naGnhu4dwIHbDoCB4w6J5IGThu7FuZywgdMOhYyBnaeG6oyBxdXnhur90IMSR4buLbmggdGnhur9uIGjDoG5oIG3DtCBwaOG7j25nIGPDoWMgeeG6v3UgdOG7kSBj4bqldSB0aMOgbmggbmjDs20gbmfDoG5oIG7DoHkgbmjGsDogQ8O0bmcgbmdoaeG7h3A7IEtoYWkga2hvw6FuZzsgQ8O0bmcgbmdoaeG7h3AgY2jhur8gYmnhur9uLCBjaOG6vyB04bqhbzsgU+G6o24geHXhuqV0IHbDoCBwaMOibiBwaOG7kWkgOyBDdW5nIGPhuqVwIDsgeMOieSBk4buxbmcuDQoNCiMjIE3hu6VjIHRpw6p1IG5naGnDqm4gY+G7qXUgDQotIE3hu6VjIHRpw6p1IGNodW5nOiB4ZW0geMOpdCBz4buxIHTEg25nIHRyxrDhu59uZyBjxqEgY+G6pXUgR0RQIG5ow7NtIG5nw6BuaCBjw7RuZyBuZ2hp4buHcCB2w6AgeMOieSBk4buxbmcgdHJvbmcgdMawxqFuZyBsYWkuIA0KDQotIE3hu6VjIHRpw6p1IGPhu6UgdGjhu4M6IMSRw6FuaCBnacOhIGPDoWMgeeG6v3UgdOG7kSB0cm9uZyBuaMOzbSBuZ8OgbmggY8O0bmcgbmdoaeG7h3AgdsOgIHjDonkgZOG7sW5nIHTEg25nIHRyxrDhu59uZyBuaMawIHRo4bq/IG7DoG8uIMSQ4buBIHJhIGPDoWMgZ2nhuqNpIHBow6FwIG5o4bqxbSBraGFpIHRow6FjIHThu5FpIMawdSB0aeG7gW0gbsSDbmcsIGfDs3AgcGjhuqduIGzDoG0gdMSDbmcgdHLGsOG7n25nIG7hu4FuIGtpbmggdOG6vyBuxrDhu5tjIG5ow6AuDQoNCg0KIyMgxJDhu5FpIHTGsOG7o25nLCBwaOG6oW0gduG7iyBuZ2hpw6puIGPhu6l1IA0KIyMgxJDhu5FpIHTGsOG7o25nIG5naGnDqm4gY+G7qXUgDQoNCi0gTcO0IHBo4buPbmcgY8OhYyB54bq/dSB04buRIGPhuqV1IHRow6BuaCBjxqEgY+G6pXUgR0RQIG5ow7NtIG5nw6BuaCBjw7RuZyBuZ2hp4buHcCB2w6AgeMOieSBk4buxbmcgbmjGsDogQ8O0bmcgbmdoaeG7h3A7IEtoYWkga2hvw6FuZzsgQ8O0bmcgbmdoaeG7h3AgY2jhur8gYmnhur9uLCBjaOG6vyB04bqhbzsgU+G6o24geHXhuqV0IHbDoCBwaMOibiBwaOG7kWkgOyBDdW5nIGPhuqVwIDsgeMOieSBk4buxbmcuDQoNCiMjIFBo4bqhbSB2aSBuZ2hpw6puIGPhu6l1IA0KLSBQaOG6oW0gdmk6IHThuqFpIFZp4buHdCBOYW0uDQoNCiMjIFBoxrDGoW5nIHBow6FwIG5naGnDqm4gY+G7qXUgDQotIFBoxrDGoW5nIFBow6FwIE1vbnRlIENhcmxvIChNb250ZSBDYXJsbyBNZXRob2QpLg0KDQoNCg0KIyBDxqAgU+G7niBMw50gVEhVWeG6vlQgDQojIyBMw70gdGh1eeG6v3QgY8OhYyBwaMOibiBwaOG7kWkgDQoNCiMjIyBQaMOibiBwaOG7kWkgxJHhu4F1DQoNClgg4oi8IFVuaWZ7MSwgMiwgwrcgwrcgwrcgLCBufSBsw6AgbcO0IGjDrG5oIMSR4buBdSBy4budaSBy4bqhYyB0csOqbiB04bqtcCBo4bujcCBz4buRIHThu7Egbmhpw6puIHThu6sgMSwgMiwgwrcgwrcgwrcgLCBuLiBIw6BtIFAoWCA9IHgpID0gMS9uIMSRxrDhu6NjIGfhu41pIGzDoCBow6BtIHjDoWMgc3XhuqV0IGto4buRaSBsxrDhu6NuZyBj4bunYSBiaeG6v24gWCB04bqhaSDEkWnhu4NtIHguDQoNCmBgYHtyfQ0KY3BwMSA8LSBydW5pZihuID0gMTAwMCxtaW4gPSA4LG1heCA9IDEwKSAjU2luaCAxMDAwIGJp4bq/biBjcHAxIGPDsyBwaMOibiBwaOG7kWkgxJHhu4F1IHRyb25nIGtob+G6o25nIFs4LDEwXQ0KaGlzdChjcHAxLCBtYWluID0gIlVuaWZvcm0gRGlzdHJpYnV0aW9uIiwgeGxhYiA9ICJjY3AxIikNCmBgYA0KYGBge3J9DQpzdW1tYXJ5KGNwcDEpDQpgYGANCg0KIyMjIFBow6JuIHBo4buRaSBjaHXhuqluIGNow61uaCB04bqvYw0KUGjDom4gcGjhu5FpIGNodeG6qW4gdOG6r2MgKHN0YW5kYXJkIG5vcm1hbCBkaXN0cmlidXRpb24pIGzDoCBwaMOibiBwaOG7kWkgY2h14bqpbiB24bubaSBnacOhIHRy4buLIHRydW5nIGLDrG5oICjOvCkgYuG6sW5nIDAgdsOgIMSR4buZIGzhu4djaCBjaHXhuqluICjPgykgYuG6sW5nIDEuIFBow6JuIHBo4buRaSBjaHXhuqluIGPDsm4gxJHGsOG7o2MgZ+G7jWkgbMOgIMSRxrDhu51uZyBjb25nIGNodcO0bmcgKGJlbGwgY3VydmUpIHbDrCDEkeG7kyB0aOG7iyBj4bunYSBt4bqtdCDEkeG7mSB4w6FjIHN14bqldCBjw7MgZOG6oW5nIGNodcO0bmcuDQpgYGB7cn0NCmNwcDIgPC0gcm5vcm0oMTAwKSAjIFNpbmggMTAwIGJp4bq/biBjcHAyIGPDsyBwaMOibiBwaOG7kWkgY2h14bqpbiB0cnVuZyBiw6xuaCAwIHbDoCDEkeG7mSBs4buHY2ggdGnDqnUgY2h14bqpbiAxDQpoaXN0KGNwcDIsIG1haW4gPSAiTm9ybWFsIERpc3RyaWJ1dGlvbiIsIHhsYWIgPSAiY3BwMiIpDQpgYGANCg0KYGBge3J9DQpsaWJyYXJ5KGdncGxvdDIpDQpjcHAyIDwtIGFzLmRhdGEuZnJhbWUoY3BwMikNCmdncGxvdChjcHAyLGFlcyhjcHAyKSkgKyBnZW9tX2RlbnNpdHkoY29sb3I9J2dyZWVuJykNCmBgYA0KYGBge3J9DQpzdW1tYXJ5KGNwcDIpDQpgYGANCiMjIyBQaMOibiBwaOG7kWkgUG9pc3NvbiANCg0KQmnhur9uIG5n4bqrdSBuaGnDqm4gWCBjw7MgcGjDom4gcGjhu5FpIFBvaXNzb24gbMOgIGJp4bq/biBuZ+G6q3Ugbmhpw6puIGTDuW5nIMSR4buDIG3DtCB04bqjIGNobyBz4buRIGzhuqduIHjhuqN5IHJhIGPhu6dhIG3hu5l0IHPhu7Egdmnhu4djL2Jp4bq/biBj4buRIChldmVudCkgbcOgIGNow7puZyB0YSBxdWFuIHTDom0geOG6o3kgcmEgdHJvbmcgbeG7mXQga2hv4bqjbmcgdGjhu51pIGdpYW4gaG/hurdjIGtow7RuZyBnaWFuIGNobyB0csaw4bubYy4NCg0KYGBge3J9DQpjcHAzIDwtIHJwb2lzKG4gPSAxMCxsYW1iZGEgPSAxLjIpDQpjcHAzDQpgYGANCg0KYGBge3J9DQpjcHAzIDwtIHRhYmxlKGNwcDMpDQpjcHAzIDwtIGFzLmRhdGEuZnJhbWUoY3BwMykNCmdncGxvdChjcHAzLGFlcyhjcHAzLEZyZXEpKSArIGdlb21fY29sKGZpbGw9J3JlZCcpICsNCiAgZ2VvbV9wb2ludCgpICsgZ2VvbV9saW5lKGFlcyhhcy5pbnRlZ2VyKGNwcDMpLEZyZXEpLGNvbG9yPSdncmVlbicpDQpgYGANCmBgYHtyfQ0Kc3VtbWFyeShjcHAzKQ0KYGBgDQojIyMgUGjDom4gcGjhu5FpIG5o4buLIHRo4bupYyANCg0KTuG6v3UgcGjDqXAgdGjhu60gQmVybm91bGxpIMSRxrDhu6NjIHRo4buxYyBoaeG7h24gbOG6t3AgbOG6oWkgbiBs4bqnbiAoxJHhu5ljIGzhuq1wIG5oYXUpLiBLaGkgxJHDsyBz4buRIHBow6lwIHRo4butIHRow6BuaCBjw7RuZyBYIHRyb25nIG4gcGjDqXAgdGjhu60gxJHGsOG7o2MgdGjhu7FjIGhp4buHbiBz4bq9IHR1w6JuIHRoZW8gbcO0IGjDrG5oIG5o4buLIHRo4bupYyAoYmlub21pYWwgbW9kZWwpIHbhu5tpIGhhaSB0aGFtIHPhu5EgbiB2w6AgcCwga8O9IGhp4buHdSBYIOKIvCBCaW5vbWlhbChuLCBwKSwgbiDiiaUgMSwgcCDiiIggKDAsIDEpLg0KDQpgYGB7cn0NCmNwcDQgPC0gcmJpbm9tKG4gPSAxMDAsIHNpemUgPSAxNSwgcHJvYiA9IDAuMikNCmNwcDQgPC0gdGFibGUoY3BwNCkNCmNwcDQgPC0gYXMuZGF0YS5mcmFtZShjcHA0KQ0KZ2dwbG90KGNwcDQsYWVzKGNwcDQsRnJlcSkpICsgZ2VvbV9jb2woZmlsbD0ncmVkJykNCmBgYA0KYGBge3J9DQpzdW1tYXJ5KGNwcDQpDQpgYGANCiMjIyBQaMOibiBwaOG7kWkgc2nDqnUgYuG7mWkgDQoNCkdp4bqjIHPhu60gdOG7lW5nIHRo4buDIGPDsyBOIHBo4bqnbiB04butLCB0cm9uZyDEkcOzIGPDsyBuIChuIOKJpCBOKSBwaOG6p24gdOG7rSBjw7MgZOG6pXUgaGnhu4d1IEEgdsOgIChOLW4pIHBo4bqnbiB04butIGPDsyBk4bqldSBoaeG7h3Uga2jDtG5nIEEuIEzhuqV5IG5n4bqrdSBuaGnDqm4gbeG7mXQgbeG6q3UgY8OzIGvDrWNoIHRoxrDhu5tjIGssIGsg4omkIE4uIFPhu5EgcGjhuqduIHThu60gY8OzIGThuqV1IGhp4buHdSBBIHRyb25nIG3huqt1IMSRxrDhu6NjIGzhuqV5IHJhLCBsw6AgbeG7mXQgYmnhur9uIG5n4bqrdSBuaGnDqm4gY8OzIG3DtCBow6xuaCBzacOqdSBi4buZaSwga8O9IGhp4buHdSBYIOKIvCBIeXBlcmdlb21ldHJpYyhOLCBuLCBrLCB4KS4NCg0KYGBge3J9DQpjcHA1IDwtIHJoeXBlcihubiA9IDEwMCxtID0gMTAwLG4gPSA3NSxrID0gMjUpDQpoaXN0KGNwcDUsIG1haW4gPSAiIEh5cGVyZ2VvbWV0cmljIERpc3RyaWJ1dGlvbiIsIHhsYWIgPSAiY3BwNSIpDQpgYGANCmBgYHtyfQ0KY3BwNSA8LSBhcy5kYXRhLmZyYW1lKGNwcDUpDQpnZ3Bsb3QoY3BwNSxhZXMoY3BwNSkpICsgZ2VvbV9kZW5zaXR5KGNvbG9yPSdncmVlbicpDQpgYGANCmBgYHtyfQ0Kc3VtbWFyeShjcHA1KQ0KYGBgDQoNCiMjIFThu5VuZyBxdWFuIHbhu4EgR0RQDQojIyMgS2jDoWkgbmnhu4dtIA0KDQpHRFAgOiDEkG8gbMaw4budbmcgdOG7lW5nIGdpw6EgdHLhu4sgKHTDrW5oIHRoZW8gZ2nDoSB0aOG7iyB0csaw4budbmcpIGPhu6dhIHThuqV0IGPhuqMgY8OhYyBow6BuZyBow7NhIHbDoCBk4buLY2ggduG7pWN14buRaSBjw7luZyDEkcaw4bujYyB04bqhbyByYSB0cm9uZyBwaOG6oW0gdmkgbMOjbmggdGjhu5UgY+G7p2EgbeG7mXQgcXXhu5FjIGdpYSB0cm9uZyBt4buZdCB0aOG7nWkga+G7syBuaOG6pXQgxJHhu4tuaCh0aMaw4budbmcgbMOgIDEgbsSDbSkuDQoNCkdEUCBiYW8gZ+G7k206DQoNCisgSMOgbmcgIGjDs2EsIGThu4tjaCB24bulIGRvIGPDtG5nIGTDom4gbsaw4bubYyBz4bufIHThuqFpIGzDoG0gcmEg4bufIHRyb25nIG7GsOG7m2MNCg0KKyBIw6BuZyBow7NhLCBk4buLY2ggduG7pSBkbyBuZ8aw4budaSBuxrDhu5tjIG5nb8OgaSBsw6BtIHJhIOG7nyBuxrDhu5tjIHPhu58gdOG6oWkNCg0KTuG7mWkgZHVuZyB04buVbmcgcXXDoXQgY+G7p2EgR0RQIMSRxrDhu6NjIHjDqXQgZMaw4bubaSBjw6FjIGfDs2MgxJHhu5kga2jDoWMgbmhhdToNCg0K4oCTIFjDqXQgZMaw4bubaSBnw7NjIMSR4buZIHPhu60gZOG7pW5nIChjaGkgdGnDqnUpOiBHRFAgbMOgIHThu5VuZyBj4bqndSBj4bunYSBu4buBbiBraW5oIHThur8gZ+G7k20gdGnDqnUgZMO5bmcgY3Xhu5FpY8O5bmcgY+G7p2EgaOG7mSBkw6JuIGPGsCwgdGnDqnUgZMO5bmcgY3Xhu5FpIGPDuW5nIGPhu6dhIE5ow6Agbsaw4bubYywgdMOtY2ggbHXhu7kgdMOgaSBz4bqjbiB2w6AgY2jDqm5oIGzhu4djaCB4deG6pXRuaOG6rXAga2jhuql1IGjDoG5nIGhvw6EgdsOgIGThu4tjaCB24bulLg0KDQrigJMgWMOpdCBkxrDhu5tpIGfDs2MgxJHhu5kgdGh1IG5o4bqtcDogR0RQIGfhu5NtIHRodSBuaOG6rXAgY+G7p2EgbmfGsOG7nWkgbGFvIMSR4buZbmcgdOG7qyBz4bqjbiB4deG6pXQsIHRodeG6vyBz4bqjbnh14bqldCwga2jhuqV1IGhhbyB0w6BpIHPhuqNuIGPhu5EgxJHhu4tuaCBkw7luZyBjaG8gc+G6o24geHXhuqV0IHbDoCBnacOhIHRy4buLIHRo4bq3bmcgZMawIHPhuqNuIHh14bqldCB0cm9uZyBr4buzLg0KDQrigJMgWMOpdCBkxrDhu5tpIGfDs2MgxJHhu5kgc+G6o24geHXhuqV0OiBHRFAgYuG6sW5nIGdpw6EgdHLhu4sgc+G6o24geHXhuqV0IHRy4burIMSRaSBjaGkgcGjDrSB0cnVuZyBnaWFuLg0KDQojIyMgw50gbmdoxKlhIGPhu6dhIGNo4buJIHPhu5EgR0RQIA0KDQotIEdEUCBsw6AgdGjGsOG7m2MgxJFvIMSR4buDIMSRw6FuaCBnacOhIHThu5FjIMSR4buZIHTEg25nIHRyxrDhu59uZyBraW5oIHThur8gY+G7p2EgbeG7mXQgcXXhu5FjIGdpYSB2w6AgdGjhu4MgaGnhu4duIHPhu7FiaeG6v24gxJHhu5luZyBj4bunYSBz4bqjbiBwaOG6qW0vZOG7i2NoIHbhu6UgdGhlbyB0aOG7nWkgZ2lhbi4NCg0KLSBT4buxIHN1eSBnaeG6o20gY2jhu4kgc+G7kSBHRFAgc+G6vSBjw7MgdMOhYyDEkeG7mW5nIHjhuqV1IMSR4bq/biBu4buBbiBraW5oIHThur8gdsOgIGPDsyB0aOG7gyBk4bqrbiDEkeG6v24gY8OhYyB0w6xuaHRy4bqhbmcga2luaCB04bq/IHN1eSB0aG/DoWksIGzhuqFtIHBow6F0LCB0aOG6pXQgbmdoaeG7h3AsIMSR4buTbmcgdGnhu4FuIG3huqV0IGdpw6HigKYgxJDDonkgbMOgIGPDoWMgdMOhYyDEkeG7mW5nIHjhuqV1LOG6o25oIGjGsOG7n25nIHRy4buxYyB0aeG6v3AgxJHhur9uIHF1w6EgdHLDrG5oIHPhuqNuIHh14bqldCBraW5oIGRvYW5oIGPhu6dhIGPDoWMgZG9hbmggbmdoaeG7h3AgY8WpbmcgbmjGsCDEkeG7nWkgc+G7kW5nIGPhu6dhIG5nxrDhu51pIGTDom4uDQoNCi0gQ2jhu4kgc+G7kSBHRFAgYsOsbmggcXXDom4gxJHhuqd1IG5nxrDhu51pIHPhur0gY2hvIGLhuqFuIGJp4bq/dCBt4bupYyB0aHUgbmjhuq1wIHTGsMahbmcgxJHhu5FpIGPFqW5nIG5oxrAgY2jhuqV0bMaw4bujbmcgc+G7kW5nIGPhu6dhIG5nxrDhu51pIGTDom4g4bufIG3hu5dpIHF14buRYyBnaWEuDQoNCiMjIyBDxqEgY+G6pXUga2luaCB04bq/IG5nw6BuaCANCkPGoSBj4bqldSBuZ8OgbmggY+G7p2EgbuG7gW4ga2luaCB04bq/IGzDoCBxdWFuIGjhu4cgdOG7tyBs4buHIGPhu6dhIHThuq1wIGjhu6NwIHThuqV0IGPhuqMgY8OhYyBuZ8OgbmggaMOsbmggdGjDoG5oIG7Dqm4gbuG7gW4ga2luaCB04bq/IHbDoCBjw6FjIG3hu5FpIHF1YW4gaOG7hyB0xrDGoW5nIMSR4buRaSDhu5VuIMSR4buLbmggZ2nhu69hIGNow7puZy4gQ8ahIGPhuqV1IG5nw6BuaCBsw6AgbeG7mXQgY2jhu4luaCB0aOG7gyBsacOqbiBr4bq/dCBjw6FjIG5nw6BuaCBraW5oIHThur8gdGhlbyBt4buZdCBraeG7g3UgY+G6pXUgdHLDumMgbmjhuqV0IMSR4buLbmgsdOG6oW8gcmEgbmjhu69uZyB0aHXhu5ljIHTDrW5oIG3hu5tpLCBjaOG6pXQgbMaw4bujbmcgbeG7m2kgY+G7p2EgaOG7hyB0aOG7kW5nIG3DoCBuaOG7r25nIHRodeG7mWMgdMOtbmggbsOgeWtow7RuZyB0aOG7gyBjw7Mg4bufIHThu6tuZyBi4buZIHBo4bqtbiByacOqbmcgcuG6vSBo4bujcCB0aMOgbmggaOG7hyB0aOG7kW5nOyBMw6AgdOG7lW5nIHRo4buDIG5o4buvbmcgbeG7kWlxdWFuIGjhu4cgduG7gSBz4buRIGzGsOG7o25nIChz4buRIGzGsOG7o25nIG5nw6BuaCwgdOG7tyB0cuG7jW5nKSB2w6AgY2jhuqV0IGzGsOG7o25nIGdp4buvYSBjw6FjIG5nw6BuaCB0cm9uZ27hu4FuIGtpbmggdOG6vyAoUGjhuqFtIFRo4buLIEtoYW5oLCAyMDEwLCB0cmFuZyAxMikuIFZp4buHdCBOYW0gcGjDom4gbG/huqFpIG5nw6BuaCBraW5oIHThur90aGVvIGjGsOG7m25nIGThuqtuIHBow6JuIGxv4bqhaSBuZ8OgbmggZG8gTGnDqm4gaGnhu4dwIHF14buRYyBiYW4gaMOgbmgsIGPDsyB0aOG7gyBraMOhaSBxdcOhdCB0aMOgbmhiYSBuaMOzbSBuZ8OgbmggbOG7m246IDEuIE7DtG5nIOKAkyBMw6JtIOKAkyBOZ8awIG5naGnhu4dwOyAyLiBDw7RuZyBuZ2hp4buHcCwgeMOieSBk4buxbmc7IDMuVGjGsMahbmcgbeG6oWkgdsOgIGThu4tjaCB24bulLg0KDQojIyMgTmjhu69uZyBjaOG7iSB0acOqdSBwaOG6o24gw6FuaCBz4buxIGNodXnhu4NuIGThu4tjaCBjxqEgY+G6pXUga2luaCB04bq/IG5nw6BuaA0KDQrEkOG7kWkgduG7m2kgcXXDoSB0csOsbmggY2h1eeG7g24gZOG7i2NoIGPGoSBj4bqldSBraW5oIHThur8gbmfDoG5oLCBuaOG7r25nIGNo4buJIHRpw6p1IGPGoSBi4bqjbiBwaOG6o24gw6FuaCBz4buxIGNodXnhu4NuIGThu4tjaCBiYW8gZ+G7k206DQoNCigxKSBN4bupYyDEkeG7mSB0aGF5IMSR4buVaSBj4bunYSBjxqEgY+G6pXUgR0RQIA0KDQpQaMOibiB0w61jaCBz4buxIHRoYXkgxJHhu5VpIHThu7cgbOG7hyBwaOG6p24gdHLEg20gR0RQIGPhu6dhIGPDoWMgbmfDoG5oIG7DtG5nIG5naGnhu4dwLGPDtG5nIG5naGnhu4dwLCB2w6AgZOG7i2NoIHbhu6UgbMOgIG3hu5l0IHRyb25nIG5o4buvbmcgdGnDqnUgY2jDrSDEkeG6p3UgdGnDqm4gdGjGsOG7nW5nIMSRxrDhu6NjIGTDuW5nIMSR4buDIMSRw6FuaCBnacOhIHF1w6EgdHLDrG5oIGNodXnhu4NuIGThu4tjaCBjxqEgY+G6pXUgbmfDoG5oLg0KDQooMikgTeG7qWMgxJHhu5kgdGhheSDEkeG7lWkgY+G7p2EgY8ahIGPhuqV1IGxhbyDEkeG7mW5nDQoNClPhu7EgY2h1eeG7g24gZOG7i2NoIGPGoSBj4bqldSBuZ8Ogbmgga2luaCB04bq/IGPDsm4gxJHGsOG7o2MgxJHDoW5oIGdpw6EgcXVhIG3hu5l0IGNo4buJIHRpw6p1cuG6pXQgcXVhbiB0cuG7jW5nIGzDoCBjxqEgY+G6pXUgbGFvIMSR4buZbmcgxJFhbmcgbMOgbSB2aeG7h2MgdHJvbmcgbuG7gW4ga2luaCB04bq/IMSRxrDhu6NjIHBow6JuIGLhu5UgbmjGsHRo4bq/IG7DoG8gdsOgbyBjw6FjIGzEqW5oIHbhu7FjIHPhuqNuIHh14bqldCBraMOhYyBuaGF1Lg0KDQooMykgTeG7qWMgxJHhu5kgdGhheSDEkeG7lWkgY+G7p2EgY8ahIGPhuqV1IGjDoG5nIHh14bqldCBraOG6qXUNCg0KTeG7qWMgxJHhu5kgdGhheSDEkeG7lWkgbsOgeSB0aMaw4budbmcgdHLhuqNpIHF1YSBt4buZdCBxdcOhIHRyw6xuaCBsw6A6IHThu6sgY2jhu5cgY2jhu6cgeeG6v3Ugc+G6o24geHXhuqV0IHbDoCB4deG6pXQga2jhuql1IGPDoWMgbG/huqFpIHPhuqNuIHBo4bqpbSBz4butIGThu6VuZyBuaGnhu4F1IGxhbyDEkeG7mW5nLCBr4bu5IHRodeG6rXQgdGjhuqVwIG5oxrAgbOG6r3AgcsOhcCwgc+G6o24gcGjhuqltIGThu4d0IG1heSwgY2jhur8gYmnhur9uIG7DtG5nIGzDom0gdGjhu6d5IHPhuqNu4oCmIGNodXnhu4NuIGThuqduIHNhbmcgY8OhYyBsb+G6oWkgc+G6o24gcGjhuqltIHPhu60gZOG7pW5nIG5oaeG7gXUgbGFvIMSR4buZbmcgdHLDrG5oIMSR4buZIGNhbywgY8O0bmcgbmdo4buHIGvhu7kgdGh14bqtdCBoaeG7h24gxJHhuqFpIG5oxrAgc+G6o24gcGjhuqltIGPGoSBraMOtIGNo4bq/IHThuqFvLCBow7NhIGNo4bqldCwgxJFp4buHbiB04butLOKApiBDaMOtbmggdsOsIHbhuq15LCBz4buxIGNodXnhu4NuIGThu4tjaCBjxqEgY+G6pXUgaMOgbmd4deG6pXQga2jhuql1LCB04burIG5o4buvbmcgbeG6t3QgaMOgbmcgc8ahIGNo4bq/IHNhbmcgbmjhu69uZyBsb+G6oWkgc+G6o24gcGjhuqltIGNo4bq/IGJp4bq/biBk4buxYSB0csOqbiBjxqEgc+G7nyBjw7RuZyBuZ2jhu4cgLSBr4bu5IHRodeG6rXQgY2FvIGx1w7RuIMSRxrDhu6NjIHhlbSBuaMawIG3hu5l0IHRyb25nIG5o4buvbmcgdGjGsOG7m2MgxJFvIHLhuqV0IHF1YW4gdHLhu41uZyDEkcOhbmggZ2nDoSBt4bupYyDEkeG7mSB0aMOgbmggY8O0bmcgY+G7p2EgcXXDoSB0csOsbmggY2h1eeG7g24gZOG7i2NoIGPGoSBj4bqldSBraW5oIHThur8uDQoNCkLDqm4gY+G6oW5oIGJhIGNo4buJIHRpw6p1IGNo4bunIHnhur91IHRyw6puLCBt4buZdCBuaMOzbSBjw6FjIGNo4buJIHRpw6p1IGtow6FjIGPFqW5ndGjGsOG7nW5nIMSRxrDhu6NjIHPhu60gZOG7pW5nIMSR4buDIMSRw6FuaCBnacOhIHTDrW5oIGhp4buHdSBxdeG6oyBj4bunYSBjxqEgY+G6pXUga2luaCB04bq/LiDEkMOzIGzDoCBjw6FjIGNo4buJIHPhu5F24buBIHThu5FjIMSR4buZIHTEg25nIHRyxrDhu59uZyBraW5oIHThur8sIG7Eg25nIHN14bqldCBsYW8gxJHhu5luZyB4w6MgaOG7mWksIGNo4buJIHPhu5EgSUNPUiwgbeG7qWMgxJHhu5kgdGnDqnVoYW8gbsSDbmcgbMaw4bujbmcgdHLDqm4gbeG7l2kgxJHGoW4gduG7iyBHRFAgxJHGsOG7o2MgdOG6oW8gcmEsIHPhu5EgbMaw4bujbmcgdmnhu4djIGzDoG0gbeG7m2kgxJHGsOG7o2MgdOG6oW8gcmEsdOG7tyBs4buHIHRo4bqldCBuZ2hp4buHcCwgdOG7kWMgxJHhu5kgZ2nhuqNtIG5naMOob+KApg0KDQojIyBUw6xuaCBow6xuaCBjxqEgY+G6pXUgR0RQIGPhu6dhIFZp4buHdCBOYW0gdOG7qyAyMDE0LTIwMTkNCg0KIyMjIFTDrG5oIGjDrG5oIHTEg25nIHRyxrDhu59uZyBraW5oIHThur8gY+G7p2EgVk4gZ2lhaSDEkW/huqFuIDIwMTQtMjAxNS4NCg0KYGBge3J9DQprbml0cjo6aW5jbHVkZV9ncmFwaGljcygiRDovSOG7jEMgVOG6rFAvTcO0IHBo4buPbmcgbmfhuqt1IG5oacOqbi9HRFAgMjAwOC0yMDE1LnBuZyIpDQpgYGANCg0KTmjDrG4gdsOgbyBiaeG7g3UgxJHhu5MgdMSDbmcgdHLGsOG7n25nIGtpbmggdOG6vyBWTiB0aGVvIG5nw6BuaCBnaWFpIMSRb+G6oW4gMjAxMS0yMDE1LCB0YSB0aOG6pXkgY8OhYyBz4buRIGxp4buHdSBraW5oIHThur8gdMSDbmcgdHLGsOG7n25nIGLhuq90IMSR4bqndSB04burIG7Eg20gMjAxNC0yMDE1IGPDsyBk4bqldSBoaeG7h3UgdMSDbmcgbMOqbi4gVMSDbmcgdHLGsOG7n25nIEdEUCB0xINuZyB04burIDYlIMSR4bq/biA3JS4gQ8OzIHRo4buDIG7Ds2kgxJHDonkgbMOgIG3hu5l0IGNvbiBz4buRIGtow6Ega2hpw6ptIHThu5FuIG5oxrBuZyBzbyB24bubaSBuaOG7r25nIG7Eg20gdHLGsOG7m2MsIMSRw6J5IGzDoCBt4buZdCBk4bqldSBoaeG7h3UgxJHDoW5nIG3hu6tuZyBjaG8gdmnhu4djIGtpbmggdOG6vyBWTiDEkWFuZyB0csOqbiDEkcOgIHBo4bulYyBo4buTaSB2w6AgcGjDoXQgdHJp4buDbi4gS2h1IHbhu7FjIHPhuqNuIHh14bqldCBjw7RuZyBuZ2hp4buHcCB2w6AgeMOieSBk4buxbmcgdGnhur9wIHThu6VjIGzDoCB0aMOgbmggdOG7kSBxdWFuIHRy4buNbmcgxJHDs25nIGfDs3AgY2hvIHPhu7EgY+G6o2kgdGhp4buHbiB24buBIHThu5FjIMSR4buZIHTEg25nIHRyxrDhu59uZy4gS2h1IHbhu7FjIG7DoHkgxJHDoyBt4bufIHLhu5luZyA5LDY0JSB0cm9uZyBuxINtIDIwMTUsIGNhbyBoxqFuIG5oaeG7gXUgc28gduG7m2kgY29uIHPhu5EgNiw0MiUgY+G7p2EgbsSDbSAyMDE0LiBCxrDhu5tjIHbDoG8gdGjhu51pIGvhu7MgaOG7k2kgcGjhu6VjLCBuw7RuZyBuZ2hp4buHcCBraMO0bmcgY8OybiBsw6AgxJHhu5luZyBs4buxYyBjaMOtbmggY2hvIHBow6F0IHRyaeG7g24gY+G7p2EgbuG7gW4ga2luaCB04bq/LiBUxINuZyB0csaw4bufbmcga2h1IHbhu7FjIG7DoHkgY2jhu4kgY8OybiAyLDQlIHRyb25nIG7Eg20gMjAxNSwgdGjDoXAgbmjhuqV0IHRyb25nIGdpYWkgxJFv4bqhbiAyMDExLTIwMTUuIFRyb25nIGtoaSDEkcOzLCBraHUgduG7sWMgZOG7i2NoIHbhu6UgY8Wpbmcga2jDtG5nIGPDsyBuaGnhu4F1IGNodXnhu4NuIGJp4bq/biB0w61jaCBj4buxYyBraGkgdMSDbmcgdHLGsOG7n25nIG7Eg20gMjAxNSBjaOG7iSB0xrDGoW5nIMSRxrDGoW5nIHNvIHbhu5tpIG7Eg20gMjAxNCB2w6AgdGjhuqVwIGjGoW4gbmhp4buBdSBzbyB24bubaSBjw6FjIG7Eg20gdHLGsOG7m2MgxJHDsy4NCg0KIyMjIFTDrG5oIGjDrG5oIHTEg25nIHRyxrDhu59uZyBraW5oIHThur8gY+G7p2EgVk4gZ2lhaSDEkW/huqFuIDIwMTUtMjAxNy4NCg0KYGBge3J9DQprbml0cjo6aW5jbHVkZV9ncmFwaGljcygiRDovSOG7jEMgVOG6rFAvTcO0IHBo4buPbmcgbmfhuqt1IG5oacOqbi9HRFAgMjAxNS0yMDE3LnBuZyIpDQpgYGANCg0KU28gduG7m2kgbsSDbSAyMDE2IHTEg25nIHRyxrDhu59uZyBraMO0bmcgbmjGsCBr4buzIHbhu41uZywgbsSDbSAyMDE3LCBraW5oIHThur8gVmnhu4d0IE5hbS4gY2hvIHRo4bqleSBt4buZdCBk4bqldSBoaeG7h3Uga2jhu59pIHPhuq9jIGjGoW4gduG7m2kgbeG7qWMgdMSDbmcgdHLGsOG7n25nIGPhuqMgbsSDbSAyMDE3IMSR4bqhdCA2LDgxJSwgdsaw4bujdCBjaOG7iSB0acOqdSBkbyBRdeG7kWMgaOG7mWkgxJHhu4EgcmEuIFRyb25nIMSRw7MsIHTEg25nIHRyxrDhu59uZyBxdcO9IElJSSB2w6AgcXXDvSBJVi8yMDE3IMSR4bqhdCBt4bupYyBjYW8g4oCc4bqlbiB0xrDhu6NuZ+KAnSBs4bqnbiBsxrDhu6N0IGzDoCA3LDQ2JSB2w6AgNyw2NSUgY2FvIG5o4bqldCB0cm9uZyB2w7JuZyA3IG7Eg20gdsOgIGNhbyBoxqFuIG5oaeG7gXUgc28gduG7m2kgY8O5bmcga+G7syBjw6FjIG7Eg20gdHLGsOG7m2MgxJHDsy4NCg0KS2h1IHbhu7FjIG7DtG5nLCBsw6JtLCBuZ8awIG5naGnhu4dwIGNobyB0aOG6pXksIHPhu7EgcGjhu6VjIGjhu5NpIHLDtSBsbyBuaOG6pXQga2hpIHTEg25nIHRyxrDhu59uZyBj4bqjIG7Eg20gxJHhuqF0IDIsOTAlIChjYW8gaMahbiDEkcOhbmcga+G7gyBzbyB24bubaSBt4bupYyB0xINuZyBj4bunYSBoYWkgbsSDbSB0csaw4bubYyDEkcOzKS4gVHJvbmcga2h1IHbhu7FjIG7DoHksIG5nw6BuaCB0aOG7p3kgc+G6o24gdsOgIGzDom0gbmdoaeG7h3AgxJHhuqF0IG3hu6ljIHTEg25nIGzhuqduIGzGsOG7o3QgbMOgIDUsNTQlIHbDoCA1LDE0JSBUcm9uZyBraGkgxJHDsywgdMOsbmggdHLhuqFuZyBtxrBhIGzFqSB0csOqbiBkaeG7h24gcuG7mW5nIGtoaeG6v24gbsO0bmcgbmdoaeG7h3AgY2jhu4kgdMSDbmcgdHLGsOG7n25nIOG7nyBt4bupYyBraGnDqm0gdOG7kW4gMiwwNyUuDQoNCktodSB24buxYyBk4buLY2ggduG7pSBjxaluZyDEkcOzbmcgZ8OzcCBs4bubbiB2w6BvIG3hu6ljIHTEg25nIHRyxrDhu59uZyBjaHVuZyBj4bunYSB0b8OgbiBu4buBbiBraW5oIHThur8sIHRp4bq/cCB04bulYyDEkcOgIHTEg25nIHRyxrDhu59uZyB04burIG7Eg20gMjAxNSwgduG7m2kgbeG7qWMgdMSDbmcgNyw0NCUgY+G6oyBuxINtIDIwMTcuIFRyb25nIMSRw7MsIGzEqW5oIHbhu7FjIHTDoGkgY2jDrW5oLCBuZ8OibiBow6BuZywgYuG6o28gaGnhu4NtIHbDoCBraW5oIGRvYW5oIGLhuqV0IMSR4buZbmcgc+G6o24gbsSDbSAyMDE3IMSR4bqhdCBt4bupYyB0xINuZyB0csaw4bufbmcgY2FvIG5o4bqldCB0cm9uZyBuaGnhu4F1IG7Eg20gcXVhLCBs4bqnbiBsxrDhu6N0IMSR4bqhdCA4LDE0JSB2w6AgNCwwNyUuDQoNCkPDtG5nIG5naGnhu4dwIGNo4bq/IGJp4bq/biBjaOG6vyB04bqhbyBuaMawIG3hu41pIG7Eg20gduG6q24gbHXDtG4gbMOgIMSR4buZbmcgbOG7sWMgY2jDrW5oIHRow7pjIMSR4bqpeSB0xINuZyB0csaw4bufbmcga2luaCB04bq/IHbhu5tpIG3hu6ljIHTEg25nIHRyxrDhu59uZyBsw6puIMSR4bq/biAxNCw0MCUgdHJvbmcgbsSDbSAyMDE3LiBUcm9uZyBraGkgxJHDsywgdG/DoG4ga2h1IHbhu7FjIGPDtG5nIG5naGnhu4dwIHbDoCB4w6J5IGThu7FuZyB0aeG6v3AgdOG7pWMgY2hvIHRo4bqleSwgbWnhu4VuIOG7qW5nIHRyxrDhu59uZyB0aOG6pXAgaMahbiBzbyB24bubaSBoYWkgbsSDbSB0csaw4bubYywgY2jhu4kgxJHhuqF0IDglLCBjaOG7pyB54bq/dSDEkeG6v24gdOG7qyBz4buxIHN1eSBnaeG6o20gbmfDoG5oIGtoYWkga2hvw6FuZy4gVHV5IG5oacOqbiwgdHJvbmcgbsSDbSAyMDE3LCBz4buxIHN1eSBnaeG6o20gbsOgeSBraMO0bmcgbMOgbSBjaOG6rW0gdOG7kWMgxJHhu5kgdMSDbmcgdHLGsOG7n25nIGNodW5nIGPhu6dhIHRvw6BuIG7hu4FuIGtpbmggdOG6vy4NCg0KDQojIyMgVMOsbmggaMOsbmggdMSDbmcgdHLGsOG7n25nIGtpbmggdOG6vyBWTiBnaWFpIMSRb+G6oW4gMjAxNy0yMDE5Lg0KDQpgYGB7cn0NCmtuaXRyOjppbmNsdWRlX2dyYXBoaWNzKCJEOi9I4buMQyBU4bqsUC9Nw7QgcGjhu49uZyBuZ+G6q3Ugbmhpw6puL0dEUCAxMCBuxINtLnBuZyIpDQpgYGANCg0KTmjDrG4gdsOgbyBiaeG7g3UgxJHhu5MgdMSDbmcgdHLGsOG7n25nIEdEUCAxMCBuxINtIGfhuqduIMSRw6J5LCDEkeG6t2MgYmnhu4d0IHThu6sgbsSDbSAyMDE2LTIwMTksIHTEg25nIHRyxrDhu59uZy4gR0RQIGPDsyBuaOG7r25nIGNvbiBz4buRIGto4bufaSBz4bqvYyDEkcOhbmcga+G7gy4gQ2hpIHThu6sgbeG7kWMgNiwyMSUgdsOgbyBuxINtIDIwMTYsIEdEUCBj4bunYSBWTiDEkcOjIHbhu7FjIGThuq15IGzDqm4gNi44MSUgdsOgIHRp4bq/cCB04bulYyB0xINuZyBsw6puIGNhbyBuaOG6pXQgduG7m2kgNywwMiUgdsOgbyBuxINtIDIwMTksIGNhbyBuaOG6pXQgc28gduG7m2kgY8O5bmcga8OsLiBTYXUga2hpIGNo4bupbmcga2nhur9uIHRo4budaSBrw6wgdMSDbmcgdHLGsOG7n25nIEdEUCBt4bqhbmggdOG7qyAyMDE0IMSR4bq/biAyMDE1IHLhu5NpIGdp4bqjbSB4deG7kW5nIHbDoG8gbsSDbSAyMDE2IGzDoCA2LDIxJSwgdGEgxJHGsOG7o2MgdGjhuqV5IHPhu7EgdMSDbmcgdHLGsOG7n25nIG3huqFuaCBt4bq9IHbDoG8gY3Xhu5FpIHRo4budaSBr4buzLCBjaG8gdGjhuqV5IHPhu7EgcGjhu6VjIGjhu5NpIHLDtSBy4buHdCBj4bunYSBu4buBbiBraW5oIHThur8gVmnhu4d0IE5hbSB0cm9uZyBnaWFpIMSRb+G6oW4gxJHDoyBuaOG6r2MgxJHhur9uLg0KDQpgYGB7cn0NCmtuaXRyOjppbmNsdWRlX2dyYXBoaWNzKCJEOi9I4buMQyBU4bqsUC9Nw7QgcGjhu49uZyBuZ+G6q3Ugbmhpw6puL0dEUCAyMDE0LTIwMTkucG5nIikNCmBgYA0KDQpOaMOsbiB2w6BvIGJp4buDdSDEkeG7kyB0xINuZyB0csaw4bufbmcgR0RQIGPhu6dhIGdpYWkgxJFv4bqhbiAyMDE0LTIwMTksIHRhIHRo4bqleSBuaMOzbSBHRFAgY+G7p2EgQ8O0bmcgbmdoaeG7h3AgdsOgIHjDonkgZOG7sW5nIGPDsyBz4buxIGdpYSB0xINuZyDEkcOhbmcga+G7gy4gVOG7qyA1LDklIHbDoG8gbsSDbSAyMDE0IHTEg25nIMSR4bq/biBn4bqnbiAxMCUgdsOgbyBuxINtIDIwMTUgcuG7k2kgZGFvIMSR4buZbmcga2jDtG5nIMSRw6FuZyBr4buDIMSR4bq/biBjdeG7kWkgdGjhu51pIGvhu7MuIEPDoWMgY29uIHPhu5EgbsOgeSDEkcOjIGNobyB0YSB0aOG6pXkgxJHGsOG7o2MgY2jhu4kgc+G7kSBHRFAgY+G7p2EgbmfDoG5oIG7DoHkgY2hvIHRo4bqleSBuaOG7r25nIGThuqV1IGhp4buHdSB0w61jaCBj4buxYyBj4bunYSB2aeG7h2MgxJHhuqd1IHTGsCB0xINuZyB0csaw4bufbmcga2luaCB04bq/IHbDoG8gY8O0bmcgbmdoaeG7h3AgdHJvbmcgdGjhu51pIGvDrCBjw7RuZyBuZ2hp4buHcCBow7NhLCBoaeG7h24gxJHhuqFpIGjDs2EgY+G7p2EgxJHhuqV0IG7GsOG7m2MuIMSQ4buZbmcgbOG7sWMgY2jDrW5oIGPhu6dhIHTEg25nIHRyxrDhu59uZyBraW5oIHThur8gbsSDbSAyMDE5IHRp4bq/cCB04bulYyBsw6AgbmfDoG5oIGPDtG5nIG5naGnhu4dwIGNo4bq/IGJp4bq/biwgY2jhur8gdOG6oW8gKHTEg25nIDExLDI5JSkgdsOgIGPDoWMgbmfDoG5oIGThu4tjaCB24bulIHRo4buLIHRyxrDhu51uZyAobmjGsCBuZ8OgbmggduG6rW4gdOG6o2ksIGtobyBiw6NpIHTEg25nIDksMTIlOyBiw6FuIGJ1w7RuIHbDoCBiw6FuIGzhursgdMSDbmcgOCw4MiU7IGhv4bqhdCDEkeG7mW5nIHTDoGkgY2jDrW5oLCBuZ8OibiBow6BuZyB2w6AgYuG6o28gaGnhu4NtIHTEg25nIDgsNjIlKS4gDQoNCkto4buRaSBuZ8OgbmggZOG7i2NoIHbhu6UgZGFvIMSR4buZbmcgY2jhu4kgc+G7kSB0xINuZyB0csaw4bufbmcgR0RQIHThu6sgNiUgxJHhur9uIDYsMyUgdHJvbmcgdsOybmcgNSBuxINtIHThu6sgMjAxNCDEkeG6v24gMjAxOS4gxJBp4buBdSBuw6B5IGNobyB0aOG6pXkgY2jDrW5oIHBo4bunIMSRw6MgY8OzIG5o4buvbmcgY2jDrW5oIHPDoWNoIGR1eSB0csOsIHPhu7EgcGjDoXQgdHJp4buDbiBj4bunYSBuZ8OgbmggZOG7i2NoIHbhu6Uga2jDoSB04buRdCB2w6AgYuG6r3QgxJHhuqd1IGPDsyBuaOG7r25nIGNodXnhu4NuIGJp4bq/biB0w61jaCBj4buxYyBjaG8ga2luaCB04bq/IFZp4buHdCBOYW0uDQoNCkPDsm4gduG7m2kgbeG7qWMgdMSDbmcgdHLGsOG7n25nIEdEUCBj4bunYSBuZ8OgbmggbsO0bmcgbMOibSB0aOG7p3kgc+G6o24gY2jhu6luZyBraeG6v24gbeG7qWMgZ2nhuqNtIHLDtSBy4buHdCB0cm9uZyBnaWFpIMSRb+G6oW4gMjAxNC0yMDE2IHThu6sgMSw5JSB4deG7kW5nIGfhuqduIG5oxrAgMCwyJS4gU2F1IMSRw7MgdMSDbmcgbeG6oW5oIHbDoG8gbsSDbSAyMDE3IGzDoCAyLDIlIHRyxrDhu5tjIGtoaSBnaeG6o20geHXhu5FuZyBjw7JuIDEsOSUgdsOgbyBjdeG7kWkgdGjhu51pIGvhu7MuDQoNCk5ow6xuIGNodW5nLCBu4buBbiBraW5oIHThur8gVk4gbsSDbSAyMDE0LTIwMTkgxJFhbmcgdMSDbmcgdHLGsOG7n25nIHRoZW8gaMaw4bubbmcgY8O0bmcgbmdoaeG7h3AgaMOzYSwgaGnhu4duIMSR4bqhaSBow7NhLg0KDQojIFBIxq/GoE5HIFBIw4FQIFbDgCBE4buuIExJ4buGVSBOR0hJw4pOIEPhu6hVIA0KIyMgTcO0IGjDrG5oIMSR4buBIHh14bqldCANCg0KVMO0zIluZyBzYcyJbiBwaMOizIltIHRyb25nIG7GsMahzIFjIGxhzIAgZ2nDoSB0cuG7iyBz4bqjbiBwaOG6qW0gduG6rXQgY2jhuqV0IHbDoCBk4buLY2ggduG7pSBjdeG7kWkgY8O5bmcgxJHGsOG7o2MgdOG6oW8gcmEgY+G7p2EgbuG7gW4ga2luaCB04bq/IHRyb25nIG3hu5l0IGtob+G6o25nIHRo4budaSBnaWFuIG5o4bqldCDEkeG7i25oIChxdcO9LCBuxINtKS4gxJBp4buBdSBuw6B5IGPDsyBuZ2jEqWEgdHJvbmcgR0RQIGtow7RuZyB0w61uaCBjw6FjIGdpw6EgdHLhu4sgc+G6o24gcGjhuqltIHbhuq10IGNo4bqldCB2w6AgZOG7i2NoIHbhu6UgxJHDoyBz4butIGThu6VuZyDhu58gY8OhYyBraMOidSB0cnVuZyBnaWFuIHRyb25nIHF1w6EgdHLDrG5oIHPhuqNuIHh14bqldCB04bqhbyByYSBz4bqjbiBwaOG6qW0uIEdEUCBiaeG7g3UgdGjhu4sga+G6v3QgcXXhuqMgc+G6o24geHXhuqV0IGRvIGPDoWMgxJHGoW4gduG7iyB0aMaw4budbmcgdHLDuiB04bqhbyByYSB0cm9uZyBsw6NuaCB0aOG7lSBraW5oIHThur8gY+G7p2EgbeG7mXQgcXXhu5FjIGdpYS4NCg0KVGhlbyB0acOqdSBjaHXhuqluIHBow6JuIGxv4bqhaSBuZ8OgbmggY+G7p2EgTGnDqm4gSOG7o3AgUXXhu5FjLCBjw7MgdGjhu4MgcGjDom4gbG/huqFpIHRow6BuaCAzIG5ow7NtIG5nw6BuaCBs4bubbjoNCg0KLSBLaHUgduG7sWMgSTogTsO0bmcgbmdoaeG7h3AsIGzDom0gbmdoaeG7h3AgdsOgIG5nxrAgbmdoaeG7h3AuDQoNCi0gS2h1IHbhu7FjIElJOiBDw7RuZyBuZ2hp4buHcCwgeMOieSBk4buxbmcNCg0KLSBLaHUgduG7sWMgSUlJOiBE4buLY2ggduG7pQ0KDQotIEPGoSBj4bqldSBuZ8OgbmggY8O0bmcgbmdoaeG7h3Agbsaw4bubYyB0YSB0xrDGoW5nIMSR4buRaSDEkWEgZOG6oW5nIGJhbyBn4buTbTogQ8O0bmcgbmdoaeG7h3A7IGtoYWkga2hvw6FuZzsgY8O0bmcgbmdoaeG7h3AgY2jhur8gYmnhur9uLCBjaOG6vyB04bqhbzsgc+G6o24geHXhuqV0IHbDoCBwaMOibiBwaOG7kWkgxJFp4buHbiwga2jDrSDEkeG7kXQsIG7GsOG7m2MgbsOzbmcsIGjGoWkgbsaw4bubYyB2w6AgxJFp4buBdSBow7JhIGtow7RuZyBraMOtOyBDdW5nIGPhuqVwIG7GsOG7m2MsIGhv4bqhdCDEkeG7mW5nIHF14bqjbiBsw70gdsOgIHjhu60gbMO9IHLDoWMgdGjhuqNpLCBuxrDhu5tjIHRo4bqjaTsgWMOieSBk4buxbmcuDQoNClThu5VuZyBz4bqjbiBwaOG6qW0gdHJvbmcgbsaw4bubYyB0aGVvIGdpw6EgaGnhu4duIGjDoG5oIHBow6JuIHRoZW8gbmjDs20gbmfDoG5oIEPDtG5nIG5naGnhu4dwIHbDoCB4w6J5IGThu7FuZywgY8O0bmcgdGjhu6ljIHTDrW5oOiANCg0KDQogICAgICBU4buVbmcgc+G6o24gcGjhuqltIHRyb25nIG7GsOG7m2MgbmjDs20gbmfDoG5oIENOWEQJPQlDw7RuZyBuZ2hp4buHcCArIEtoYWkga2hvw6FuZyArIEPDtG5nIG5naGnhu4dwIGNo4bq/IGJp4bq/biwgY2jhur8gdOG6oW8gKyBT4bqjbiB4deG6pXQgdsOgIHBow6JuIHBo4buRaSDEkWnhu4duLCBraMOtIMSR4buRdCwgbsaw4bubYyBuw7NuZywgaMahaSBuxrDhu5tjIHbDoCDEkWnhu4F1IGjDsmEga2jDtG5nIGtow60gKyAgQ3VuZyBj4bqlcCBuxrDhu5tjLCBob+G6oXQgxJHhu5luZyBxdeG6o24gbMO9IHbDoCB44butIGzDvSByw6FjIHRo4bqjaSwgbsaw4bubYyB0aOG6o2kgKyBYw6J5IGThu7FuZy4NCg0KDQoNCiMjIEThu68gbGnhu4d1IG5naGnDqm4gY+G7qXUgDQoNCkjhu4cgdGjhu5FuZyBwaOG7lSBiaeG6v24gZMawzIMgbGnhu4d1IGNodW5nIHTEg25nIGPGsOG7nW5nIChlLUdERFMpDQpUcmFuZyBkxrDMgyBsaeG7h3UgdMOzbSB04bqvdCBxdeG7kWMgZ2lhIChOU0RQKSDigJMgVknhu4ZUIE5BTSA8aHR0cDovL25zZHAuZ3NvLmdvdi52bi8+DQoNCkThu68gbGnhu4d1IGfhu5NtIDUyIHF1YW4gc8OhdCB04burIHF1w70gMSBuxINtIDIwMTAgxJHhur9uIHF1w70gNCBuxINtIDIwMjIgZ+G7k20gNiBiaeG6v246DQoNCi0gQ046IEPDtG5nIG5naGnhu4dwDQoNCi0gS0s6IEtoYWkga2hvw6FuZw0KDQotIENOQ0JDVDogQ8O0bmcgbmdoaeG7h3AgY2jhur8gYmnhur9uLCBjaOG6vyB04bqhbw0KDQotIFNYUFA6IFPhuqNuIHh14bqldCB2w6AgcGjDom4gcGjhu5FpIMSRaeG7h24sIGtow60gxJHhu5F0LCBuxrDhu5tjIG7Ds25nLCBoxqFpIG7GsOG7m2MgdsOgIMSRaeG7gXUgaMOyYSBraMO0bmcga2jDrSANCg0KLSBDQzogQ3VuZyBj4bqlcCBuxrDhu5tjLCBob+G6oXQgxJHhu5luZyBxdeG6o24gbMO9IHbDoCB44butIGzDvSByw6FjIHRo4bqjaSwgbsaw4bubYyB0aOG6o2kgDQoNCi0gWEQ6IFjDonkgZOG7sW5nDQoNCmBgYHtyfSAgDQpzZXR3ZCgiRDovSOG7jEMgVOG6rFAvTcO0IHBo4buPbmcgbmfhuqt1IG5oacOqbiIpDQpsaWJyYXJ5KHhsc3gpDQpsaWJyYXJ5KHJlYWR4bCkNCmxpYnJhcnkoZGF0YS50YWJsZSkNCmQgPC0gcmVhZC54bHN4KCJHRFBfTVBOTi54bHN4IiwxKQ0KZGF0YS50YWJsZShkKQ0KYGBgDQoNCiMgWMOBQyDEkOG7ik5IIFBIw4JOIFBI4buQSSBD4bumQSBDw4FDIEJJ4bq+TiDEkOG6plUgVsOATyANCg0KIyMgQmnhur9uIEPDtG5nIG5naGnhu4dwDQojIyMgxJDhu5MgdGjhu4sgDQoNCmBgYHtyfQ0KQ04gPC0gZCRDTg0KS0sgPC0gZCRLSw0KQ05DQkNUIDwtIGQkQ05DQkNUDQpTWFBQIDwtIGQkU1hQUA0KQ0MgPC0gZCRDQw0KWEQgPC0gZCRYRA0KYGBgDQoNCg0KYGBge3J9DQpoaXN0KENOLCBjb2wgPSAncGluaycpDQpgYGANCg0KDQoNCiMjIyBLaeG7g20gxJHhu4tuaCBwaMOibiBwaOG7kWkgDQpLaeG7g20gxJHhu4tuaCBTaGFwaXJvLVdpbGsgVGVzdA0KDQpHaeG6oyB0aHV54bq/dDoNCg0KJEhfMCQ6IENOIHR1w6JuIHRoZW8gcGjDom4gcGjhu5FpIGNodeG6qW4NCg0KJEhfMSQ6IENOIGtow7RuZyB0dcOibiB0aGVvIHBow6JuIHBo4buRaSBjaHXhuqluDQoNCmBgYHtyfQ0Kc2hhcGlyby50ZXN0KENOKQ0KYGBgDQpL4bq/dCBxdeG6oyBraeG7g20gxJHhu4tuaCBjaG8gdGjhuqV5IHAtIHZhbHVlID0gMCwwNTc0OSA+IDAsMDUgbsOqbiBjaMawYSDEkeG7pyBjxqEgc+G7nyBiw6FjIGLhu48gJEhfMCQuIFbhuq15IENOIHR1w6JuIHRoZW8gcGjDom4gcGjhu5FpIGNodeG6qW4uDQoNCmBgYHtyfQ0KbGlicmFyeShnZ3Bsb3QyKQ0KZCB8PiBnZ3Bsb3QoKSArDQogIGdlb21fcXEoYWVzKHNhbXBsZSA9IENOKSwgY29sb3IgPSAncmVkJykgKw0KICBnZW9tX3FxX2xpbmUoYWVzKHNhbXBsZSA9IENOKSwgY29sb3IgPSAnZ3JlZW4nKQ0KYGBgDQoNCiMjIEJp4bq/biBLaGFpIGtob8OhbmcNCiMjIyDEkOG7kyB0aOG7iyANCg0KYGBge3J9DQpsaWJyYXJ5KGZCYXNpY3MpDQpiYXNpY1N0YXRzKEtLKQ0KYGBgDQoNCg0KYGBge3J9DQpoaXN0KEtLLCBjb2wgPSAncGluaycpDQpgYGANCg0KDQojIyMgS2nhu4NtIMSR4buLbmggcGjDom4gcGjhu5FpIA0KDQotIEtp4buDbSDEkeG7i25oIFNoYXBpcm8tV2lsayBUZXN0DQoNCkdp4bqjIHRodXnhur90Og0KDQokSF8wJDogS0sgdHXDom4gdGhlbyBwaMOibiBwaOG7kWkgY2h14bqpbg0KDQokSF8xJDogS0sga2jDtG5nIHR1w6JuIHRoZW8gcGjDom4gcGjhu5FpIGNodeG6qW4NCg0KYGBge3J9DQpzaGFwaXJvLnRlc3QoS0spDQpgYGANCkvhur90IHF14bqjIGtp4buDbSDEkeG7i25oIGNobyB0aOG6pXkgcC0gdmFsdWUgPSAwLDAwMDEwMzcgPCAwLDA1IG7Dqm4gdGEgYsOhYyBi4buPICRIXzAkLiBW4bqteSBLSyBraMO0bmcgdHXDom4gdGhlbyBwaMOibiBwaOG7kWkgY2h14bqpbi4NCg0KYGBge3J9DQpsaWJyYXJ5KGdncGxvdDIpDQpkIHw+IGdncGxvdCgpICsNCiAgZ2VvbV9xcShhZXMoc2FtcGxlID0gS0spLCBjb2xvciA9ICdyZWQnKSArDQogIGdlb21fcXFfbGluZShhZXMoc2FtcGxlID0gS0spLCBjb2xvciA9ICdncmVlbicpDQpgYGANCg0KDQotIEtp4buDbSDEkeG7i25oIEtvbG1vZ29yb3YtU21pcm5vdiAoS1MpDQoNCkdp4bqjIHRodXnhur90IA0KDQokSF8wJDogS0sgdHXDom4gdGhlbyBwaMOibiBwaOG7kWkgbcWpDQoNCiRIXzEkOiBLSyBraMO0bmcgdHXDom4gdGhlbyBwaMOibiBwaOG7kWkgbcWpDQoNCg0KYGBge3J9DQprcy50ZXN0KEtLLCB5ID0gJ3BleHAnKQ0KYGBgDQpL4bq/dCBxdeG6oyBraeG7g20gxJHhu4tuaCBjaG8gdGjhuqV5IHAtIHZhbHVlIDwgMCwwNSBuw6puIHRhIGLDoWMgYuG7jyAkSF8wJC4gVuG6rXkgS0sga2jDtG5nIHR1w6JuIHRoZW8gcGjDom4gcGjhu5FpIG3FqS4NCg0KYGBge3J9DQprcy50ZXN0KEtLLCB5ID0gJ3Bsbm9ybScpDQpgYGANCkvhur90IHF14bqjIGtp4buDbSDEkeG7i25oIGNobyB0aOG6pXkgcC0gdmFsdWUgPCAwLDA1IG7Dqm4gdGEgYsOhYyBi4buPICRIXzAkLiBW4bqteSBLSyBraMO0bmcgdHXDom4gdGhlbyBwaMOibiBwaOG7kWkgbG9nYSBjaHXhuqluLg0KDQoNCg0KDQojIyBCaeG6v24gQ8O0bmcgbmdoaeG7h3AgY2jhur8gYmnhur9uLCBjaOG6vyB04bqhbw0KIyMjIMSQ4buTIHRo4buLIA0KDQoNCmBgYHtyfQ0KaGlzdChDTkNCQ1QsIGNvbCA9ICdwaW5rJykNCmBgYA0KDQoNCiMjIyBLaeG7g20gxJHhu4tuaCBwaMOibiBwaOG7kWkgDQotIEtp4buDbSDEkeG7i25oIFNoYXBpcm8tV2lsayBUZXN0DQoNCkdp4bqjIHRodXnhur90Og0KDQokSF8wJDogQ05DQkNUIHR1w6JuIHRoZW8gcGjDom4gcGjhu5FpIGNodeG6qW4NCg0KJEhfMSQ6IENOQ0JDVCBraMO0bmcgdHXDom4gdGhlbyBwaMOibiBwaOG7kWkgY2h14bqpbg0KDQpgYGB7cn0NCnNoYXBpcm8udGVzdChDTkNCQ1QpDQpgYGANCkvhur90IHF14bqjIGtp4buDbSDEkeG7i25oIGNobyB0aOG6pXkgcC0gdmFsdWUgPSAwLDE3OTEgPiAwLDA1IG7Dqm4gY2jGsGEgxJHhu6cgY8ahIHPhu58gYsOhYyBi4buPICRIXzAkLiBW4bqteSBDTkNCQ1QgdHXDom4gdGhlbyBwaMOibiBwaOG7kWkgY2h14bqpbi4NCg0KYGBge3J9DQpsaWJyYXJ5KGdncGxvdDIpDQpkIHw+IGdncGxvdCgpICsNCiAgZ2VvbV9xcShhZXMoc2FtcGxlID0gQ05DQkNUKSwgY29sb3IgPSAncmVkJykgKw0KICBnZW9tX3FxX2xpbmUoYWVzKHNhbXBsZSA9IENOQ0JDVCksIGNvbG9yID0gJ2dyZWVuJykNCmBgYA0KDQoNCiMjIEJp4bq/biBT4bqjbiB4deG6pXQgdsOgIHBow6JuIHBo4buRaSDEkWnhu4duLCBraMOtIMSR4buRdCwgbsaw4bubYyBuw7NuZywgaMahaSBuxrDhu5tjIHbDoCDEkWnhu4F1IGjDsmEga2jDtG5nIGtow60gDQoNCiMjIyDEkOG7kyB0aOG7iyANCg0KYGBge3J9DQpsaWJyYXJ5KGZCYXNpY3MpDQpiYXNpY1N0YXRzKFNYUFApDQpgYGANCg0KDQpgYGB7cn0NCmhpc3QoU1hQUCwgY29sID0gJ3BpbmsnKQ0KYGBgDQoNCg0KIyMjIEtp4buDbSDEkeG7i25oIHBow6JuIHBo4buRaSANCi0gS2nhu4NtIMSR4buLbmggU2hhcGlyby1XaWxrIFRlc3QNCg0KR2nhuqMgdGh1eeG6v3Q6DQoNCiRIXzAkOiBTWFBQIHR1w6JuIHRoZW8gcGjDom4gcGjhu5FpIGNodeG6qW4NCg0KJEhfMSQ6IFNYUFAga2jDtG5nIHR1w6JuIHRoZW8gcGjDom4gcGjhu5FpIGNodeG6qW4NCg0KYGBge3J9DQpzaGFwaXJvLnRlc3QoU1hQUCkNCmBgYA0KYA0KS+G6v3QgcXXhuqMga2nhu4NtIMSR4buLbmggY2hvIHRo4bqleSBwLSB2YWx1ZSA9IDAsMDQwNjUgPCAwLDA1IG7Dqm4gdGEgYsOhYyBi4buPICRIXzAkLiBW4bqteSBTWFBQIGtow7RuZyB0dcOibiB0aGVvIHBow6JuIHBo4buRaSBjaHXhuqluLg0KDQpgYGB7cn0NCmxpYnJhcnkoZ2dwbG90MikNCmQgfD4gZ2dwbG90KCkgKw0KICBnZW9tX3FxKGFlcyhzYW1wbGUgPSBTWFBQKSwgY29sb3IgPSAncmVkJykgKw0KICBnZW9tX3FxX2xpbmUoYWVzKHNhbXBsZSA9IFNYUFApLCBjb2xvciA9ICdncmVlbicpDQpgYGANCg0KLSBLaeG7g20gxJHhu4tuaCBLb2xtb2dvcm92LVNtaXJub3YgKEtTKQ0KDQpHaeG6oyB0aHV54bq/dCANCg0KJEhfMCQ6IFNYUFAgdHXDom4gdGhlbyBwaMOibiBwaOG7kWkgbcWpDQoNCiRIXzEkOiBTWFBQIGtow7RuZyB0dcOibiB0aGVvIHBow6JuIHBo4buRaSBtxakNCg0KDQpgYGB7cn0NCmtzLnRlc3QoU1hQUCwgeSA9ICdwZXhwJykNCmBgYA0KS+G6v3QgcXXhuqMga2nhu4NtIMSR4buLbmggY2hvIHRo4bqleSBwLSB2YWx1ZSA8IDAsMDUgbsOqbiB0YSBiw6FjIGLhu48gJEhfMCQuIFbhuq15IFNYUFAga2jDtG5nIHR1w6JuIHRoZW8gcGjDom4gcGjhu5FpIG3FqS4NCg0KYGBge3J9DQprcy50ZXN0KFNYUFAsIHkgPSAncGxub3JtJykNCmBgYA0KS+G6v3QgcXXhuqMga2nhu4NtIMSR4buLbmggY2hvIHRo4bqleSBwLSB2YWx1ZSA8IDAsMDUgbsOqbiB0YSBiw6FjIGLhu48gJEhfMCQuIFbhuq15IFNYUFAga2jDtG5nIHR1w6JuIHRoZW8gcGjDom4gcGjhu5FpIGxvZ2EgY2h14bqpbi4NCg0KDQoNCg0KIyMgQmnhur9uIEN1bmcgY+G6pXAgbsaw4bubYywgaG/huqF0IMSR4buZbmcgcXXhuqNuIGzDvSB2w6AgeOG7rSBsw70gcsOhYyB0aOG6o2ksIG7GsOG7m2MgdGjhuqNpIA0KDQojIyMgxJDhu5MgdGjhu4sgDQoNCg0KYGBge3J9DQpoaXN0KENDLCBjb2wgPSAncGluaycpDQpgYGANCg0KDQojIyMgS2nhu4NtIMSR4buLbmggcGjDom4gcGjhu5FpIA0KDQotIEtp4buDbSDEkeG7i25oIFNoYXBpcm8tV2lsayBUZXN0DQoNCkdp4bqjIHRodXnhur90Og0KDQokSF8wJDogQ0MgdHXDom4gdGhlbyBwaMOibiBwaOG7kWkgY2h14bqpbg0KDQokSF8xJDogQ0Mga2jDtG5nIHR1w6JuIHRoZW8gcGjDom4gcGjhu5FpIGNodeG6qW4NCg0KYGBge3J9DQpzaGFwaXJvLnRlc3QoQ0MpDQpgYGANCkvhur90IHF14bqjIGtp4buDbSDEkeG7i25oIGNobyB0aOG6pXkgcC0gdmFsdWUgPSAwLDYwMzkgPiAwLDA1IG7Dqm4gY2jGsGEgxJHhu6cgY8ahIHPhu58gYsOhYyBi4buPICRIXzAkLiBW4bqteSBDQyB0dcOibiB0aGVvIHBow6JuIHBo4buRaSBjaHXhuqluLg0KDQpgYGB7cn0NCmxpYnJhcnkoZ2dwbG90MikNCmQgfD4gZ2dwbG90KCkgKw0KICBnZW9tX3FxKGFlcyhzYW1wbGUgPSBDQyksIGNvbG9yID0gJ3JlZCcpICsNCiAgZ2VvbV9xcV9saW5lKGFlcyhzYW1wbGUgPSBDQyksIGNvbG9yID0gJ2dyZWVuJykNCmBgYA0KDQojIyBCaeG6v24gWMOieSBk4buxbmcNCiMjIyDEkOG7kyB0aOG7iyANCg0KYGBge3J9DQpsaWJyYXJ5KGZCYXNpY3MpDQpiYXNpY1N0YXRzKFhEKQ0KYGBgDQoNCg0KYGBge3J9DQpoaXN0KFhELCBjb2wgPSAncGluaycpDQpgYGANCg0KDQojIyMgS2nhu4NtIMSR4buLbmggcGjDom4gcGjhu5FpIA0KLSBLaeG7g20gxJHhu4tuaCBTaGFwaXJvLVdpbGsgVGVzdA0KDQpHaeG6oyB0aHV54bq/dDoNCg0KJEhfMCQ6IFhEIHR1w6JuIHRoZW8gcGjDom4gcGjhu5FpIGNodeG6qW4NCg0KJEhfMSQ6IFhEIGtow7RuZyB0dcOibiB0aGVvIHBow6JuIHBo4buRaSBjaHXhuqluDQoNCmBgYHtyfQ0Kc2hhcGlyby50ZXN0KFhEKQ0KYGBgDQpL4bq/dCBxdeG6oyBraeG7g20gxJHhu4tuaCBjaG8gdGjhuqV5IHAtIHZhbHVlID0gMCwwMDk1MTEgPCAwLDA1IG7Dqm4gdGEgYsOhYyBi4buPICRIXzAkLiBW4bqteSBYRCBraMO0bmcgdHXDom4gdGhlbyBwaMOibiBwaOG7kWkgY2h14bqpbi4NCg0KYGBge3J9DQpsaWJyYXJ5KGdncGxvdDIpDQpkIHw+IGdncGxvdCgpICsNCiAgZ2VvbV9xcShhZXMoc2FtcGxlID0gWEQpLCBjb2xvciA9ICdyZWQnKSArDQogIGdlb21fcXFfbGluZShhZXMoc2FtcGxlID0gWEQpLCBjb2xvciA9ICdncmVlbicpDQpgYGANCg0KLSBLaeG7g20gxJHhu4tuaCBLb2xtb2dvcm92LVNtaXJub3YgKEtTKQ0KDQpHaeG6oyB0aHV54bq/dCANCg0KJEhfMCQ6IFhEIHR1w6JuIHRoZW8gcGjDom4gcGjhu5FpIG3FqQ0KDQokSF8xJDogWEQga2jDtG5nIHR1w6JuIHRoZW8gcGjDom4gcGjhu5FpIG3FqQ0KDQpgYGB7cn0NCmtzLnRlc3QoWEQsIHkgPSAncGV4cCcpDQpgYGANCkvhur90IHF14bqjIGtp4buDbSDEkeG7i25oIGNobyB0aOG6pXkgcC0gdmFsdWUgPCAwLDA1IG7Dqm4gdGEgYsOhYyBi4buPICRIXzAkLiBW4bqteSBYRCBraMO0bmcgdHXDom4gdGhlbyBwaMOibiBwaOG7kWkgbcWpLg0KDQpgYGB7cn0NCmtzLnRlc3QoWEQsIHkgPSAncGxub3JtJykNCmBgYA0KS+G6v3QgcXXhuqMga2nhu4NtIMSR4buLbmggY2hvIHRo4bqleSBwLSB2YWx1ZSA8IDAsMDUgbsOqbiB0YSBiw6FjIGLhu48gJEhfMCQuIFbhuq15IFhEIGtow7RuZyB0dcOibiB0aGVvIHBow6JuIHBo4buRaSBsb2dhIGNodeG6qW4uDQoNCg0KDQojIEvhur5UIFFV4bqiIE3DlCBQSOG7jk5HICANCg0KDQoNCiMjIE3DtCBwaOG7j25nIGPDoWMgYmnhur9uIMSR4bqndSB2w6BvIA0KIyMjIEJp4bq/biBDw7RuZyBuZ2hp4buHcA0KDQpgYGB7cn0NCmxpYnJhcnkoZkJhc2ljcykNCmJhc2ljU3RhdHMoZCRDTikNCmBgYA0KDQpgYGB7cn0NCiMgQ8O0bmcgbmdoaeG7h3AgDQpjbiA8LSBybm9ybSgxMDAwMCwgbWVhbiA9IDMwLjA0NjIxNCwgc2QgPSAxLjYwODMwOSkNCmhpc3QoY24pDQpgYGANCg0KDQoNCiMjIyBCaeG6v24gQ8O0bmcgbmdoaeG7h3AgY2jhur8gYmnhur9uLCBjaOG6vyB04bqhbw0KDQpgYGB7cn0NCmxpYnJhcnkoZkJhc2ljcykNCmJhc2ljU3RhdHMoZCRDTkNCQ1QpDQpgYGANCg0KYGBge3J9DQojIEPDtG5nIG5naGnhu4dwIGNo4bq/IGJp4bq/biwgY2jhur8gdOG6oW8gDQpjYiA8LSBybm9ybSgxMDAwMCwgbWVhbiA9IDIxLjczNDM0Miwgc2QgPSAyLjM5MDAzOCkNCmhpc3QoY2IpDQpgYGANCg0KIyMjIEJp4bq/biBDdW5nIGPhuqVwIG7GsOG7m2MsIGhv4bqhdCDEkeG7mW5nIHF14bqjbiBsw70gdsOgIHjhu60gbMO9IHLDoWMgdGjhuqNpLCBuxrDhu5tjIHRo4bqjaSANCg0KYGBge3J9DQpsaWJyYXJ5KGZCYXNpY3MpDQpiYXNpY1N0YXRzKGQkQ0MpDQpgYGANCg0KDQpgYGB7cn0NCiMgQ3VuZyBj4bqlcCBuxrDhu5tjLCBob+G6oXQgxJHhu5luZyBxdeG6o24gbMO9IHbDoCB44butIGzDvSByw6FjIHRo4bqjaSwgbsaw4bubYyB0aOG6o2kgDQpjYyA8LSBybm9ybSgxMDAwMCwgbWVhbiA9IDAuNDcyNzI0LCBzZCA9IDAuMDQyNDU4KQ0KaGlzdChjYykNCmBgYA0KDQojIyMgQmnhur9uIEtoYWkga2hvw6FuZw0KDQpgYGB7cn0NCmxpYnJhcnkoZHBseXIpDQpuX2JpbnMgPC0gMTANCmJyZWFrcyA8LSBxdWFudGlsZShkJEtLLCBwcm9icyA9IHNlcSgwLCAxLCBsZW5ndGgub3V0ID0gbl9iaW5zICsgMSksIHR5cGUgPSAxLCBuYS5ybSA9IFRSVUUpDQoNCmtrZyA8LSBzYXBwbHkoMjpsZW5ndGgoYnJlYWtzKSwgZnVuY3Rpb24oaSkgc2FtcGxlKGQkS0tbZCRLSyA+PSBicmVha3NbaSAtIDFdICYgZCRLSyA8PSBicmVha3NbaV1dLCAxMCwgcmVwbGFjZSA9IFRSVUUpKQ0KDQpLIDwtIHRhYmxlKGtrZykNCg0KS2sgPC0gYXMuZGF0YS5mcmFtZShLKSAlPiUNCiAgbXV0YXRlKFRhbl9zdWF0ID0gRnJlcSAvIHN1bShGcmVxKSkNCktrDQpgYGANCg0KDQpgYGB7cn0NCiMgS2hhaSBraG/DoW5nIA0KcHJvYjEgPC0gS2skVGFuX3N1YXQNCmtoYWlraG9hbmcxIDwtIHNhbXBsZShLayRra2csIDEwMDAwLCByZXBsYWNlID0gVFJVRSAsIHByb2IgPSBwcm9iMSkNCmtoYWlraG9hbmcyIDwtICBhcy5jaGFyYWN0ZXIoa2hhaWtob2FuZzEpDQprayA8LSBhcy5udW1lcmljKGtoYWlraG9hbmcyKQ0KaGlzdChraykNCmBgYA0KDQojIyMgQmnhur9uIFPhuqNuIHh14bqldCB2w6AgcGjDom4gcGjhu5FpIMSRaeG7h24sIGtow60gxJHhu5F0LCBuxrDhu5tjIG7Ds25nLCBoxqFpIG7GsOG7m2MgdsOgIMSRaeG7gXUgaMOyYSBraMO0bmcga2jDrSANCg0KYGBge3J9DQpsaWJyYXJ5KGRwbHlyKQ0Kbl9iaW5zIDwtIDEwDQpicmVha3MgPC0gcXVhbnRpbGUoZCRTWFBQLCBwcm9icyA9IHNlcSgwLCAxLCBsZW5ndGgub3V0ID0gbl9iaW5zICsgMSksIHR5cGUgPSAxLCBuYS5ybSA9IFRSVUUpDQoNCnN4IDwtIHNhcHBseSgyOmxlbmd0aChicmVha3MpLCBmdW5jdGlvbihpKSBzYW1wbGUoZCRTWFBQW2QkU1hQUCA+PSBicmVha3NbaSAtIDFdICYgZCRTWFBQIDw9IGJyZWFrc1tpXV0sIDEwLCByZXBsYWNlID0gVFJVRSkpDQoNClMgPC0gdGFibGUoc3gpDQoNClN4IDwtIGFzLmRhdGEuZnJhbWUoUykgJT4lDQogIG11dGF0ZShUYW5fc3VhdCA9IEZyZXEgLyBzdW0oRnJlcSkpDQoNClN4DQpgYGANCg0KDQoNCmBgYHtyfQ0KIyBT4bqjbiB4deG6pXQgdsOgIHBow6JuIHBo4buRaSDEkWnhu4duLCBraMOtIMSR4buRdCwgbsaw4bubYyBuw7NuZywgaMahaSBuxrDhu5tjIHbDoCDEkWnhu4F1IGjDsmEga2jDtG5nIGtow60gDQpwcm9iMiA8LSBTeCRUYW5fc3VhdA0Kc2FueHVhdDEgPC0gc2FtcGxlKFN4JHN4LCAxMDAwMCwgcmVwbGFjZSA9IFRSVUUgLCBwcm9iID0gcHJvYjIpDQpzYW54dWF0MiA8LSAgYXMuY2hhcmFjdGVyKHNhbnh1YXQxKQ0Kc3hwcCA8LSBhcy5udW1lcmljKHNhbnh1YXQyKQ0KaGlzdChzeHBwKQ0KYGBgDQoNCiMjIyBCaeG6v24gWMOieSBk4buxbmcNCmBgYHtyfQ0KbGlicmFyeShkcGx5cikNCm5fYmlucyA8LSAxMA0KYnJlYWtzIDwtIHF1YW50aWxlKGQkWEQsIHByb2JzID0gc2VxKDAsIDEsIGxlbmd0aC5vdXQgPSBuX2JpbnMgKyAxKSwgdHlwZSA9IDEsIG5hLnJtID0gVFJVRSkNCg0KeGF5ZHVuZyA8LSBzYXBwbHkoMjpsZW5ndGgoYnJlYWtzKSwgZnVuY3Rpb24oaSkgc2FtcGxlKGQkWERbZCRYRCA+PSBicmVha3NbaSAtIDFdICYgZCRYRCA8PSBicmVha3NbaV1dLCAxMCwgcmVwbGFjZSA9IFRSVUUpKQ0KDQpYIDwtIHRhYmxlKHhheWR1bmcpDQoNClhkIDwtIGFzLmRhdGEuZnJhbWUoWCkgJT4lDQogIG11dGF0ZShUYW5fc3VhdCA9IEZyZXEgLyBzdW0oRnJlcSkpDQpYZA0KYGBgDQoNCg0KDQpgYGB7cn0NCiMgWMOieSBk4buxbmcNCnByb2IzIDwtIFhkJFRhbl9zdWF0DQp4YXlkdW5nMSA8LSBzYW1wbGUoWGQkeGF5ZHVuZywgMTAwMDAsIHJlcGxhY2UgPSBUUlVFICwgcHJvYiA9IHByb2IzKQ0KeGF5ZHVuZzIgPC0gIGFzLmNoYXJhY3Rlcih4YXlkdW5nMSkNCnhkIDwtIGFzLm51bWVyaWMoeGF5ZHVuZzIpDQpoaXN0KHhkKQ0KYGBgDQoNCiMjIEvhur90IHF14bqjIA0KYGBge3J9DQojIEPGoSBj4bqldSBHRFAgbmjDs20gY8O0bmcgbmdoaeG7h3AgdsOgIHjDonkgZOG7sW5nIA0KDQpHRFAgPC0gY24gKyBrayArIGNiICsgc3hwcCArIGNjICsgeGQgDQoNCmhpc3QoR0RQKQ0KDQpgYGANCmBgYHtyfQ0Kc3VtbWFyeShHRFApDQpgYGANCkdpw6EgdHLhu4sgdHJ1bmcgYsOsbmggY+G7p2EgY8ahIGPhuqV1IEdEUCBuaMOzbSBuZ8OgbmggY8O0bmcgbmdoaeG7h3AgdsOgIHjDonkgZOG7sW5nIHThuqFpIFZp4buHdCBOYW0gbMOgIDY1LDI4JS4gVHJvbmcgZOG7ryBsaeG7h3UgZ+G7kWMsIHbDoG8gcXXDvSA0IG7Eg20gMjAyMiBnacOhIHRy4buLIG7DoHkgbMOgIDY4LDU3JS4gVMOhYyBnaeG6oyB0aeG6v24gaMOgbmggcGjDom4gR0RQIHbhu6thIG3DtCBwaOG7j25nIMSRxrDhu6NjIGzDoG0gMiDEkW/huqFuIGzDoCB0xINuZyB2w6AgZ2nhuqNtLiANCg0KDQoNCmBgYHtyfQ0KR0RQZ2lhbSA8LSBHRFBbR0RQIDw9IDY4LjU3XQ0KR0RQdGFuZyA8LSBHRFBbR0RQID4gNjguNTddDQoNCnRhYmxlKGN1dChHRFAsIGJyZWFrcz0gYygwLCA2OC41NywgMTAwKSwgbGFiZWxzID0gYygnZ2lhbScsJ3RhbmcnKSkpDQpgYGANCg0KDQpgYGB7cn0NCmxlbmd0aChHRFBnaWFtKS9sZW5ndGgoR0RQKQ0KYGBgDQoNCg0KYGBge3J9DQpsZW5ndGgoR0RQdGFuZykvbGVuZ3RoKEdEUCkNCmBgYA0KROG7sWEgdsOgbyBr4bq/dCBxdeG6oyBtw7QgcGjhu49uZyB24bubaSAxMDAwMCBxdWFuIHPDoXQsIHjDoWMgc3XhuqV0IMSR4buDIGPGoSBj4bqldSBHRFAgbmjDs20gbmfDoG5oIGPDtG5nIG5naGnhu4dwIHbDoCB4w6J5IGThu7FuZyB0xINuZyBzbyB24bubaSBxdcO9IDQgbsSDbSAyMDIyIGzDoCAyMiwzJSB2w6AgeMOhYyBzdeG6pXQgxJHhu4MgY8ahIGPhuqV1IEdEUCBuaMOzbSBuZ8OgbmggY8O0bmcgbmdoaeG7h3AgdsOgIHjDonkgZOG7sW5nIGdp4bqjbSBzbyB24bubaSBxdcO9IDQgbsSDbSAyMDIyIGzDoCA3Nyw3JS4gIA0KDQoNCmBgYHtyfQ0KR0RQdGFuZ2l0IDwtIEdEUHRhbmdbR0RQdGFuZyA8PSA3MF0NCkdEUHRhbmd2dWEgPC0gR0RQdGFuZ1tHRFB0YW5nID4gNzAgJiBHRFB0YW5nIDw9IDc1XQ0KR0RQdGFuZ2NhbyA8LSBHRFB0YW5nW0dEUHRhbmcgPiA3NV0NCg0KbGVuZ3RoKEdEUHRhbmdpdCkvbGVuZ3RoKEdEUCkNCmBgYA0KDQoNCmBgYHtyfQ0KbGVuZ3RoKEdEUHRhbmd2dWEpL2xlbmd0aChHRFApDQpgYGANCg0KYGBge3J9DQpsZW5ndGgoR0RQdGFuZ2NhbykvbGVuZ3RoKEdEUCkNCmBgYA0KWMOhYyBzdeG6pXQgxJHhu4MgY8ahIGPhuqV1IEdEUCBuaMOzbSBuZ8OgbmggY8O0bmcgbmdoaeG7h3AgdsOgIHjDonkgZOG7sW5nIHTEg25nIMOtdCBraG/huqNuZyAoNjgsNTcgOyA3MF0gbMOgIDksODIlIDsgeMOhYyBzdeG6pXQgR0RQIHTEg25nIHbhu6thIGtob+G6o25nICg3MCw3NV0gbMOgIDExLDc1JSB2w6AgeMOhYyBzdeG6pXQgR0RQIHTEg25nIGNhbyBraG/huqNuZyAoNzUsMTAwXSBsw6AgMCw3MyUuDQoNCg0KYGBge3J9DQpHRFBnaWFtbmhpZXUgPC0gR0RQZ2lhbVtHRFBnaWFtIDw9IDYwXQ0KR0RQZ2lhbXZ1YSA8LSBHRFBnaWFtW0dEUGdpYW0gPiA2MCAmIEdEUGdpYW0gPD0gNjVdDQpHRFBnaWFtaXQgPC0gR0RQZ2lhbVtHRFBnaWFtID4gNjVdDQoNCmxlbmd0aChHRFBnaWFtaXQpL2xlbmd0aChHRFApDQpgYGANCg0KDQpgYGB7cn0NCmxlbmd0aChHRFBnaWFtdnVhKS9sZW5ndGgoR0RQKQ0KYGBgDQoNCmBgYHtyfQ0KbGVuZ3RoKEdEUGdpYW1uaGlldSkvbGVuZ3RoKEdEUCkNCmBgYA0KWMOhYyBzdeG6pXQgxJHhu4MgY8ahIGPhuqV1IEdEUCBuaMOzbSBuZ8OgbmggY8O0bmcgbmdoaeG7h3AgdsOgIHjDonkgZOG7sW5nIGdp4bqjbSDDrXQga2hv4bqjbmcgKDY1IDsgNjgsNTddIGzDoCAzNSwxNCUgOyB4w6FjIHN14bqldCBHRFAgZ2nhuqNtIHbhu6thIGtob+G6o25nICg2MCw2NV0gbMOgIDM2LDc4JSB2w6AgeMOhYyBzdeG6pXQgR0RQIGdp4bqjbSBuaGnhu4F1IGtob+G6o25nICgwLDYwXSBsw6AgNSw3OCUuDQoNCiMgS+G6vlQgTFXhuqxODQpCw6BpIHRp4buDdSBsdeG6rW4gxJHDoyB04bqtbiBk4bulbmcgcGjGsMahbmcgcGjDoXAgbcO0IHBo4buPbmcgTW9udGUgQ2FybG8gxJHhu4MgdOG6oW8gcmEgY8OhYyBr4buLY2ggYuG6o24ga2jhuqMgdGhpIHbhu4EgY8ahIGPhuqV1IEdEUCB0cm9uZyBjw6FjIG5ow7NtIG5nw6BuaCBjw7RuZyBuZ2hp4buHcCB2w6AgeMOieSBk4buxbmcgY+G7p2EgVmnhu4d0IE5hbSwgdHJvbmcga2hv4bqjbmcgdGjhu51pIGdpYW4gdOG7qyBxdcO9IDEgbsSDbSAyMDEwIMSR4bq/biBxdcO9IDQgbsSDbSAyMDIyLiBL4bq/dCBxdeG6oyBj4bunYSBuZ2hpw6puIGPhu6l1IMSRw6MgbWFuZyBs4bqhaSBuaOG7r25nIHRow7RuZyB0aW4gcXVhbiB0cuG7jW5nIHbhu4EgeHUgaMaw4bubbmcgcGjDoXQgdHJp4buDbiB0cm9uZyB0xrDGoW5nIGxhaS4NCg0KQ+G7pSB0aOG7gywga+G6v3QgcXXhuqMgbcO0IHBo4buPbmcgxJHDoyBjaG8gdGjhuqV5IGto4bqjIG7Eg25nIGPGoSBj4bqldSBHRFAgbmjDs20gbmfDoG5oIGPDtG5nIG5naGnhu4dwIHbDoCB4w6J5IGThu7FuZyB0xINuZyBsw6puIHNvIHbhu5tpIHF1w70gNCBuxINtIDIwMjIgbMOgIDIyLDMlIHbDoCB4w6FjIHN14bqldCDEkeG7gyBjxqEgY+G6pXUgR0RQIG5ow7NtIG5nw6BuaCBjw7RuZyBuZ2hp4buHcCB2w6AgeMOieSBk4buxbmcgZ2nhuqNtIHNvIHbhu5tpIHF1w70gNCBuxINtIDIwMjIgbMOgIDc3LDclLiDEkGnhu4F1IG7DoHkgxJHGsGEgcmEgY+G6o25oIGLDoW8gduG7gSBt4buZdCB0xrDGoW5nIGxhaSBjw7MgdGjhu4MgxJHhu5FpIG3hurd0IHbhu5tpIG5o4buvbmcgYmnhur9uIMSR4buVaSB0cm9uZyBjxqEgY+G6pXUga2luaCB04bq/LCB2w6Agdmnhu4djIHBo4bqjaSDEkeG6o20gYuG6o28gcuG6sW5nIGPDoWMgYmnhu4duIHBow6FwIHRow61jaCBo4bujcCDEkcaw4bujYyDEkcawYSByYSDEkeG7gyDhu6luZyBwaMOzIHbhu5tpIGPDoWMgdGhheSDEkeG7lWkgdGnhu4FtIG7Eg25nLg0KDQpOaMawIHbhuq15LCBiw6BpIHRp4buDdSBsdeG6rW4ga2jDtG5nIGNo4buJIGdp4bubaSB0aGnhu4d1IG3hu5l0IHBoxrDGoW5nIHBow6FwIG3DtCBwaOG7j25nIHF1YW4gdHLhu41uZyDEkeG7gyBk4buxIGLDoW8gY8ahIGPhuqV1IEdEUCB0cm9uZyB0xrDGoW5nIGxhaSBt4buZdCBjw6FjaCBsaW5oIGhv4bqhdCwgbcOgIGPDsm4gbWFuZyBs4bqhaSBuaOG7r25nIGvhur90IHF14bqjIHF1YW4gdHLhu41uZyB24buBIGto4bqjIG7Eg25nIHTEg25nIHRyxrDhu59uZyB0cm9uZyBjxqEgY+G6pXUgR0RQIG5ow7NtIG5nw6BuaCBjw7RuZyBuZ2hp4buHcCB2w6AgeMOieSBk4buxbmcgY+G7p2EgbuG7gW4ga2luaCB04bq/IFZp4buHdCBOYW0uIMSQaeG7gXUgbsOgeSBjw7MgdGjhu4MgZ2nDunAgY8OhYyBuaMOgIHF14bqjbiBsw70gdsOgIG5nxrDhu51pIMSR4buLbmggaMOsbmggY2jDrW5oIHPDoWNoIGPDsyBjw6FpIG5ow6xuIHRvw6BuIGRp4buHbiBoxqFuIHbhu4EgY8OhYyB4dSBoxrDhu5tuZyBraW5oIHThur8gdsOgIGjGsOG7m25nIGThuqtuIHF1eeG6v3QgxJHhu4tuaCBj4bunYSBo4buNIHRyb25nIHTGsMahbmcgbGFpLg0KDQoNCiANCg==