ĐỀ TÀI: “PHÂN TÍCH ẢNH HƯỞNG CỦA CÁC YẾU TỐ MÔI TRƯỜNG ĐẾN CHẤT LƯỢNG KHÔNG KHÍ TẠI THÀNH PHỐ SEOUL NĂM 2019”

LỜI CẢM ƠN

Kính gửi Thầy Trần Mạnh Tường,

Em xin gửi lời cảm ơn sâu sắc đến Thầy vì sự hướng dẫn và hỗ trợ quý báu trong suốt quá trình Thầy giảng dạy môn Ngôn ngữ lập trình trong phân tích dữ liệu. Sự tận tâm và kiến thức sâu rộng của Thầy không chỉ giúp em hiểu rõ hơn về tầm quan trọng của môn học này mà còn đóng vai trò quan trọng trong việc phát triển kỹ năng nghiên cứu và phân tích, áp dụng vào thực tế trong tương lai.

Em muốn bày tỏ lòng biết ơn chân thành với sự hỗ trợ không ngừng nghỉ và những gợi ý có giá trị mà Thầy đã dành cho em. Những lời chỉ dẫn và phản hồi từ Thầy đã giúp em hoàn thiện và nâng cao chất lượng của công trình nghiên cứu của mình, đặc biệt là trong việc tổng kết và viết bài tiểu luận cuối kỳ.

Em tin rằng kiến thức và kinh nghiệm mà em đã tích lũy từ môn học này sẽ luôn có giá trị trong quá trình học tập và sự nghiệp sau này của em. Một lần nữa, em xin chân thành cảm ơn sự hỗ trợ và sự cống hiến của Thầy trong suốt thời gian qua.

Trân trọng,

Nguyễn Phạm Thúy An

I. GIỚI THIỆU ĐỀ TÀI


1. Đặt vấn đề

Đối diện với sự gia tăng về đô thị hóa và công nghiệp hóa, vấn đề về chất lượng không khí ngày càng trở nên nghiêm trọng trong các thành phố trên khắp thế giới. Việc ô nhiễm không khí không chỉ ảnh hưởng đến sức khỏe của con người mà còn đe dọa đến sự phát triển bền vững của môi trường sống. Trong bối cảnh này, việc phân tích các yếu tố ảnh hưởng đến chất lượng không khí trong một thành phố trở nên cấp bách và quan trọng hơn bao giờ hết.

Như một điểm xuất phát cho nghiên cứu này, chúng ta cần nhìn vào sự phức tạp của các yếu tố môi trường và xã hội đang tác động lên chất lượng không khí. Khí thải từ giao thông, công nghiệp và tiêu thụ năng lượng, cùng với các yếu tố như thời tiết, địa lý và chính sách môi trường, tất cả đều đóng vai trò quan trọng trong việc hình thành mức độ ô nhiễm không khí trong thành phố. Điều này đặt ra câu hỏi về cách các yếu tố này tương tác với nhau và làm thế nào chúng ảnh hưởng đến chất lượng không khí, cũng như những biện pháp cần được thực hiện để giảm thiểu tác động tiêu cực này.

Với sự hiểu biết sâu sắc về các yếu tố này, chúng ta có thể phát triển các chiến lược hiệu quả để cải thiện chất lượng không khí trong các thành phố và bảo vệ sức khỏe của cộng đồng. Trong bối cảnh này, việc phân tích các yếu tố ảnh hưởng đến chất lượng không khí trong một thành phố trở thành một phần không thể thiếu trong việc đảm bảo một môi trường sống lành mạnh và bền vững cho tương lai.

2. Lý do chọn đề tài và mục tiêu nghiên cứu tiểu luận

Dựa trên báo cáo từ trang web IQAir vào năm 2024, Việt Nam đang đối mặt với thách thức về chất lượng không khí, với Hà Nội xếp ở vị trí thứ 8 và Hồ Chí Minh xếp ở vị trí thứ 46 trong danh sách các thành phố có chất lượng không khí kém. Trong khi đó, một trong những đối tác quốc tế của chúng ta, Hàn Quốc, lại có thủ đô Seoul xếp sau với vị trí 51.

Sự đối lập này cho thấy rằng Hàn Quốc, đặc biệt là Seoul, đã thực hiện thành công các kế hoạch ngăn chặn ô nhiễm không khí và quản lý chặt chẽ các yếu tố ảnh hưởng đến chất lượng không khí. Điều này là một điểm mạnh và một ví dụ mà Việt Nam có thể học hỏi và áp dụng để cải thiện tình hình ô nhiễm không khí tại quốc gia mình.

Bằng cách phân tích các yếu tố ảnh hưởng đến chất lượng không khí ở Seoul, chúng ta có thể nhận ra những biện pháp hiệu quả mà họ đã thực hiện và áp dụng chúng vào chiến lược quản lý môi trường của mình, nhằm mục tiêu cải thiện chất lượng không khí và bảo vệ sức khỏe cộng đồng.

3. Đối tượng nghiên cứu của tiểu luận

Đối tượng nghiên cứu của tiểu luận này là các yếu tố ảnh hưởng đến chất lượng không khí trong thành phố Seoul, cụ thể:

  • Bụi mịn (bao gồm bụi mịn PM2.5 và bụi mịn PM10)

  • Khí thải nhà kính (bao gồm các khí SO2, NO2, O3, CO)

4. Phương pháp nghiên cứu của tiểu luận

Phương pháp nghiên cứu được áp dụng trong tiểu luận này sẽ bao gồm các bước sau:

  • Thu thập dữ liệu

Đầu tiên, em sẽ thu thập dữ liệu về chất lượng không khí và các yếu tố ảnh hưởng đến nó trong thành phố Seoul. Dữ liệu này có thể bao gồm các chỉ số ô nhiễm không khí như PM2.5, PM10, NO2, SO2, O3, CO cũng như dữ liệu về ngày giờ và địa điểm.

  • Phân tích dữ liệu

Sau khi thu thập dữ liệu, em sẽ sử dụng các phương pháp thống kêm, phân tích dữ liệu, biểu đồ để hiểu rõ hơn về mối quan hệ giữa các yếu tố môi trường và chất lượng không khí.

  • Đánh giá và so sánh

Cuối cùng, em sẽ đánh giá kết quả của phân tích và so sánh chất lượng không khí để có thể đề xuất các biện pháp cải thiện nếu cần thiết.

=> Phương pháp nghiên cứu này sẽ cung cấp cái nhìn toàn diện về tình trạng chất lượng không khí và các yếu tố ảnh hưởng đến nó trong thành phố, từ đó đề xuất các biện pháp cải thiện và quản lý môi trường hiệu quả.

5. Ý nghĩa nghiên cứu tiểu luận

Ý nghĩa của nghiên cứu này rất to lớn và có thể được phân loại thành ba khía cạnh chính:

  • Cung cấp thông tin và hiểu biết

Nghiên cứu sẽ cung cấp thông tin chi tiết và đáng tin cậy về các yếu tố ảnh hưởng đến chất lượng không khí trong thành phố Seoul. Bằng cách hiểu rõ hơn về những nguyên nhân gây ra ô nhiễm không khí, cộng đồng và các cơ quan quản lý có thể đưa ra các biện pháp kiểm soát và giảm thiểu ô nhiễm một cách hiệu quả.

  • Đề xuất giải pháp cải thiện

Dựa trên thông tin được thu thập và phân tích, nghiên cứu sẽ đề xuất các giải pháp cụ thể và hiệu quả để cải thiện chất lượng không khí trong thành phố Seoul và cho cả Việt Nam. Những giải pháp này có thể bao gồm việc áp dụng các biện pháp kiểm soát ô nhiễm, thúc đẩy sử dụng năng lượng sạch và tái tạo, cải thiện hạ tầng giao thông công cộng, và nâng cao quản lý môi trường.

  • Nâng cao nhận thức cộng đồng

Nghiên cứu cũng góp phần nâng cao nhận thức của người dân về tầm quan trọng của việc bảo vệ môi trường và chất lượng không khí. Bằng cách thông tin và giáo dục, cộng đồng có thể tham gia vào các hoạt động bảo vệ môi trường và ủng hộ các biện pháp cải thiện chất lượng không khí, từ đó tạo ra một môi trường sống lành mạnh và bền vững cho tất cả mọi người.

=> Tổng thể, nghiên cứu này không chỉ mang lại kiến thức và thông tin quan trọng về chất lượng không khí, mà còn đóng vai trò quan trọng trong việc đưa ra các giải pháp cụ thể và góp phần vào việc cải thiện môi trường sống của cộng đồng.

II. GIỚI THIỆU BỘ DỮ LIỆU


1. Nguồn gốc bộ dữ liệu

Dữ liệu về ô nhiễm không khí của Seoul được cung cấp bởi chính quyền thành phố thông qua hai kênh chính:

  • Open Data Plaza: Nền tảng dữ liệu mở của Seoul cung cấp thông tin thô về chất lượng không khí.
  • Trung tâm Phân tích Chất lượng Không khí: Cung cấp dữ liệu đã được tổng hợp và phân tích.

Dữ liệu từ hai nguồn này được tổng hợp lại bởi tác giả bappekim và đăng tải trên Kaggle, một trang web cung cấp kho dữ liệu lớn cho cộng đồng nghiên cứu và học tập.

2. Tổng quan bộ dữ liệu

a <- read.csv(file = 'C:/Users/Admin/Downloads/air.pollution.in.seoul.city.csv', header = T)

names(a)[names(a) == 'Measurement.date'] <- 'Day.and.time'
names(a)[names(a) == 'Measurement.date.1'] <- 'Day'
names(a)[names(a) == 'District'] <- 'Quận'

Bộ dữ liệu: Ô nhiễm không khí tại Seoul (Phân tích dữ liệu năm 2019) bao gồm:

  • Tên: Air pollution in Seoul city
  • Mục đích: Đo lường chất lượng không khí ở thành phố Seoul năm 2019
  • Thời gian: 12 tháng (2019)
  • Tần suất: Mỗi giờ
  • Địa điểm: 5 quận tại Seoul
    • Jongno-gu
    • Jung-gu
    • Yongsan-gu
    • Eunpyeong-gu
    • Seodaemun-gu
  • Cột dữ liệu:
    • Day.and.time: Ngày và giờ đo
    • Day: Ngày đo
    • Time: Giờ đo
    • Station.code: Mã khu vực
    • Quận
    • Nồng độ SO2, NO2, O3, CO (đơn vị: ppm)
    • Nồng độ bụi mịn PM10, PM2.5 (đơn vị: Microgram/m3)

3. Các yếu tố ảnh hưởng đến chất lượng không khí ở Seoul năm 2019

3.1. Hạt bụi mịn PM10 và PM2.5

Đây là hai chỉ số quan trọng trong việc đánh giá chất lượng không khí. PM2.5 thường được coi là nguy cơ nghiêm trọng hơn vì chúng có thể xâm nhập sâu vào phổi và gây ra các vấn đề sức khỏe nghiêm trọng. Trong một số ngày, mức độ PM2.5 và PM10 ở Seoul có thể vượt quá ngưỡng an toàn, đặc biệt là vào mùa đông khi tiêu thụ nhiên liệu tăng lên.

Nguyên nhân chính:

  • Hoạt động giao thông: Khí thải từ xe cộ, đặc biệt là xe máy và xe tải diesel.
  • Hoạt động công nghiệp: Khí thải từ các nhà máy, xí nghiệp.
  • Hoạt động sinh hoạt: Đốt rơm rạ, đốt than củi, sử dụng bếp than tổ ong.

Tác động tiêu cực:

  • Gây ra các bệnh về hô hấp như viêm phế quản, hen suyễn, ung thư phổi.
  • Gây hại cho hệ tim mạch, hệ thần kinh, hệ miễn dịch.
  • Ảnh hưởng đến tầm nhìn, gây ra hiện tượng sương mù dày đặc.
library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr     1.1.4     ✔ readr     2.1.5
## ✔ forcats   1.0.0     ✔ stringr   1.5.1
## ✔ ggplot2   3.5.0     ✔ tibble    3.2.1
## ✔ lubridate 1.9.3     ✔ tidyr     1.3.0
## ✔ purrr     1.0.2     
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
a$mức.độ.pm2.5 <- case_when(
  a$PM2.5 < 15 ~ 'Tốt', 
  a$PM2.5 >= 15 & a$PM2.5 < 35 ~ 'Bình thường', 
  a$PM2.5 >= 35 & a$PM2.5 < 75 ~ 'Tệ', 
  a$PM2.5 >= 75 & a$PM2.5 <= 500~ 'Rất tệ')

a$mức.độ.pm10 <- case_when(
  a$PM10 < 30 ~ 'Tốt', 
  a$PM10 >= 15 & a$PM10 < 35 ~ 'Bình thường', 
  a$PM10 >= 35 & a$PM10 < 75 ~ 'Tệ', 
  a$PM10 >= 75 & a$PM10 <= 600 ~ 'Rất tệ')

Mức độ ô nhiễm bụi mịn PM10 được coi là cao khi đo lường từ 150 microgram/m3 trở lên và rất cao khi đo lường từ 600 microgram/m3 trở lên.

Đối với bụi mịn PM2.5, mức đo lường trên 75 microgram/m3 được coi là cao và từ 500 microgram/m3 trở lên được xem là rất cao.

3.2. Khí SO2, NO2, O3 và CO

Các khí này cũng đóng vai trò quan trọng trong việc đánh giá chất lượng không khí. Khí NO2 và SO2 thường được liên kết với giao thông và hoạt động công nghiệp, trong khi O3 và CO có thể phát sinh từ nhiều nguồn khác nhau như giao thông và tiêu thụ năng lượng.

Nguyên nhân chính:

  • Do hoạt động công nghiệp, đặc biệt là các nhà máy nhiệt điện.
  • Do hoạt động giao thông, công nghiệp.

Tác động tiêu cực:

  • Gây ra các bệnh về hô hấp, ảnh hưởng đến hệ tim mạch.
  • Gây ra mưa axit, ảnh hưởng đến hệ sinh thái.
  • Gây kích ứng mắt.
library(tidyverse)

a$mức.độ.so2 <- case_when(
  a$SO2 < 0.02 ~ 'Tốt', 
  a$SO2 >= 0.02 & a$SO2 < 0.05 ~ 'Bình thường', 
  a$SO2 >= 0.05 & a$SO2 < 0.15 ~ 'Tệ', 
  a$SO2 >= 0.15 & a$SO2 <= 1 ~ 'Rất tệ')

a$mức.độ.no2 <- case_when(
  a$NO2 < 0.03 ~ 'Tốt', 
  a$NO2 >= 0.03 & a$NO2 < 0.06 ~ 'Bình thường', 
  a$NO2 >= 0.06 & a$NO2 < 0.2 ~ 'Tệ', 
  a$SO2 >=0.2 & a$NO2 <= 1 ~ 'Rất tệ')

a$mức.độ.o3 <- case_when(
  a$O3 < 0.03 ~ 'Tốt', 
  a$O3 >= 0.03 & a$O3 < 0.09 ~ 'Bình thường', 
  a$O3 >= 0.09 & a$O3 < 0.15 ~ 'Tệ', 
  a$O3 >=0.15 & a$O3 <= 0.5 ~ 'Rất tệ')

a$mức.độ.co <- case_when(
  a$CO < 2 ~ 'Tốt', 
  a$CO >= 2 & a$CO < 9 ~ 'Bình thường', 
  a$CO >= 9 & a$CO < 15 ~ 'Tệ', 
  a$CO >=15 & a$CO <= 50 ~ 'Rất tệ')

SO2: Mức độ cao được xác định khi nồng độ từ 0.05 - 0.15 ppm và mức độ rất cao khi nồng độ từ 0.15 - 1 ppm.

NO2: Mức độ cao được xác định khi nồng độ từ 0.06 - 0.2 ppm và mức độ rất cao khi nồng độ từ 0.2 - 1 ppm.

O3: Mức độ cao được xác định khi nồng độ từ 0.09 - 0.15 ppm và mức độ rất cao khi nồng độ từ 0.15 - 0.5 ppm.

CO: Mức độ cao được xác định khi nồng độ từ 9 - 15 ppm và mức độ rất cao khi nồng độ từ 15 - 50 ppm.

  • Trong đó: ppm là viết tắt của “parts per million” có nghĩa là “phần triệu”. Đây là đơn vị đo nồng độ, thường được sử dụng để đo lường nồng độ của các chất ô nhiễm trong không khí, nước hoặc đất.

3.3. Yếu tố khác

Ngoài các yếu tố chính đã được đề cập, chất lượng không khí ở Seoul còn chịu ảnh hưởng bởi một số yếu tố khác như:

  • Điều kiện thời tiết: Vào mùa đông không khí lạnh và tĩnh khiến cho các chất ô nhiễm không khí khó khuếch tán, dẫn đến tình trạng tích tụ và gia tăng nồng độ bụi mịn.

  • Vị trí địa lý: Seoul nằm trong khu vực có địa hình đồi núi bao quanh, khiến cho các chất ô nhiễm không khí dễ dàng bị giữ lại và tích tụ trong khu vực.

  • Các hoạt động: Xây dựng, cháy rừng.

III. PHÂN TÍCH BỘ DỮ LIỆU


1. Phân tích chất lượng hạt bụi mịn PM2.5 ở Seoul trong giờ cao điểm (buổi sáng)

Theo văn hóa của người Hàn, thông thường giờ học và giờ làm đều bắt đầu từ 9 giờ sáng, nghĩa rằng người dân phải rời khỏi nhà trước 9 giờ. Mà bộ dữ liệu được đo với tần suất 1 tiếng/lần nên chúng ta sẽ lấy mốc thời gian là 8 giờ.

b <- a %>% filter(Time == '8:00') %>% select(Day, Quận, PM2.5, mức.độ.pm2.5)

library(flextable)
## 
## Attaching package: 'flextable'
## The following object is masked from 'package:purrr':
## 
##     compose
library(DT)

datatable(b)

1.1. Mật độ hạt bụi mịn PM2.5

b %>% ggplot(aes(x = PM2.5)) +
  geom_density(binwidth = 30, fill = 'skyblue', color = 'navy') +
  theme_minimal() +
  labs(title = 'Biểu đồ 1: Mật độ chất lượng hạt bụi mịn 2.5 vào giờ cao điểm', x = 'Nồng độ hạt bụi mịn 2.5', y = 'Mật độ')
## Warning in geom_density(binwidth = 30, fill = "skyblue", color = "navy"):
## Ignoring unknown parameters: `binwidth`

Vào trong khoảng thời gian này, do lưu thông phương tiện giao thông và hoạt động sinh hoạt của người dân, sản sinh ra lượng khói thải nhất định, cát bụi cuốn theo trong quá trình di chuyển, bào mòn bề mặt đường ra không khí, từ đó góp phần làm tăng nồng độ bụi mịn PM2.5 trong không khí.

Từ biểu đồ, chúng ta có thể nhận thấy:

  • Nồng độ bụi mịn PM2.5 cao nhất: Tập trung nhiều nhất ở mức từ 15 - 50 microgram/m³ (nhóm nồng độ ‘tốt’ và ‘bình thường’).

  • Nồng độ bụi mịn PM2.5 thấp nhất: Dưới 100 microgram/m³ xuất hiện ít hơn (nhóm nồng độ ‘tệ’ và ‘rất tệ’).

  • Sự phân bố: Không đối xứng (skewed), tập trung nhiều ở mức cao.

1.2. Chất lượng hạt bụi mịn PM2.5 theo từng quận ở Seoul

b %>% group_by(mức.độ.pm2.5, Quận) %>% summarise(n=n()) %>%
  ggplot(aes(x = mức.độ.pm2.5, y = n)) +
    geom_col(fill = 'skyblue') +
    facet_wrap(~Quận) +
    geom_text(aes(label = n),vjust = 0.5, color = 'black') +
    labs(title = 'Biểu đồ 2: Chất lượng hạt bụi mịn PM2.5 theo từng quận ở Seoul', x = 'Quận', y = 'Số lượng ngày')
## `summarise()` has grouped output by 'mức.độ.pm2.5'. You can override using the
## `.groups` argument.

Như kết quả từ biểu đồ 1 ta đã thấy rằng, hạt bụi mịn PM2.5 ở Seoul phân bố chủ yếu vào nhóm nồng độ ‘tốt’ và ‘bình thường’ đồng thời phân bố ít ở nhóm nồng độ ‘tệ’ và ‘rất tệ’, cụ thể:

Quận Eunpyeong-gu có:

  • 181 ngày nồng độ hạt bụi mịn PM2.5 là bình thường
  • 101 ngày nồng độ hạt bụi mịn PM2.5 là tốt
  • 60 ngày nồng độ hạt bụi mịn PM2.5 là tệ
  • 10 ngày nồng độ hạt bụi mịn PM2.5 là rất tệ

Quận Jongno-gu có:

  • 169 ngày nồng độ hạt bụi mịn PM2.5 là bình thường
  • 129 ngày nồng độ hạt bụi mịn PM2.5 là tốt
  • 45 ngày nồng độ hạt bụi mịn PM2.5 là tệ
  • 9 ngày nồng độ hạt bụi mịn PM2.5 là rất tệ

Quận Jung-gu có:

  • 162 ngày nồng độ hạt bụi mịn PM2.5 là bình thường
  • 123 ngày nồng độ hạt bụi mịn PM2.5 là tốt
  • 60 ngày nồng độ hạt bụi mịn PM2.5 là tệ
  • 7 ngày nồng độ hạt bụi mịn PM2.5 là rất tệ

Quận Seodaemun-gu có:

  • 142 ngày nồng độ hạt bụi mịn PM2.5 là bình thường
  • 134 ngày nồng độ hạt bụi mịn PM2.5 là tốt
  • 61 ngày nồng độ hạt bụi mịn PM2.5 là tệ
  • 15 ngày nồng độ hạt bụi mịn PM2.5 là rất tệ

Quận Yongsan-gu có:

  • 139 ngày nồng độ hạt bụi mịn PM2.5 là bình thường
  • 144 ngày nồng độ hạt bụi mịn PM2.5 là tốt
  • 56 ngày nồng độ hạt bụi mịn PM2.5 là tệ
  • 13 ngày nồng độ hạt bụi mịn PM2.5 là rất tệ

Mặc dù tỷ lệ nồng độ bụi mịn PM2.5 ở nhóm ‘rất tệ’ (từ 75-100 microgram/m³) có vẻ thấp, nhưng nồng độ hạt bụi mịn PM2.5 lại tập trung nhiều ở nhóm nồng độ từ ‘bình thường’ (từ khoảng 25-50 microgram/m³). Điều này cho thấy mức độ ô nhiễm bụi mịn PM2.5 ở Seoul vào năm 2019 khá cao, vượt quá mức khuyến cáo của Tổ chức Y tế Thế giới (WHO) là 10 microgram/m³.

Tuy nhiên, Seoul cũng có nhiều ngày duy trì nồng độ ở mức ‘tốt’, đặc biệt là quận Yongsan-gu có số ngày nồng độ mức ‘tốt’ cao nhất. Điều này cho thấy một nỗ lực tích cực từ phía Seoul trong việc duy trì chất lượng không khí. Ngoài ra, Seoul cũng duy trì nồng độ mức ‘rất tệ’ ở mức thấp, không quá 15 ngày/năm.

2. Phân tích nồng độ trung bình hạt bụi mịn PM10 ở Seoul theo mùa

Bụi mịn PM10, có kích thước từ 2.5 đến 10 microgam, tương đương với khoảng 1/5 chiều rộng của sợi tóc, là một loại bụi mịn đặc biệt có thể gây ra nhiều vấn đề cho sức khỏe. Loại bụi này có thể xuất phát từ nhiều nguồn khác nhau trong tự nhiên, bao gồm cháy rừng, khói từ núi lửa, cơn lốc xoáy, và bão cát. Ngoài ra, chúng cũng có thể là sản phẩm của phấn hoa, bào tử nấm, và nước thải từ côn trùng.

Trái ngược với Việt Nam, Hàn Quốc có bốn mùa rõ ràng và dễ nhận biết. Mùa Xuân diễn ra từ tháng 3 đến tháng 5, mùa Hè kéo dài từ tháng 6 đến tháng 9, mùa Thu từ tháng 9 đến tháng 11, và mùa Đông từ tháng 12 đến tháng 2 năm sau.

Để phân tích chất lượng hạt bụi mịn PM10 một cách chi tiết hơn, chúng ta có thể tiến hành phân tích theo từng mùa trong năm.

2.1. Theo mùa Xuân

c <- bind_rows(a[1416:3353, ], a[9802:11739, ], a[18187:20124, ], a[26571:28509, ], a[34947:36884, ]) %>% 
  select(Day, Quận, PM10, mức.độ.pm10)

library(flextable)
library(DT)

datatable(c)
c %>% group_by(Quận) %>% summarise(m= mean(PM10)) %>%
 ggplot(aes(x = Quận, y = m, color = Quận)) +
  geom_point(shape = 17, size = 3) +
  geom_text(aes(label = round(m,2)), vjust = 0, color = 'navy') +
  theme_minimal() +
  labs(title = 'Biểu đồ 3: Nồng độ trung bình của hạt bụi mịn PM10 vào mùa Xuân', x = 'Quận', y = 'Trung bình')

Từ biểu đồ 3, mức độ phân tán trung bình của hạt bụi mịn PM10 tại 5 quận Seoul đều dưới 58 microgram. Nồng độ bụi mịn PM10 tại các quận được khảo sát đều đang ở mức bình thường, cụ thể:

Mức độ ô nhiễm:

  • Cao: Quận Seodaemun-gu (57.63 microgram) và quận Eunpyeong-gu (56.81 microgram)
  • Trung bình: Quận Jongno-gu (47.26 microgram) và quận Jung-gu (47.43 microgram)
  • Thấp: Quận Yongsan-gu (44 microgram)

So sánh giữa các quận:

  • Quận Seodaemun-gu có mức độ ô nhiễm cao nhất, cao hơn quận Yongsan-gu gần 22%.
  • Mức độ ô nhiễm tại quận Jongno-gu và quận Jung-gu và tương đối gần nhau.
  • Quận Yongsan-gu có mức độ ô nhiễm thấp nhất.

Nguyên nhân chính:

  • Hoạt động giao thông

Dù hạt bụi mịn PM10 có thể có nguyên nhân xuất phát từ tự nhiên như cháy rừng, khói từ núi lửa hay phấn hoa,… nhưng cũng có một phần lớn hạt bụi mịn PM10 xuất phát từ các hoạt động giao thông, đặc biệt là vào mùa Xuân khi lượng phương tiện lưu thông tăng cao do nhu cầu du lịch và lễ hội.

Khí thải từ các phương tiện giao thông bao gồm NOx, SOx, CO và VOCs, đây là những tiền chất quan trọng trong quá trình hình thành PM10.

Mật độ giao thông cao tại các quận Seodaemun-gu và Eunpyeong-gu góp phần làm tăng mức độ ô nhiễm PM10 tại các quận này.

  • Hoạt động công nghiệp:

Các khu vực tập trung nhiều nhà máy công nghiệp (như quận Seodaemun-gu và quận Eunpyeong-gu) có thể có mức độ ô nhiễm PM10 cao hơn. Hoạt động công nghiệp thải ra nhiều khí thải, bao gồm cả PM10.

  • Điều kiện thời tiết:

Vào mùa Xuân, thời tiết thường có nhiều gió và ít mưa, điều này có thể làm cho PM10 dễ dàng tích tụ trong không khí. Gió yếu và độ ẩm cao tạo điều kiện thuận lợi cho quá trình hình thành PM10.

  • Địa hình:

Các khu vực nằm ở vị trí trũng thấp (như quận Seodaemun-gu) có thể có mức độ ô nhiễm PM10 cao hơn. Địa hình trũng thấp hạn chế sự lưu thông của không khí, dẫn đến tích tụ PM10 tại khu vực đó

  • Mức độ phủ xanh:

Các khu vực có nhiều cây xanh (như quận Yongsan-gu) có thể có mức độ ô nhiễm PM10 thấp hơn. Cây xanh có khả năng hấp thụ PM10, giúp cải thiện chất lượng không khí.

=> Kết luận

Nồng độ ô nhiễm hạt bụi mịn PM10 ở 5 quận Seoul vẫn còn cao, vượt quá mức khuyến cáo của Tổ chức Y tế Thế giới (WHO) là 20 microgram/m³.

2.2. Theo mùa Hè

d <- bind_rows(a[4074:5538, ], a[12459:13923, ], a[20844:22307, ], a[29229:30683, ], a[37604:39053, ]) %>% 
  select(Day, Quận, PM10, mức.độ.pm10)

library(flextable)
library(DT)

datatable(d)
d %>% group_by(Quận) %>% summarise(m= mean(PM10)) %>%
 ggplot(aes(x = Quận, y = m, fill = Quận)) +
  geom_bar(stat = 'identity') +
  geom_text(aes(label = round(m,2)), vjust = 0, color = 'black') +
  theme_minimal() +
  labs(title = 'Biểu đồ 4: Nồng độ trung bình của hạt bụi mịn PM10 vào mùa Hè', x = 'Quận', y = 'Trung bình')

So với mùa Xuân, chất lượng hạt bụi mịn PM10 vào mùa Hè đã được cải thiện đáng kể. Tất cả 5 quận đều có mức dưới 26 microgram, cụ thể:

Mức độ ô nhiễm:

  • Cao: Quận Jongno-gu (25.35 microgram) và quận Jung-gu (25.09 microgram)
  • Trung bình: Quận Seodaemun-gu (23.93 microgram) và quận Eunpyeong-gu (23.33 microgram)
  • Thấp: Quận Yongsan-gu (23.1 microgram)

So sánh với mùa Xuân:

  • Quận Eunpyeong-gu đã giảm mức nồng độ trung bình từ 56.81 xuống còn 23.33 microgram (giảm 59.27%)
  • Quận Jongno-gu đã giảm mức nồng độ trung bình từ 47.26 xuống còn 25.35 microgram (giảm 46.37%)
  • Quận Jung-gu đã giảm mức nồng độ trung bình từ 47.23 xuống còn 25.09 microgram (giảm 46.97%)
  • Quận Seodaemun-gu đã giảm mức nồng độ trung bình từ 57.63 xuống còn 23.93 microgram (giảm 58.47%)
  • Quận Yongsan-gu vẫn duy trì là quận có mức độ ô nhiễm hạt bụi mịn thấp nhất, đã giảm mức nồng độ trung bình từ 44 xuống còn 23.1 microgram (giảm 47.73%)

Nguyên nhân chính dẫn đến sự giảm hạt bụi mịn PM10:

  • Điều kiện thời tiết:

Mùa hè 2019 tại Seoul có nhiều mưa và gió mạnh, giúp tẩy rửa bụi mịn trong không khí hiệu quả hơn so với mùa xuân. Nhiệt độ cao cũng góp phần làm tăng tốc độ khuếch tán của các chất ô nhiễm, giúp giảm nồng độ PM10.

  • Chính sách và biện pháp kiểm soát ô nhiễm:

Chính phủ Hàn Quốc đã thực hiện một số chính sách và biện pháp để kiểm soát ô nhiễm không khí, bao gồm:

Thắt chặt tiêu chuẩn khí thải cho các phương tiện giao thông và nhà máy công nghiệp. Mở rộng khu vực cấm xe và khu vực chỉ dành cho người đi bộ. Tăng cường trồng cây xanh.

Nhận thức của người dân về tác hại của ô nhiễm PM10 cũng được nâng cao, dẫn đến việc tăng cường sử dụng phương tiện giao thông công cộng và giảm thiểu sử dụng phương tiện cá nhân.

Nguyên nhân chính của tình trạng vẫn còn hạt bụi mịn PM10

  • Bụi mịn từ các khu vực khác:

Bụi mịn PM10 có thể di chuyển từ các khu vực khác đến Seoul do gió thổi. Các khu vực công nghiệp và đô thị lớn ở Trung Quốc có thể là nguồn phát thải PM10 ảnh hưởng đến Seoul.

  • Hoạt động đốt rơm rạ:

Vào mùa hè, người dân ở một số khu vực nông thôn Hàn Quốc thường đốt rơm rạ sau thu hoạch. Hoạt động này thải ra một lượng lớn PM10 vào bầu khí quyển, ảnh hưởng đến chất lượng không khí tại các khu vực xung quanh.

  • Hoạt động công nghiệp:

Hoạt động công nghiệp cũng là một nguồn phát thải PM10 quan trọng. Các nhà máy công nghiệp thải ra nhiều khí thải, bao gồm cả PM10, vào bầu khí quyển.

=> Kết luận:

  • Điểm sáng:

Quận Yongsan-gu tiếp tục dẫn đầu với mức PM10 thấp nhất (21.04 microgram) Quận Eunpyeong-gu đạt mức giảm ấn tượng nhất (60.94%) Điều kiện thời tiết: Mưa nhiều, gió mạnh giúp đẩy lùi bụi mịn Chính sách kiểm soát ô nhiễm: Hiệu quả từ các biện pháp siết chặt khí thải và khuyến khích phương tiện công cộng

  • Thách thức:

Giải quyết những thách thức này đòi hỏi sự chung tay góp sức của chính phủ, doanh nghiệp, người dân và cả quan hệ quốc tế như vấn đề bụi mịn xuất phát từ Trung Quốc, cần hợp tác quốc tế để kiểm soát nguồn phát thải xuyên biên giới.Hoạt động đốt rơm rạ thì cần nâng cao nhận thức và khuyến khích sử dụng phương pháp xử lý rơm rạ thân thiện môi trường. Hoạt động công nghiệp thì cần thúc đẩy áp dụng công nghệ tiên tiến và thắt chặt tiêu chuẩn khí thải,…

2.3. Theo mùa Thu

e <- bind_rows(a[5539:7654, ], a[13924:16039, ], a[22308:24423, ], a[30684:32799, ], a[39054:41169, ]) %>% 
  select(Day, Quận, PM10, mức.độ.pm10)

library(flextable)
library(DT)

datatable(e)
e %>% group_by(Quận) %>% summarise(m= mean(PM10)) %>%
 ggplot(aes(x = Quận, y = m, color = Quận)) +
  geom_point(shape = 15, size = 3) +
  geom_text(aes(label = round(m,2)), vjust = 1, color = 'navy') +
  theme_minimal() +
  labs(title = 'Biểu đồ 5: Nồng độ trung bình của hạt bụi mịn PM10 vào mùa Thu', x = 'Quận', y = 'Trung bình')

Sau mùa Hè, nồng độ hạt bụi mịn PM10 có dấu hiệu tăng trở lại vào mùa Thu, tuy không tăng đáng kể như mùa Xuân nhưng vẫn duy trì ở mức dưới từ 23-36 microgram, cụ thể:

Mức độ ô nhiễm:

  • Cao: Quận Seodaemun-gu (35.04 microgram)
  • Trung bình: Quận Jongno-gu (29.55 microgram), quận Eunpyeong-gu (29.06 microgram) và quận Jung-gu (27.98 microgram)
  • Thấp: Quận Yongsan-gu (23.92 microgram)

So sánh với mùa Hè:

  • Quận Eunpyeong-gu đã tăng mức nồng độ trung bình từ 23.33 lên 29.06 microgram (tăng 24.59%)
  • Quận Jongno-gu đã tăng mức nồng độ trung bình từ 25.35 lên 29.55 microgram (tăng 16.94%)
  • Quận Jung-gu đã tăng mức nồng độ trung bình từ 25.09 lên 27.98 microgram (tăng 11.47%)
  • Quận Seodaemun-gu đã tăng mức nồng độ trung bình từ 23.93 lên 35.04 microgram (tăng 46.44%)
  • Quận Yongsan-gu vẫn duy trì là quận có mức độ ô nhiễm hạt bụi mịn thấp nhất, nhưng vẫn tăng mức nồng độ trung bình từ 23.1 lên 23.92 microgram (tăng 3.55%)

Nguyên nhân chính dẫn đến sự giảm hạt bụi mịn PM10:

  • Điều kiện khí tượng:

Mùa Hè thường có gió mạnh và mưa nhiều, giúp thúc đẩy sự phân tán của bụi mịn. Trong khi đó, mùa Thu thường ít gió và ít mưa hơn, dẫn đến sự tích tụ bụi mịn trong không khí.

Hiện tượng nghịch nhiệt: xảy ra thường xuyên hơn vào mùa Thu, khiến không khí ứ đọng, cản trở sự phân tán của bụi mịn.

  • Hoạt động giao thông:

Vào mùa Thu, thời tiết ở Seoul bắt đầu trở lạnh, khiến người dân giảm sử dụng xe đẹp, thay vào đó là xe máy và ô tô, khiến lượng khí thải tăng lên.

Mùa Thu là mùa du lịch cao điểm ở Seoul, gia tăng lượng phương tiện giao thông và khí thải từ hoạt động du lịch.

  • Mật độ dân số cao:

Seoul là thành phố đông dân cư, dẫn đến lượng khí thải từ sinh hoạt cao.

  • Một số yếu tố khác:

Sự thay đổi của các yếu tố khí tượng: như độ ẩm, áp suất không khí.

Hoạt động cháy rừng: xảy ra ở các khu vực lân cận, ảnh hưởng đến chất lượng không khí ở Seoul.

  • Yếu tố địa hình:

Seoul nằm ở khu vực bồn địa, giúp giữ bụi mịn trong không khí và hạn chế sự phân tán.

=> Kết luận

Mùa Thu năm nay ghi nhận sự biến động nhẹ trong nồng độ trung bình bụi mịn PM10 tại 5 quận được khảo sát. Mức độ chênh lệch tuy không quá lớn nhưng vẫn cho thấy sự khác biệt đáng chú ý giữa các khu vực.

  • Điểm sáng:

Quận Yongsan-gu tiếp tục khẳng định vị trí là khu vực có chất lượng không khí tốt nhất, với mức độ ô nhiễm chỉ tăng 3.55% so với mùa Hè. Đây là kết quả đáng khích lệ cho nỗ lực bảo vệ môi trường của quận.

  • Điểm tối:

Quận Seodaemun-gu lại có mức tăng nồng độ PM10 cao nhất, lên đến 46.44% chỉ sau 3 tháng. Đây là con số đáng báo động và cần được quan tâm để cải thiện chất lượng không khí cho người dân.

2.4. Theo mùa Đông

f <- bind_rows(a[2:1416, ], a[7655:8386, ], a[8387:9801, ], a[16040:16771, ], a[16772:18186, ], a[24424:25155, ], a[25156:26570, ], a[32800:33531, ], a[33532:34946, ], a[41170:41901, ]) %>% 
  select(Day, Quận, PM10, mức.độ.pm10)

summary(is.na(f$PM10))
##    Mode   FALSE    TRUE 
## logical   10734       1
f <- na.omit(f)

library(flextable)
library(DT)

datatable(f)
## Warning in instance$preRenderHook(instance): It seems your data is too big for
## client-side DataTables. You may consider server-side processing:
## https://rstudio.github.io/DT/server.html
f %>% group_by(Quận) %>% summarise(m= mean(PM10)) %>%
 ggplot(aes(x = Quận, y = m, fill = Quận)) +
  geom_bar(stat = 'identity') +
  geom_text(aes(label = round(m,2)), vjust = 0, color = 'black') +
  theme_minimal() +
  labs(title = 'Biểu đồ 6: Nồng độ trung bình của hạt bụi mịn PM10 vào mùa Đông', x = 'Quận', y = 'Trung bình')

Từ kết quả của biểu đồ 6, ta thấy rằng mùa Đông là mùa có nồng độ trung bình cao nhất trong 4 mùa, cụ thể:

Mức độ ô nhiễm:

  • Cao: Quận Seodaemun-gu (53.74 microgram) và quận Eunpyeong-gu (53.38 microgram)
  • Trung bình: Quận Jongno-gu (51.7 microgram) và quận Jung-gu (50.79 microgram)
  • Thấp: Quận Yongsan-gu (46.63 microgram)

So sánh với mùa Xuân - mùa có nồng độ trung bình cao thứ 2

  • Quận Eunpyeong-gu đã giảm mức nồng độ trung bình từ 56.81 xuống còn 53.38 microgram (giảm 6.04%)
  • Quận Jongno-gu đã tăng mức nồng độ trung bình từ 47.26 lên 51.7 microgram (tăng 9.42%)
  • Quận Jung-gu đã tăng mức nồng độ trung bình từ 47.43 lên 50.79 microgram (tăng 7.08%)
  • Quận Seodaemun-gu đã giảm mức nồng độ trung bình từ 57.63 xuống còn 53.74 microgram (giảm 6.75%)
  • Quận Yongsan-gu đã tăng mức nồng độ trung bình từ 44 lên 46.63 microgram (tăng 6.02%)

So sánh với mùa Thu - mùa kề trước

  • Quận Eunpyeong-gu đã tăng mức nồng độ trung bình từ 29.06 lên 53.38 microgram (tăng 83.72%)
  • Quận Jongno-gu đã tăng mức nồng độ trung bình từ 29.55 lên 51.7 microgram (tăng 75.23%)
  • Quận Jung-gu đã tăng mức nồng độ trung bình từ 27.98 lên 50.79 microgram (tăng 82.02%)
  • Quận Seodaemun-gu đã tăng mức nồng độ trung bình từ 35.04 lên 53.74 microgram (tăng 53.38%)
  • Quận Yongsan-gu đã tăng mức nồng độ trung bình từ 23.92 lên 46.63 microgram (tăng 94.64%)

Nguyên nhân chính

  • Điều kiện khí tượng:

Mùa đông 2019 ở Seoul có nhiệt độ thấp, gió yếu và thiếu mưa, dẫn đến sự tích tụ bụi mịn trong không khí. Hiện tượng nghịch nhiệt: xảy ra thường xuyên, khiến không khí ứ đọng, cản trở sự phân tán của bụi mịn.

  • Hoạt động giao thông:

Mùa đông là mùa cao điểm sử dụng phương tiện giao thông cá nhân do người dân hạn chế sử dụng xe đạp và phương tiện công cộng vì thời tiết lạnh.

Lượng khí thải từ phương tiện giao thông tăng cao, góp phần gia tăng nồng độ PM10.

  • Hoạt động sưởi ấm:

Vào mùa đông, người dân Seoul sử dụng hệ thống sưởi ấm, tăng lượng khí thải từ việc đốt nhiên liệu. Sử dụng lò sưởi đốt củi, than đá: phổ biến ở một số khu vực, góp phần gia tăng nồng độ PM10.

  • Hoạt động xây dựng:

Hoạt động xây dựng tăng cao vào mùa đông do thời tiết thuận lợi cho thi công. Bụi mịn từ các hoạt động đào xới, san lấp góp phần gia tăng nồng độ PM10.

  • Lượng du khách:

Mùa đông là mùa du lịch thấp điểm ở Seoul, tuy nhiên lượng du khách vẫn cao so với các khu vực khác. Hoạt động du lịch cũng góp phần gia tăng lượng khí thải và nồng độ PM10.

  • Yếu tố khác:

Sự thay đổi của các yếu tố khí tượng: như độ ẩm, áp suất không khí. Hoạt động cháy rừng: xảy ra ở các khu vực lân cận, ảnh hưởng đến chất lượng không khí ở Seoul. Yếu tố địa hình: Seoul nằm ở khu vực bồn địa, giúp giữ bụi mịn trong không khí và hạn chế sự phân tán.

=> Kết luận:

Nồng độ PM10 trung bình mùa Đông ghi nhận ở mức cao, chỉ chênh lệch nhẹ so với mùa Xuân. Tuy nhiên, so với mùa Thu, chỉ trong 3 tháng, cả 5 quận đều tăng trên 70%.

Điểm đáng lo ngại: Quận Yongsan-gu, vốn có mức độ ô nhiễm bụi mịn thấp nhất, tăng đến 94.64%.

Sự chênh lệch giữa các mùa không đồng đều. Cần có biện pháp để kiểm soát ô nhiễm PM10.

3. Phân tích chất lượng từng loại khí ở Seoul

3.1. Chất lượng khí SO2

library(dplyr)
library(ggplot2)

a %>% group_by(mức.độ.so2, Quận) %>% summarise(n=n()) %>%
  ggplot(aes(x = mức.độ.so2, y = n)) +
    geom_col(fill = 'mediumslateblue') +
    facet_wrap(~Quận) +
    geom_text(aes(label = n),vjust = 0.5, color = 'black') +
    labs(title = 'Biểu đồ 7: Chất lượng khí SO2 theo từng quận ở Seoul ở mỗi giờ', x = 'Chất lượng khí SO2', y = 'Số giờ')
## `summarise()` has grouped output by 'mức.độ.so2'. You can override using the
## `.groups` argument.

Nhìn chung, chất lượng khí SO2 ở 5 quận tương đối tốt.

  • Quận Eunpyeong-gu, Jung-gu và Yongsan-gu: Chất lượng khí tốt trong toàn bộ thời gian đo lường.
  • Quận Seodaemun-gu: Chỉ có 1 giờ ghi nhận chất lượng khí bình thường.
  • Quận Jongno-gu:
    • Có 4 giờ ghi nhận chất lượng khí bình thường.
    • 19 giờ ghi nhận chất lượng khí tệ.

Chất lượng khí SO2 ở Seoul có sự khác biệt giữa các quận. Quận Eunpyeong-gu, Jung-gu và Yongsan-gu có chất lượng khí tốt nhất. Quận Jongno-gu có chất lượng khí tệ nhất.

Nguyên nhân dẫn đến sự khác biệt về chất lượng khí SO2 ở 5 quận Seoul:

  • Mức độ phát thải SO2:

Quận Eunpyeong-gu, Jung-gu và Yongsan-gu: Mật độ nhà máy, khu công nghiệp thấp, lượng khí thải SO2 ít.

Quận Seodaemun-gu: Mật độ nhà máy, khu công nghiệp cao, lượng khí thải SO2 nhiều.

Quận Jongno-gu: Mật độ nhà máy, khu công nghiệp trung bình, lượng khí thải SO2 tương đối.

  • Điều kiện khí tượng:

Quận Eunpyeong-gu, Jung-gu và Yongsan-gu: Gió mạnh, thường xuyên có mưa, giúp phân tán khí SO2.

Quận Seodaemun-gu và Jongno-gu: Gió yếu, ít mưa, khiến khí SO2 dễ tích tụ.

  • Địa hình:

Quận Eunpyeong, Jung-gu và Yongsan-gu: Nằm ở khu vực ven biển, thoáng mát, giúp khí SO2 dễ di chuyển.

Quận Seodaemun-gu và Jongno-gu: Nằm ở khu vực nội thành, bị che chắn bởi các tòa nhà cao tầng, khiến khí SO2 dễ tích tụ.

  • Mức độ phát triển giao thông:

Quận Eunpyeong, Jung-gu và Yongsan-gu: Hệ thống giao thông công cộng phát triển, lượng xe cá nhân ít, lượng khí thải SO2 từ giao thông thấp.

Quận Seodaemun-gu và Jongno-gu: Hệ thống giao thông công cộng chưa phát triển bằng, lượng xe cá nhân nhiều, lượng khí thải SO2 từ giao thông cao.

  • Mức độ sử dụng nhiên liệu hóa thạch:

Quận Eunpyeong, Jung-gu và Yongsan-gu: Tỷ lệ sử dụng năng lượng tái tạo cao, lượng khí thải SO2 từ sinh hoạt thấp.

Quận Seodaemun-gu và Jongno-gu: Tỷ lệ sử dụng năng lượng tái tạo thấp, lượng khí thải SO2 từ sinh hoạt cao.

=> Kết luận

Năm 2019, chính quyền và người dân 5 quận Seoul đã phối hợp chặt chẽ và nỗ lực không ngừng để giảm thiểu lượng khí SO2 trong khu vực. Nhờ những nỗ lực này, chất lượng không khí được cải thiện đáng kể, duy trì ở mức tốt trong suốt cả năm.

Tuy nhiên, khí SO2 vẫn chưa được loại bỏ hoàn toàn và vẫn tiềm ẩn nguy cơ ảnh hưởng đến sức khỏe cộng đồng. Do đó, cần tiếp tục duy trì và đẩy mạnh các biện pháp nhằm giảm thiểu khí SO2 trong thời gian tới.

3.2. Chất lượng khí NO2

a %>% group_by(mức.độ.no2) %>% summarise(n = n()) %>%
  ggplot(aes(x = '', y = n,fill = mức.độ.no2)) +
    geom_col(color = 'black') +
    coord_polar('y') +
    geom_text(aes(x = 1.3, label = n),position = position_stack(vjust = .5)) +
    theme_minimal() +
  labs(title = 'Biểu đồ 8: Chất lượng khí NO2 ở 5 quận Seoul theo mỗi giờ', x = ' ', y = ' ')

Mặc dù khí SO2 luôn duy trì chất lượng không khí ở mức tốt, nhưng khí NO2 lại có nhiều giờ đo được ở mức bình thường hơn. Cụ thể ở 5 quận Seoul trong năm 2019:

  • Số giờ đo được chất lượng khí NO2 ở mức tốt: 25.336 giờ
  • Số giờ đo được chất lượng khí NO2 ở mức bình thường: 15.063 giờ
  • Số giờ đo được chất lượng khí NO2 ở mức tệ: 1.501 giờ

Nguyên nhân gây ra khí NO2:

  • Giao thông:

Phương tiện giao thông: Đây là nguồn phát thải khí NO2 lớn nhất tại Seoul, chiếm hơn 50% tổng lượng khí thải.

Xe máy: Seoul có lượng xe máy lưu thông rất lớn, ước tính hơn 10 triệu chiếc. Xe máy sử dụng động cơ xăng, hai thì, thải ra lượng lớn khí NO2.

Ô tô: Ô tô cũng là một nguồn phát thải khí NO2 quan trọng, đặc biệt là các xe chạy bằng động cơ diesel. Giao thông tắc nghẽn: Giao thông tắc nghẽn khiến phương tiện phải di chuyển chậm, tăng thời gian đốt cháy nhiên liệu và thải ra nhiều khí NO2 hơn.

  • Hoạt động công nghiệp:

Nhà máy công nghiệp: Một số nhà máy công nghiệp, đặc biệt là nhà máy sản xuất hóa chất, luyện kim, và sản xuất điện, thải ra lượng lớn khí NO2 trong quá trình sản xuất.

Hoạt động đốt cháy nhiên liệu hóa thạch: Việc sử dụng nhiên liệu hóa thạch như than đá, dầu mỏ trong các nhà máy và hộ gia đình cũng góp phần vào lượng khí NO2 trong khí quyển.

  • Điều kiện thời tiết:

Nắng nóng: Nắng nóng khiến cho khí NO2 dễ dàng hình thành và tích tụ trong không khí. Gió yếu: Gió yếu khiến cho khí NO2 không được khuếch tán, dẫn đến tình trạng ô nhiễm cao hơn.

  • Yếu tố khác:

Hoạt động xây dựng: Hoạt động xây dựng thải ra lượng lớn bụi mịn PM2.5, có thể kết hợp với khí NO2 tạo thành thành phần PM2.5 độc hại.

Hoạt động nông nghiệp: Sử dụng phân bón hóa học trong nông nghiệp cũng góp phần vào lượng khí NO2 trong khí quyển.

=> Kết luận

Cùng với khí SO2, khí NO2 cũng là một mối quan tâm lớn về chất lượng không khí tại 5 quận Seoul. Trong năm 2019, chính quyền và người dân đã chung tay nỗ lực để giảm thiểu lượng khí NO2 trong khu vực, kết quả rằng chất lượng khí NO2 vẫn luôn được duy trì ở mức tốt và bình thường.

Tuy nhiên, khí NO2 vẫn chưa được loại bỏ hoàn toàn và vẫn tiềm ẩn nguy cơ ảnh hưởng đến sức khỏe cộng đồng. Do đó, cần tiếp tục duy trì và đẩy mạnh các biện pháp nhằm giảm thiểu khí NO2 trong thời gian tới.

3.3. Chất lượng khí O3

a %>% group_by(mức.độ.o3, Quận) %>% summarise(n=n()) %>%
  ggplot(aes(x = mức.độ.o3, y = n)) +
    geom_col(fill = 'forestgreen') +
    facet_wrap(~Quận) +
    geom_text(aes(label = n),vjust = 0.5, color = 'black') +
    labs(title = 'Biểu đồ 9: Chất lượng khí O3 theo từng quận ở Seoul ở mỗi giờ', x = 'Chất lượng khí O3', y = 'Số giờ')
## `summarise()` has grouped output by 'mức.độ.o3'. You can override using the
## `.groups` argument.

Tương tự như khí NO2, khí O3 cũng thường được tập trung ở mức chất lượng không khí được xem là bình thường và tốt. Tuy nhiên, đối với khí O3 đã xuất hiện thêm một mức chất lượng không khí được đánh giá là rất tệ. Điều này có thể được nhìn thấy rõ từ kết quả của biểu đồ 9, cụ thể:

  • Quận Eunpyeong-gu:
    • Số giờ đo được chất lượng khí O3 ở mức tốt: 4936 giờ
    • Số giờ đo được chất lượng khí O3 ở mức bình thường: 3371 giờ
    • Số giờ đo được chất lượng khí O3 ở mức tệ: 67 giờ
    • Số giờ đo được chất lượng khí O3 ở mức rất tệ: 2 giờ
  • Quận Jongno-gu:
    • Số giờ đo được chất lượng khí O3 ở mức tốt: 5738 giờ
    • Số giờ đo được chất lượng khí O3 ở mức bình thường: 2631 giờ
    • Số giờ đo được chất lượng khí O3 ở mức tệ: 16 giờ
    • Không có số giờ đo được chất lượng khí O3 ở mức rất tệ
  • Quận Jung-gu:
    • Số giờ đo được chất lượng khí O3 ở mức tốt: 5140 giờ
    • Số giờ đo được chất lượng khí O3 ở mức bình thường: 3165 giờ
    • Số giờ đo được chất lượng khí O3 ở mức tệ: 77 giờ
    • Số giờ đo được chất lượng khí O3 ở mức rất tệ: 3 giờ
  • Quận Seodaemun-gu:
    • Số giờ đo được chất lượng khí O3 ở mức tốt: 5099 giờ
    • Số giờ đo được chất lượng khí O3 ở mức bình thường: 3209 giờ
    • Số giờ đo được chất lượng khí O3 ở mức tệ: 60 giờ
    • Số giờ đo được chất lượng khí O3 ở mức rất tệ: 2 giờ
  • Quận Yongsan-gu:
    • Số giờ đo được chất lượng khí O3 ở mức tốt: 5773 giờ
    • Số giờ đo được chất lượng khí O3 ở mức bình thường: 2563 giờ
    • Số giờ đo được chất lượng khí O3 ở mức tệ: 46 giờ
    • Số giờ đo được chất lượng khí O3 ở mức rất tệ: 2 giờ

Nguyên nhân gây ra khí O3

  • Hoạt động giao thông:

Khí thải từ xe cộ là nguồn phát thải O3 lớn nhất ở Seoul. Khí thải này chứa các hợp chất hữu cơ dễ bay hơi (VOC) và nitơ oxit (NOx), là những tiền chất chính tạo thành O3.

  • Hoạt động sinh hoạt:

Sử dụng bếp gas: Bếp gas thải ra NOx, một tiền chất tạo thành O3.

Sử dụng các sản phẩm tẩy rửa và hóa chất: Một số sản phẩm tẩy rửa và hóa chất thải ra VOC, một tiền chất tạo thành O3.

Sử dụng máy điều hòa: Máy điều hòa thải ra khí nóng, góp phần vào sự hình thành O3.

  • Hoạt động công nghiệp:

Một số ngành công nghiệp, như nhà máy điện và nhà máy hóa chất, cũng phát thải VOC và NOx, góp phần vào mức O3 cao.

  • Điều kiện thời tiết:

Mức O3 có xu hướng cao hơn vào mùa hè khi nhiệt độ cao và có nhiều ánh nắng mặt trời. Ánh nắng mặt trời giúp thúc đẩy quá trình hình thành O3 từ VOC và NOx.

  • Vị trí địa lý:

Seoul nằm gần các khu vực công nghiệp lớn ở Trung Quốc, nơi cũng có mức khí O3 cao. Khí O3 từ Trung Quốc có thể di chuyển đến Seoul qua gió.

=> Kết luận

Mặc dù nồng độ O3 ở 5 quận Seoul chủ yếu dao động ở mức bình thường và tốt, nhưng cần lưu ý rằng: O3 có xu hướng tăng cao vào mùa hè, khi nhiệt độ và ánh nắng mặt trời mạnh. Seoul thường xuyên phải cảnh báo về chất lượng không khí do O3, đặc biệt là vào mùa hè.

3.4. Chất lượng khí CO

a %>% group_by(mức.độ.co) %>% summarise(n = n()) %>%
  ggplot(aes(x = '', y = n,fill = mức.độ.co)) +
    geom_col(color = 'black') +
    coord_polar('y') +
    geom_text(aes(x = 1.3, label = n),position = position_stack(vjust = .5)) +
    theme_minimal() +
  labs(title = 'Biểu đồ 10: Chất lượng khí CO ở 5 quận Seoul theo mỗi giờ', x = ' ', y = ' ')

Chất lượng khí CO tại khu vực khảo sát chủ yếu ở mức tốt: 99,8% thời gian đo (tương đương 41824 giờ) cho kết quả chất lượng khí CO tốt.

Chỉ có 0,2% thời gian đo (tương đương 75 giờ) cho kết quả chất lượng khí CO ở mức bình thường.

Không ghi nhận trường hợp nào chất lượng khí CO ở mức tệ hoặc rất tệ.

Nguyên nhân gây ra khí CO

  • Giao thông vận tải:

Hoạt động giao thông là nguồn phát thải khí CO lớn nhất ở Seoul, chiếm 74,4% tổng lượng khí CO phát thải năm 2019.

Xe cộ sử dụng nhiên liệu hóa thạch như xăng, dầu diesel là nguyên nhân chính tạo ra khí CO.

Giao thông tắc nghẽn khiến xe cộ phải di chuyển chậm chạp, làm tăng lượng khí thải CO.

  • Hoạt động công nghiệp:

Hoạt động công nghiệp là nguồn phát thải khí CO lớn thứ hai ở Seoul, chiếm 14,2% tổng lượng khí CO phát thải năm 2019. Các nhà máy sử dụng nhiên liệu hóa thạch để sản xuất năng lượng và sản phẩm là nguồn phát thải khí CO.

Quá trình đốt cháy nhiên liệu hóa thạch trong các nhà máy cũng tạo ra khí CO.

  • Hoạt động sinh hoạt:

Hoạt động sinh hoạt cũng góp phần vào việc phát thải khí CO ở Seoul, chiếm 11,4% tổng lượng khí CO phát thải năm 2019.

Sử dụng bếp gas để nấu nướng là một trong những nguyên nhân chính tạo ra khí CO.

Sử dụng các thiết bị sưởi ấm và làm mát sử dụng nhiên liệu hóa thạch cũng tạo ra khí CO.

=> Kết luận

Khí CO tại khu vực khảo sát đạt chất lượng tốt trong phần lớn thời gian.

Tuy nhiên, vẫn có một số trường hợp chất lượng khí CO giảm xuống mức bình thường.

4. Đánh giá tình hình ô nhiễm không khí ở Seoul năm 2019

Mặc dù đa phần các giờ đo và các quận được đo ở Seoul đều nằm trong mức an toàn, tức là chất lượng không khí được xem là tốt hoặc bình thường, nhưng lượng khí ô nhiễm vẫn rất đông và nhiều. Điều này có nghĩa là ngay cả khi chất lượng không khí ở mức an toàn, nó vẫn có thể gây ra ảnh hưởng đáng kể đến sức khỏe của cộng đồng.

Một số tác hại của ô nhiễm không khí mà chúng ta đã có thể từng được chứng kiến hoặc nghe qua như:

Mật độ bụi siêu mịn (nhỏ hơn 2,5 micrometer, hay còn gọi là PM2.5) trung bình ở thủ đô Seoul của Hàn Quốc trong tháng 3/2019 đã chạm ngưỡng cao kỷ lục kể từ khi các dữ liệu bắt đầu được thu thập vào năm 2015 (Theo báo Tin Tức vào ngày 1/4/2019)

Thủ đô Seoul tiếp tục chìm trong bụi mịn bởi sương mù do bụi mịn gây ra, buộc chính quyền địa phương phải ban hành hướng dẫn về bụi mịn và các biện pháp giảm khí thải khẩn cấp, như quy định lái xe ngày chẵn-lẻ đối với các phương tiện công cộng và cấm đường đối với các loại xe cũ sử dụng dầu diesel (Theo báo Nhân Dân, vào ngày 11/12/2019).

Lượng bụi siêu mịn gây ô nhiễm không khí ở khu vực thủ đô Seoul của Hàn Quốc trong ngày 10/12 đã tăng lên mức rất xấu khiến Hàn Quốc phải cảnh báo do bụi mịn. Nguyên nhân phần lớn là do bị khói bụi từ Trung Quốc bay sang bán đảo Triều Tiên.Đây là cảnh báo về bụi siêu mịn đầu tiên của Hàn Quốc trong mùa đông năm 2019 (Theo báo VTV ngày 11/12/2019).

5. Giải pháp cho tình hình ô nhiễm không khí ở Seoul năm 2019

“Lời hứa Seoul”: Biến Seoul thành thành phố bền vững (Theo báo Kinh tế đô thị)

Từ năm 2015 đến 2020, Seoul đã thực hiện thành công chiến dịch “Lời hứa Seoul” với mục tiêu biến thành phố trở nên bền vững cho tất cả sinh vật sống.

Chiến dịch này bao gồm 5 lĩnh vực chính với 160 hành động cụ thể:

  • Năng lượng
  • Không khí/Giao thông
  • Tuần hoàn tài nguyên/Nước
  • Sinh thái/Nông nghiệp đô thị
  • Sức khỏe/An toàn

Kết quả:

  • Seoul giảm 25% lượng khí thải carbon so với năm 2015, tương đương 3,7 triệu tấn năng lượng tiêu thụ (TOE).

  • Seoul trở thành thành phố trong lành, an toàn, có khả năng chống chọi với biến đổi khí hậu.

Thành công của chiến dịch “Lời hứa Seoul” đến từ:

  • Sự đồng lòng của chính quyền và người dân Seoul trong việc tiết giảm năng lượng và bảo vệ môi trường.

  • Các biện pháp cụ thể và hiệu quả được thực hiện trong từng lĩnh vực.

  • Chiến dịch “Lời hứa Seoul” là một ví dụ điển hình về sự thành công trong việc xây dựng thành phố bền vững. Nó đã trở thành niềm cảm hứng cho nhiều thành phố khác trên thế giới, trong đó có Hà Nội.

Bài học kinh nghiệm từ “Lời hứa Seoul” cho Việt Nam:

  • Cần có sự đồng lòng của chính quyền và người dân trong việc bảo vệ môi trường.

  • Cần xây dựng chiến lược cụ thể và hiệu quả cho từng lĩnh vực.

  • Cần huy động sự tham gia của các tổ chức xã hội và doanh nghiệp trong việc thực hiện chiến lược.

  • Với sự quyết tâm và nỗ lực của chính quyền và người dân, Hà Nội có thể học hỏi từ kinh nghiệm của Seoul để xây dựng thành phố xanh - sạch - đẹp và bền vững trong tương lai.

IV. TỔNG KẾT

Trong tiểu luận này, chúng ta đã tập trung vào phân tích các yếu tố môi trường quan trọng đóng vai trò trong ảnh hưởng đến chất lượng không khí tại Seoul trong năm 2019, dựa trên dữ liệu về các chỉ số ô nhiễm không khí như SO2, NO2, O3, CO, PM10 và PM2.5. Thông qua việc phân tích dữ liệu này, chúng ta đã nhận thức được sự phức tạp của tình trạng ô nhiễm không khí, các yếu tố gây ra ô nhiễm, và tác động của ô nhiễm không khí đối với sức khỏe cộng đồng.

Trong số các nguyên nhân ảnh hưởng đến chất lượng không khí tại Seoul, các hoạt động của con người chiếm phần lớn, bao gồm giao thông, công nghiệp, và sự sử dụng nhiên liệu hóa thạch cho việc sưởi ấm và sản xuất. Ngoài ra, các yếu tố tự nhiên như điều kiện thời tiết, địa hình cũng đóng vai trò quan trọng trong quá trình xác định chất lượng không khí.

Mặc dù đã phải đối mặt với nhiều biến động, chính phủ Hàn Quốc cùng người dân đã tiến hành các biện pháp một cách tận tâm để duy trì mức độ chất lượng không khí ở mức tốt. Sự thành công của Hàn Quốc đã trở thành một nguồn động viên và học hỏi quý báu cho nhiều quốc gia châu Á, bao gồm cả Việt Nam. Điều này là một điểm sáng mà chúng ta cần tiếp tục học hỏi và áp dụng vào việc cải thiện chất lượng không khí tại quê nhà.

V. TÀI LIỆU THAM KHẢO

[1] Xếp Hạng Chỉ SỐ Chất Lượng Không Khí (AQI) thế giới. IQAir. (2024, January 12). https://www.iqair.com/vi/world-air-quality-ranking

[2] baotintuc.vn. (2019, April 1). Mật độ Bụi Siêu mịn ở Seoul, Hàn Quốc Chạm Ngưỡng kỷ Lục. Báo tin tức. https://baotintuc.vn/the-gioi/mat-do-bui-sieu-min-o-seoul-han-quoc-cham-nguong-ky-luc-20190401134416259.htm

[3] Thủ đô Seoul Tiếp tục chìm Trong Ô nhiễm bụi mịn. Báo Nhân Dân điện tử. (2019, December 11). https://nhandan.vn/thu-do-seoul-tiep-tuc-chim-trong-o-nhiem-bui-min-post379751.html

[4] Baodientuvtv. (2019, December 11). Hàn Quốc Cảnh Báo Ô nhiễm do Bụi mịn. BAO DIEN TU VTV. https://vtv.vn/viet-nam-hom-nay/han-quoc-canh-bao-o-nhiem-do-bui-min-20191211175412437.htm

[5] Ánh, H. (2021, December 25). Giảm thiểu Ô nhiễm không khí đô thị: Nhìn TỪ “Lời Hứa seoul.” Báo Kinh tế đô thị - Đọc tin tức thời sự kinh tế 24h mới nhất. https://kinhtedothi.vn/giam-thieu-o-nhiem-khong-khi-do-thi-nhin-tu-loi-hua-seoul.html

LS0tDQp0aXRsZTogJ1Rp4buDdSBsdeG6rW4gbcO0biBo4buNYzogTmfDtG4gbmfhu68gbOG6rXAgdHLDrG5oIHRyb25nIHBow6JuIHTDrWNoIGThu68gbGnhu4d1Jw0KYXV0aG9yOiAiTmd1eeG7hW4gUGjhuqFtIFRow7p5IEFuIC0gMjIyMTAwMDI5MCINCmRhdGU6ICJgciBmb3JtYXQoU3lzLnRpbWUoKSwgJyVIOiVNOiVTLCAlZCAtICVtIC0gJVknKWAiDQpvdXRwdXQ6DQogIGh0bWxfZG9jdW1lbnQ6DQogICAgdG9jOiB0cnVlDQogICAgbnVtYmVyIHNlY3Rpb246IHRydWUNCiAgICB0b2NfZmxvYXQ6IHRydWUNCiAgICBjb2RlX2ZvbGRpbmc6IGhpZGUNCiAgICBjb2RlX2Rvd25sb2FkOiB0cnVlDQotLS0NCg0KYGBge3Igc2V0dXAsIGluY2x1ZGU9RkFMU0V9DQprbml0cjo6b3B0c19jaHVuayRzZXQoZWNobyA9IFRSVUUpDQpgYGANCg0KPiAqKsSQ4buAIFTDgEk6ICJQSMOCTiBUw41DSCDhuqJOSCBIxq/hu55ORyBD4bumQSBDw4FDIFnhur5VIFThu5AgTcOUSSBUUsav4bucTkcgxJDhur5OIENI4bqkVCBMxq/hu6JORyBLSMOUTkcgS0jDjSBU4bqgSSBUSMOATkggUEjhu5AgU0VPVUwgTsSCTSAyMDE5IioqDQoNCiFbXShDOi9Vc2Vycy9BZG1pbi9Eb3dubG9hZHMvQsOsYSBt4bqrdV8wMDAwMSAoMikucG5nKQ0KDQojICoqTOG7nEkgQ+G6ok0gxqBOKioNCg0KS8OtbmggZ+G7rWkgVGjhuqd5IFRy4bqnbiBN4bqhbmggVMaw4budbmcsDQoNCkVtIHhpbiBn4butaSBs4budaSBj4bqjbSDGoW4gc8OidSBz4bqvYyDEkeG6v24gVGjhuqd5IHbDrCBz4buxIGjGsOG7m25nIGThuqtuIHbDoCBo4buXIHRy4bujIHF1w70gYsOhdSB0cm9uZyBzdeG7kXQgcXXDoSB0csOsbmggVGjhuqd5IGdp4bqjbmcgZOG6oXkgbcO0biBOZ8O0biBuZ+G7ryBs4bqtcCB0csOsbmggdHJvbmcgcGjDom4gdMOtY2ggZOG7ryBsaeG7h3UuIFPhu7EgdOG6rW4gdMOibSB2w6Aga2nhur9uIHRo4bupYyBzw6J1IHLhu5luZyBj4bunYSBUaOG6p3kga2jDtG5nIGNo4buJIGdpw7pwIGVtIGhp4buDdSByw7UgaMahbiB24buBIHThuqdtIHF1YW4gdHLhu41uZyBj4bunYSBtw7RuIGjhu41jIG7DoHkgbcOgIGPDsm4gxJHDs25nIHZhaSB0csOyIHF1YW4gdHLhu41uZyB0cm9uZyB2aeG7h2MgcGjDoXQgdHJp4buDbiBr4bu5IG7Eg25nIG5naGnDqm4gY+G7qXUgdsOgIHBow6JuIHTDrWNoLCDDoXAgZOG7pW5nIHbDoG8gdGjhu7FjIHThur8gdHJvbmcgdMawxqFuZyBsYWkuDQoNCkVtIG114buRbiBiw6B5IHThu48gbMOybmcgYmnhur90IMahbiBjaMOibiB0aMOgbmggduG7m2kgc+G7sSBo4buXIHRy4bujIGtow7RuZyBuZ+G7q25nIG5naOG7iSB2w6Agbmjhu69uZyBn4bujaSDDvSBjw7MgZ2nDoSB0cuG7iyBtw6AgVGjhuqd5IMSRw6MgZMOgbmggY2hvIGVtLiBOaOG7r25nIGzhu51pIGNo4buJIGThuqtuIHbDoCBwaOG6o24gaOG7k2kgdOG7qyBUaOG6p3kgxJHDoyBnacO6cCBlbSBob8OgbiB0aGnhu4duIHbDoCBuw6JuZyBjYW8gY2jhuqV0IGzGsOG7o25nIGPhu6dhIGPDtG5nIHRyw6xuaCBuZ2hpw6puIGPhu6l1IGPhu6dhIG3DrG5oLCDEkeG6t2MgYmnhu4d0IGzDoCB0cm9uZyB2aeG7h2MgdOG7lW5nIGvhur90IHbDoCB2aeG6v3QgYsOgaSB0aeG7g3UgbHXhuq1uIGN14buRaSBr4buzLg0KDQpFbSB0aW4gcuG6sW5nIGtp4bq/biB0aOG7qWMgdsOgIGtpbmggbmdoaeG7h20gbcOgIGVtIMSRw6MgdMOtY2ggbMWpeSB04burIG3DtG4gaOG7jWMgbsOgeSBz4bq9IGx1w7RuIGPDsyBnacOhIHRy4buLIHRyb25nIHF1w6EgdHLDrG5oIGjhu41jIHThuq1wIHbDoCBz4buxIG5naGnhu4dwIHNhdSBuw6B5IGPhu6dhIGVtLiBN4buZdCBs4bqnbiBu4buvYSwgZW0geGluIGNow6JuIHRow6BuaCBj4bqjbSDGoW4gc+G7sSBo4buXIHRy4bujIHbDoCBz4buxIGPhu5FuZyBoaeG6v24gY+G7p2EgVGjhuqd5IHRyb25nIHN14buRdCB0aOG7nWkgZ2lhbiBxdWEuDQoNClRyw6JuIHRy4buNbmcsDQoNCk5ndXnhu4VuIFBo4bqhbSBUaMO6eSBBbg0KDQojICoqSS4gR0nhu5pJIFRISeG7hlUgxJDhu4AgVMOASSoqDQpfX18NCiMjICoqMS4gxJDhurd0IHbhuqVuIMSR4buBKioNCg0KxJDhu5FpIGRp4buHbiB24bubaSBz4buxIGdpYSB0xINuZyB24buBIMSRw7QgdGjhu4sgaMOzYSB2w6AgY8O0bmcgbmdoaeG7h3AgaMOzYSwgduG6pW4gxJHhu4EgduG7gSBjaOG6pXQgbMaw4bujbmcga2jDtG5nIGtow60gbmfDoHkgY8OgbmcgdHLhu58gbsOqbiBuZ2hpw6ptIHRy4buNbmcgdHJvbmcgY8OhYyB0aMOgbmggcGjhu5EgdHLDqm4ga2jhuq9wIHRo4bq/IGdp4bubaS4gVmnhu4djIMO0IG5oaeG7hW0ga2jDtG5nIGtow60ga2jDtG5nIGNo4buJIOG6o25oIGjGsOG7n25nIMSR4bq/biBz4bupYyBraOG7j2UgY+G7p2EgY29uIG5nxrDhu51pIG3DoCBjw7JuIMSRZSBk4buNYSDEkeG6v24gc+G7sSBwaMOhdCB0cmnhu4NuIGLhu4FuIHbhu69uZyBj4bunYSBtw7RpIHRyxrDhu51uZyBz4buRbmcuIFRyb25nIGLhu5FpIGPhuqNuaCBuw6B5LCB2aeG7h2MgcGjDom4gdMOtY2ggY8OhYyB54bq/dSB04buRIOG6o25oIGjGsOG7n25nIMSR4bq/biBjaOG6pXQgbMaw4bujbmcga2jDtG5nIGtow60gdHJvbmcgbeG7mXQgdGjDoG5oIHBo4buRIHRy4bufIG7Dqm4gY+G6pXAgYsOhY2ggdsOgIHF1YW4gdHLhu41uZyBoxqFuIGJhbyBnaeG7nSBo4bq/dC4NCg0KTmjGsCBt4buZdCDEkWnhu4NtIHh14bqldCBwaMOhdCBjaG8gbmdoacOqbiBj4bupdSBuw6B5LCBjaMO6bmcgdGEgY+G6p24gbmjDrG4gdsOgbyBz4buxIHBo4bupYyB04bqhcCBj4bunYSBjw6FjIHnhur91IHThu5EgbcO0aSB0csaw4budbmcgdsOgIHjDoyBo4buZaSDEkWFuZyB0w6FjIMSR4buZbmcgbMOqbiBjaOG6pXQgbMaw4bujbmcga2jDtG5nIGtow60uIEtow60gdGjhuqNpIHThu6sgZ2lhbyB0aMO0bmcsIGPDtG5nIG5naGnhu4dwIHbDoCB0acOqdSB0aOG7pSBuxINuZyBsxrDhu6NuZywgY8O5bmcgduG7m2kgY8OhYyB54bq/dSB04buRIG5oxrAgdGjhu51pIHRp4bq/dCwgxJHhu4thIGzDvSB2w6AgY2jDrW5oIHPDoWNoIG3DtGkgdHLGsOG7nW5nLCB04bqldCBj4bqjIMSR4buBdSDEkcOzbmcgdmFpIHRyw7IgcXVhbiB0cuG7jW5nIHRyb25nIHZp4buHYyBow6xuaCB0aMOgbmggbeG7qWMgxJHhu5kgw7Qgbmhp4buFbSBraMO0bmcga2jDrSB0cm9uZyB0aMOgbmggcGjhu5EuIMSQaeG7gXUgbsOgeSDEkeG6t3QgcmEgY8OidSBo4buPaSB24buBIGPDoWNoIGPDoWMgeeG6v3UgdOG7kSBuw6B5IHTGsMahbmcgdMOhYyB24bubaSBuaGF1IHbDoCBsw6BtIHRo4bq/IG7DoG8gY2jDum5nIOG6o25oIGjGsOG7n25nIMSR4bq/biBjaOG6pXQgbMaw4bujbmcga2jDtG5nIGtow60sIGPFqW5nIG5oxrAgbmjhu69uZyBiaeG7h24gcGjDoXAgY+G6p24gxJHGsOG7o2MgdGjhu7FjIGhp4buHbiDEkeG7gyBnaeG6o20gdGhp4buDdSB0w6FjIMSR4buZbmcgdGnDqnUgY+G7sWMgbsOgeS4NCg0KVuG7m2kgc+G7sSBoaeG7g3UgYmnhur90IHPDonUgc+G6r2MgduG7gSBjw6FjIHnhur91IHThu5EgbsOgeSwgY2jDum5nIHRhIGPDsyB0aOG7gyBwaMOhdCB0cmnhu4NuIGPDoWMgY2hp4bq/biBsxrDhu6NjIGhp4buHdSBxdeG6oyDEkeG7gyBj4bqjaSB0aGnhu4duIGNo4bqldCBsxrDhu6NuZyBraMO0bmcga2jDrSB0cm9uZyBjw6FjIHRow6BuaCBwaOG7kSB2w6AgYuG6o28gduG7hyBz4bupYyBraOG7j2UgY+G7p2EgY+G7mW5nIMSR4buTbmcuIFRyb25nIGLhu5FpIGPhuqNuaCBuw6B5LCB2aeG7h2MgcGjDom4gdMOtY2ggY8OhYyB54bq/dSB04buRIOG6o25oIGjGsOG7n25nIMSR4bq/biBjaOG6pXQgbMaw4bujbmcga2jDtG5nIGtow60gdHJvbmcgbeG7mXQgdGjDoG5oIHBo4buRIHRy4bufIHRow6BuaCBt4buZdCBwaOG6p24ga2jDtG5nIHRo4buDIHRoaeG6v3UgdHJvbmcgdmnhu4djIMSR4bqjbSBi4bqjbyBt4buZdCBtw7RpIHRyxrDhu51uZyBz4buRbmcgbMOgbmggbeG6oW5oIHbDoCBi4buBbiB24buvbmcgY2hvIHTGsMahbmcgbGFpLg0KDQojIyAqKjIuIEzDvSBkbyBjaOG7jW4gxJHhu4EgdMOgaSB2w6AgbeG7pWMgdGnDqnUgbmdoacOqbiBj4bupdSB0aeG7g3UgbHXhuq1uKioNCg0KROG7sWEgdHLDqm4gYsOhbyBjw6FvIHThu6sgdHJhbmcgd2ViIFtJUUFpcl0oaHR0cHM6Ly93d3cuaXFhaXIuY29tL3ZpL3dvcmxkLWFpci1xdWFsaXR5LXJhbmtpbmcpIHbDoG8gbsSDbSAyMDI0LCBWaeG7h3QgTmFtIMSRYW5nIMSR4buRaSBt4bq3dCB24bubaSB0aMOhY2ggdGjhu6ljIHbhu4EgY2jhuqV0IGzGsOG7o25nIGtow7RuZyBraMOtLCB24bubaSBIw6AgTuG7mWkgeOG6v3Ag4bufIHbhu4sgdHLDrSB0aOG7qSA4IHbDoCBI4buTIENow60gTWluaCB44bq/cCDhu58gduG7iyB0csOtIHRo4bupIDQ2IHRyb25nIGRhbmggc8OhY2ggY8OhYyB0aMOgbmggcGjhu5EgY8OzIGNo4bqldCBsxrDhu6NuZyBraMO0bmcga2jDrSBrw6ltLiBUcm9uZyBraGkgxJHDsywgbeG7mXQgdHJvbmcgbmjhu69uZyDEkeG7kWkgdMOhYyBxdeG7kWMgdOG6vyBj4bunYSBjaMO6bmcgdGEsIEjDoG4gUXXhu5FjLCBs4bqhaSBjw7MgdGjhu6cgxJHDtCBTZW91bCB44bq/cCBzYXUgduG7m2kgduG7iyB0csOtIDUxLg0KDQpT4buxIMSR4buRaSBs4bqtcCBuw6B5IGNobyB0aOG6pXkgcuG6sW5nIEjDoG4gUXXhu5FjLCDEkeG6t2MgYmnhu4d0IGzDoCBTZW91bCwgxJHDoyB0aOG7sWMgaGnhu4duIHRow6BuaCBjw7RuZyBjw6FjIGvhur8gaG/huqFjaCBuZ8SDbiBjaOG6t24gw7Qgbmhp4buFbSBraMO0bmcga2jDrSB2w6AgcXXhuqNuIGzDvSBjaOG6t3QgY2jhur0gY8OhYyB54bq/dSB04buRIOG6o25oIGjGsOG7n25nIMSR4bq/biBjaOG6pXQgbMaw4bujbmcga2jDtG5nIGtow60uIMSQaeG7gXUgbsOgeSBsw6AgbeG7mXQgxJFp4buDbSBt4bqhbmggdsOgIG3hu5l0IHbDrSBk4bulIG3DoCBWaeG7h3QgTmFtIGPDsyB0aOG7gyBo4buNYyBo4buPaSB2w6Agw6FwIGThu6VuZyDEkeG7gyBj4bqjaSB0aGnhu4duIHTDrG5oIGjDrG5oIMO0IG5oaeG7hW0ga2jDtG5nIGtow60gdOG6oWkgcXXhu5FjIGdpYSBtw6xuaC4NCg0KQuG6sW5nIGPDoWNoIHBow6JuIHTDrWNoIGPDoWMgeeG6v3UgdOG7kSDhuqNuaCBoxrDhu59uZyDEkeG6v24gY2jhuqV0IGzGsOG7o25nIGtow7RuZyBraMOtIOG7nyBTZW91bCwgY2jDum5nIHRhIGPDsyB0aOG7gyBuaOG6rW4gcmEgbmjhu69uZyBiaeG7h24gcGjDoXAgaGnhu4d1IHF14bqjIG3DoCBo4buNIMSRw6MgdGjhu7FjIGhp4buHbiB2w6Agw6FwIGThu6VuZyBjaMO6bmcgdsOgbyBjaGnhur9uIGzGsOG7o2MgcXXhuqNuIGzDvSBtw7RpIHRyxrDhu51uZyBj4bunYSBtw6xuaCwgbmjhurFtIG3hu6VjIHRpw6p1IGPhuqNpIHRoaeG7h24gY2jhuqV0IGzGsOG7o25nIGtow7RuZyBraMOtIHbDoCBi4bqjbyB24buHIHPhu6ljIGto4buPZSBj4buZbmcgxJHhu5NuZy4NCg0KIyMgKiozLiDEkOG7kWkgdMaw4bujbmcgbmdoacOqbiBj4bupdSBj4bunYSB0aeG7g3UgbHXhuq1uKioNCg0KxJDhu5FpIHTGsOG7o25nIG5naGnDqm4gY+G7qXUgY+G7p2EgdGnhu4N1IGx14bqtbiBuw6B5IGzDoCBjw6FjIHnhur91IHThu5Eg4bqjbmggaMaw4bufbmcgxJHhur9uIGNo4bqldCBsxrDhu6NuZyBraMO0bmcga2jDrSB0cm9uZyB0aMOgbmggcGjhu5EgU2VvdWwsIGPhu6UgdGjhu4M6DQoNCiogQuG7pWkgbeG7i24gKGJhbyBn4buTbSBi4bulaSBt4buLbiBQTTIuNSB2w6AgYuG7pWkgbeG7i24gUE0xMCkNCg0KKiBLaMOtIHRo4bqjaSBuaMOgIGvDrW5oIChiYW8gZ+G7k20gY8OhYyBraMOtIFNPMiwgTk8yLCBPMywgQ08pDQoNCiMjICoqNC4gUGjGsMahbmcgcGjDoXAgbmdoacOqbiBj4bupdSBj4bunYSB0aeG7g3UgbHXhuq1uKioNCg0KUGjGsMahbmcgcGjDoXAgbmdoacOqbiBj4bupdSDEkcaw4bujYyDDoXAgZOG7pW5nIHRyb25nIHRp4buDdSBsdeG6rW4gbsOgeSBz4bq9IGJhbyBn4buTbSBjw6FjIGLGsOG7m2Mgc2F1Og0KDQoqICoqVGh1IHRo4bqtcCBk4buvIGxp4buHdSoqDQoNCsSQ4bqndSB0acOqbiwgZW0gc+G6vSB0aHUgdGjhuq1wIGThu68gbGnhu4d1IHbhu4EgY2jhuqV0IGzGsOG7o25nIGtow7RuZyBraMOtIHbDoCBjw6FjIHnhur91IHThu5Eg4bqjbmggaMaw4bufbmcgxJHhur9uIG7DsyB0cm9uZyB0aMOgbmggcGjhu5EgU2VvdWwuIEThu68gbGnhu4d1IG7DoHkgY8OzIHRo4buDIGJhbyBn4buTbSBjw6FjIGNo4buJIHPhu5Egw7Qgbmhp4buFbSBraMO0bmcga2jDrSBuaMawIFBNMi41LCBQTTEwLCBOTzIsIFNPMiwgTzMsIENPIGPFqW5nIG5oxrAgZOG7ryBsaeG7h3UgduG7gSBuZ8OgeSBnaeG7nSB2w6AgxJHhu4thIMSRaeG7g20uDQoNCiogKipQaMOibiB0w61jaCBk4buvIGxp4buHdSoqDQoNClNhdSBraGkgdGh1IHRo4bqtcCBk4buvIGxp4buHdSwgZW0gc+G6vSBz4butIGThu6VuZyBjw6FjIHBoxrDGoW5nIHBow6FwIHRo4buRbmcga8OqbSwgcGjDom4gdMOtY2ggZOG7ryBsaeG7h3UsIGJp4buDdSDEkeG7kyDEkeG7gyBoaeG7g3UgcsO1IGjGoW4gduG7gSBt4buRaSBxdWFuIGjhu4cgZ2nhu69hIGPDoWMgeeG6v3UgdOG7kSBtw7RpIHRyxrDhu51uZyB2w6AgY2jhuqV0IGzGsOG7o25nIGtow7RuZyBraMOtLg0KDQoqICoqxJDDoW5oIGdpw6EgdsOgIHNvIHPDoW5oKioNCg0KQ3Xhu5FpIGPDuW5nLCBlbSBz4bq9IMSRw6FuaCBnacOhIGvhur90IHF14bqjIGPhu6dhIHBow6JuIHTDrWNoIHbDoCBzbyBzw6FuaCBjaOG6pXQgbMaw4bujbmcga2jDtG5nIGtow60gxJHhu4MgY8OzIHRo4buDIMSR4buBIHh14bqldCBjw6FjIGJp4buHbiBwaMOhcCBj4bqjaSB0aGnhu4duIG7hur91IGPhuqduIHRoaeG6v3QuDQoNCj0+IFBoxrDGoW5nIHBow6FwIG5naGnDqm4gY+G7qXUgbsOgeSBz4bq9IGN1bmcgY+G6pXAgY8OhaSBuaMOsbiB0b8OgbiBkaeG7h24gduG7gSB0w6xuaCB0cuG6oW5nIGNo4bqldCBsxrDhu6NuZyBraMO0bmcga2jDrSB2w6AgY8OhYyB54bq/dSB04buRIOG6o25oIGjGsOG7n25nIMSR4bq/biBuw7MgdHJvbmcgdGjDoG5oIHBo4buRLCB04burIMSRw7MgxJHhu4EgeHXhuqV0IGPDoWMgYmnhu4duIHBow6FwIGPhuqNpIHRoaeG7h24gdsOgIHF14bqjbiBsw70gbcO0aSB0csaw4budbmcgaGnhu4d1IHF14bqjLg0KDQojIyAqKjUuIMOdIG5naMSpYSBuZ2hpw6puIGPhu6l1IHRp4buDdSBsdeG6rW4qKg0KDQrDnSBuZ2jEqWEgY+G7p2EgbmdoacOqbiBj4bupdSBuw6B5IHLhuqV0IHRvIGzhu5tuIHbDoCBjw7MgdGjhu4MgxJHGsOG7o2MgcGjDom4gbG/huqFpIHRow6BuaCBiYSBraMOtYSBj4bqhbmggY2jDrW5oOg0KDQoqICoqQ3VuZyBj4bqlcCB0aMO0bmcgdGluIHbDoCBoaeG7g3UgYmnhur90KioNCg0KTmdoacOqbiBj4bupdSBz4bq9IGN1bmcgY+G6pXAgdGjDtG5nIHRpbiBjaGkgdGnhur90IHbDoCDEkcOhbmcgdGluIGPhuq15IHbhu4EgY8OhYyB54bq/dSB04buRIOG6o25oIGjGsOG7n25nIMSR4bq/biBjaOG6pXQgbMaw4bujbmcga2jDtG5nIGtow60gdHJvbmcgdGjDoG5oIHBo4buRIFNlb3VsLiBC4bqxbmcgY8OhY2ggaGnhu4N1IHLDtSBoxqFuIHbhu4Egbmjhu69uZyBuZ3V5w6puIG5ow6JuIGfDonkgcmEgw7Qgbmhp4buFbSBraMO0bmcga2jDrSwgY+G7mW5nIMSR4buTbmcgdsOgIGPDoWMgY8ahIHF1YW4gcXXhuqNuIGzDvSBjw7MgdGjhu4MgxJHGsGEgcmEgY8OhYyBiaeG7h24gcGjDoXAga2nhu4NtIHNvw6F0IHbDoCBnaeG6o20gdGhp4buDdSDDtCBuaGnhu4VtIG3hu5l0IGPDoWNoIGhp4buHdSBxdeG6oy4NCg0KKiAqKsSQ4buBIHh14bqldCBnaeG6o2kgcGjDoXAgY+G6o2kgdGhp4buHbioqDQoNCkThu7FhIHRyw6puIHRow7RuZyB0aW4gxJHGsOG7o2MgdGh1IHRo4bqtcCB2w6AgcGjDom4gdMOtY2gsIG5naGnDqm4gY+G7qXUgc+G6vSDEkeG7gSB4deG6pXQgY8OhYyBnaeG6o2kgcGjDoXAgY+G7pSB0aOG7gyB2w6AgaGnhu4d1IHF14bqjIMSR4buDIGPhuqNpIHRoaeG7h24gY2jhuqV0IGzGsOG7o25nIGtow7RuZyBraMOtIHRyb25nIHRow6BuaCBwaOG7kSBTZW91bCB2w6AgY2hvIGPhuqMgVmnhu4d0IE5hbS4gTmjhu69uZyBnaeG6o2kgcGjDoXAgbsOgeSBjw7MgdGjhu4MgYmFvIGfhu5NtIHZp4buHYyDDoXAgZOG7pW5nIGPDoWMgYmnhu4duIHBow6FwIGtp4buDbSBzb8OhdCDDtCBuaGnhu4VtLCB0aMO6YyDEkeG6qXkgc+G7rSBk4bulbmcgbsSDbmcgbMaw4bujbmcgc+G6oWNoIHbDoCB0w6FpIHThuqFvLCBj4bqjaSB0aGnhu4duIGjhuqEgdOG6p25nIGdpYW8gdGjDtG5nIGPDtG5nIGPhu5luZywgdsOgIG7Dom5nIGNhbyBxdeG6o24gbMO9IG3DtGkgdHLGsOG7nW5nLg0KDQoqICoqTsOibmcgY2FvIG5o4bqtbiB0aOG7qWMgY+G7mW5nIMSR4buTbmcqKg0KDQpOZ2hpw6puIGPhu6l1IGPFqW5nIGfDs3AgcGjhuqduIG7Dom5nIGNhbyBuaOG6rW4gdGjhu6ljIGPhu6dhIG5nxrDhu51pIGTDom4gduG7gSB04bqnbSBxdWFuIHRy4buNbmcgY+G7p2Egdmnhu4djIGLhuqNvIHbhu4cgbcO0aSB0csaw4budbmcgdsOgIGNo4bqldCBsxrDhu6NuZyBraMO0bmcga2jDrS4gQuG6sW5nIGPDoWNoIHRow7RuZyB0aW4gdsOgIGdpw6FvIGThu6VjLCBj4buZbmcgxJHhu5NuZyBjw7MgdGjhu4MgdGhhbSBnaWEgdsOgbyBjw6FjIGhv4bqhdCDEkeG7mW5nIGLhuqNvIHbhu4cgbcO0aSB0csaw4budbmcgdsOgIOG7p25nIGjhu5kgY8OhYyBiaeG7h24gcGjDoXAgY+G6o2kgdGhp4buHbiBjaOG6pXQgbMaw4bujbmcga2jDtG5nIGtow60sIHThu6sgxJHDsyB04bqhbyByYSBt4buZdCBtw7RpIHRyxrDhu51uZyBz4buRbmcgbMOgbmggbeG6oW5oIHbDoCBi4buBbiB24buvbmcgY2hvIHThuqV0IGPhuqMgbeG7jWkgbmfGsOG7nWkuDQoNCj0+IFThu5VuZyB0aOG7gywgbmdoacOqbiBj4bupdSBuw6B5IGtow7RuZyBjaOG7iSBtYW5nIGzhuqFpIGtp4bq/biB0aOG7qWMgdsOgIHRow7RuZyB0aW4gcXVhbiB0cuG7jW5nIHbhu4EgY2jhuqV0IGzGsOG7o25nIGtow7RuZyBraMOtLCBtw6AgY8OybiDEkcOzbmcgdmFpIHRyw7IgcXVhbiB0cuG7jW5nIHRyb25nIHZp4buHYyDEkcawYSByYSBjw6FjIGdp4bqjaSBwaMOhcCBj4bulIHRo4buDIHbDoCBnw7NwIHBo4bqnbiB2w6BvIHZp4buHYyBj4bqjaSB0aGnhu4duIG3DtGkgdHLGsOG7nW5nIHPhu5FuZyBj4bunYSBj4buZbmcgxJHhu5NuZy4NCg0KIyAqKklJLiBHSeG7mkkgVEhJ4buGVSBC4buYIEThu64gTEnhu4ZVKioNCl9fXw0KDQojIyAqKjEuIE5ndeG7k24gZ+G7kWMgYuG7mSBk4buvIGxp4buHdSoqDQoNCkThu68gbGnhu4d1IHbhu4Egw7Qgbmhp4buFbSBraMO0bmcga2jDrSBj4bunYSBTZW91bCDEkcaw4bujYyBjdW5nIGPhuqVwIGLhu59pIGNow61uaCBxdXnhu4FuIHRow6BuaCBwaOG7kSB0aMO0bmcgcXVhIGhhaSBrw6puaCBjaMOtbmg6DQoNCiogKipPcGVuIERhdGEgUGxhemE6KiogTuG7gW4gdOG6o25nIGThu68gbGnhu4d1IG3hu58gY+G7p2EgU2VvdWwgY3VuZyBj4bqlcCB0aMO0bmcgdGluIHRow7QgduG7gSBjaOG6pXQgbMaw4bujbmcga2jDtG5nIGtow60uDQoqICoqVHJ1bmcgdMOibSBQaMOibiB0w61jaCBDaOG6pXQgbMaw4bujbmcgS2jDtG5nIGtow606KiogQ3VuZyBj4bqlcCBk4buvIGxp4buHdSDEkcOjIMSRxrDhu6NjIHThu5VuZyBo4bujcCB2w6AgcGjDom4gdMOtY2guDQoNCkThu68gbGnhu4d1IHThu6sgaGFpIG5ndeG7k24gbsOgeSDEkcaw4bujYyB04buVbmcgaOG7o3AgbOG6oWkgYuG7n2kgdMOhYyBnaeG6oyAqYmFwcGVraW0qIHbDoCDEkcSDbmcgdOG6o2kgdHLDqm4gW0thZ2dsZV0oaHR0cHM6Ly93d3cua2FnZ2xlLmNvbS9kYXRhc2V0cy9iYXBwZWtpbS9haXItcG9sbHV0aW9uLWluLXNlb3VsKSwgbeG7mXQgdHJhbmcgd2ViIGN1bmcgY+G6pXAga2hvIGThu68gbGnhu4d1IGzhu5tuIGNobyBj4buZbmcgxJHhu5NuZyBuZ2hpw6puIGPhu6l1IHbDoCBo4buNYyB04bqtcC4gDQoNCiMjICoqMi4gVOG7lW5nIHF1YW4gYuG7mSBk4buvIGxp4buHdSoqDQoNCmBgYHtyfQ0KYSA8LSByZWFkLmNzdihmaWxlID0gJ0M6L1VzZXJzL0FkbWluL0Rvd25sb2Fkcy9haXIucG9sbHV0aW9uLmluLnNlb3VsLmNpdHkuY3N2JywgaGVhZGVyID0gVCkNCg0KbmFtZXMoYSlbbmFtZXMoYSkgPT0gJ01lYXN1cmVtZW50LmRhdGUnXSA8LSAnRGF5LmFuZC50aW1lJw0KbmFtZXMoYSlbbmFtZXMoYSkgPT0gJ01lYXN1cmVtZW50LmRhdGUuMSddIDwtICdEYXknDQpuYW1lcyhhKVtuYW1lcyhhKSA9PSAnRGlzdHJpY3QnXSA8LSAnUXXhuq1uJw0KYGBgDQoNCkLhu5kgZOG7ryBsaeG7h3U6ICoqw5Qgbmhp4buFbSBraMO0bmcga2jDrSB04bqhaSBTZW91bCoqIChQaMOibiB0w61jaCBk4buvIGxp4buHdSBuxINtIDIwMTkpIGJhbyBn4buTbToNCg0KKiBUw6puOiBBaXIgcG9sbHV0aW9uIGluIFNlb3VsIGNpdHkNCiogTeG7pWMgxJHDrWNoOiDEkG8gbMaw4budbmcgY2jhuqV0IGzGsOG7o25nIGtow7RuZyBraMOtIOG7nyB0aMOgbmggcGjhu5EgU2VvdWwgbsSDbSAyMDE5DQoqIFRo4budaSBnaWFuOiAxMiB0aMOhbmcgKDIwMTkpDQoqIFThuqduIHN14bqldDogTeG7l2kgZ2nhu50NCiogxJDhu4thIMSRaeG7g206IDUgcXXhuq1uIHThuqFpIFNlb3VsDQogICogSm9uZ25vLWd1DQogICogSnVuZy1ndQ0KICAqIFlvbmdzYW4tZ3UNCiAgKiBFdW5weWVvbmctZ3UNCiAgKiBTZW9kYWVtdW4tZ3UNCiogQ+G7mXQgZOG7ryBsaeG7h3U6DQogICogRGF5LmFuZC50aW1lOiBOZ8OgeSB2w6AgZ2nhu50gxJFvDQogICogRGF5OiBOZ8OgeSDEkW8NCiAgKiBUaW1lOiBHaeG7nSDEkW8NCiAgKiBTdGF0aW9uLmNvZGU6IE3DoyBraHUgduG7sWMNCiAgKiBRdeG6rW4NCiAgKiBO4buTbmcgxJHhu5kgU08yLCBOTzIsIE8zLCBDTyAoxJHGoW4gduG7izogcHBtKQ0KICAqIE7hu5NuZyDEkeG7mSBi4bulaSBt4buLbiBQTTEwLCBQTTIuNSAoxJHGoW4gduG7izogTWljcm9ncmFtL20zKQ0KDQojIyAqKjMuIEPDoWMgeeG6v3UgdOG7kSDhuqNuaCBoxrDhu59uZyDEkeG6v24gY2jhuqV0IGzGsOG7o25nIGtow7RuZyBraMOtIOG7nyBTZW91bCBuxINtIDIwMTkqKg0KDQojIyMgKiozLjEuIEjhuqF0IGLhu6VpIG3hu4tuIFBNMTAgdsOgIFBNMi41KioNCg0KxJDDonkgbMOgIGhhaSBjaOG7iSBz4buRIHF1YW4gdHLhu41uZyB0cm9uZyB2aeG7h2MgxJHDoW5oIGdpw6EgY2jhuqV0IGzGsOG7o25nIGtow7RuZyBraMOtLiBQTTIuNSB0aMaw4budbmcgxJHGsOG7o2MgY29pIGzDoCBuZ3V5IGPGoSBuZ2hpw6ptIHRy4buNbmcgaMahbiB2w6wgY2jDum5nIGPDsyB0aOG7gyB4w6JtIG5o4bqtcCBzw6J1IHbDoG8gcGjhu5VpIHbDoCBnw6J5IHJhIGPDoWMgduG6pW4gxJHhu4Egc+G7qWMga2jhu49lIG5naGnDqm0gdHLhu41uZy4gVHJvbmcgbeG7mXQgc+G7kSBuZ8OgeSwgbeG7qWMgxJHhu5kgUE0yLjUgdsOgIFBNMTAg4bufIFNlb3VsIGPDsyB0aOG7gyB2xrDhu6N0IHF1w6EgbmfGsOG7oW5nIGFuIHRvw6BuLCDEkeG6t2MgYmnhu4d0IGzDoCB2w6BvIG3DuWEgxJHDtG5nIGtoaSB0acOqdSB0aOG7pSBuaGnDqm4gbGnhu4d1IHTEg25nIGzDqm4uDQoNCioqTmd1ecOqbiBuaMOibiBjaMOtbmg6KioNCg0KICogSG/huqF0IMSR4buZbmcgZ2lhbyB0aMO0bmc6IEtow60gdGjhuqNpIHThu6sgeGUgY+G7mSwgxJHhurdjIGJp4buHdCBsw6AgeGUgbcOheSB2w6AgeGUgdOG6o2kgZGllc2VsLg0KICogSG/huqF0IMSR4buZbmcgY8O0bmcgbmdoaeG7h3A6IEtow60gdGjhuqNpIHThu6sgY8OhYyBuaMOgIG3DoXksIHjDrSBuZ2hp4buHcC4NCiAqIEhv4bqhdCDEkeG7mW5nIHNpbmggaG/huqF0OiDEkOG7kXQgcsahbSBy4bqhLCDEkeG7kXQgdGhhbiBj4bunaSwgc+G7rSBk4bulbmcgYuG6v3AgdGhhbiB04buVIG9uZy4NCiANCioqVMOhYyDEkeG7mW5nIHRpw6p1IGPhu7FjOioqDQoNCiAqIEfDonkgcmEgY8OhYyBi4buHbmggduG7gSBow7QgaOG6pXAgbmjGsCB2acOqbSBwaOG6vyBxdeG6o24sIGhlbiBzdXnhu4VuLCB1bmcgdGjGsCBwaOG7lWkuDQogKiBHw6J5IGjhuqFpIGNobyBo4buHIHRpbSBt4bqhY2gsIGjhu4cgdGjhuqduIGtpbmgsIGjhu4cgbWnhu4VuIGThu4tjaC4NCiAqIOG6om5oIGjGsOG7n25nIMSR4bq/biB04bqnbSBuaMOsbiwgZ8OieSByYSBoaeG7h24gdMaw4bujbmcgc8awxqFuZyBtw7kgZMOgeSDEkeG6t2MuDQoNCmBgYHtyfQ0KbGlicmFyeSh0aWR5dmVyc2UpDQoNCmEkbeG7qWMuxJHhu5kucG0yLjUgPC0gY2FzZV93aGVuKA0KICBhJFBNMi41IDwgMTUgfiAnVOG7kXQnLCANCiAgYSRQTTIuNSA+PSAxNSAmIGEkUE0yLjUgPCAzNSB+ICdCw6xuaCB0aMaw4budbmcnLCANCiAgYSRQTTIuNSA+PSAzNSAmIGEkUE0yLjUgPCA3NSB+ICdU4buHJywgDQogIGEkUE0yLjUgPj0gNzUgJiBhJFBNMi41IDw9IDUwMH4gJ1LhuqV0IHThu4cnKQ0KDQphJG3hu6ljLsSR4buZLnBtMTAgPC0gY2FzZV93aGVuKA0KICBhJFBNMTAgPCAzMCB+ICdU4buRdCcsIA0KICBhJFBNMTAgPj0gMTUgJiBhJFBNMTAgPCAzNSB+ICdCw6xuaCB0aMaw4budbmcnLCANCiAgYSRQTTEwID49IDM1ICYgYSRQTTEwIDwgNzUgfiAnVOG7hycsIA0KICBhJFBNMTAgPj0gNzUgJiBhJFBNMTAgPD0gNjAwIH4gJ1LhuqV0IHThu4cnKQ0KYGBgDQoNCg0KTeG7qWMgxJHhu5kgw7Qgbmhp4buFbSBi4bulaSBt4buLbiBQTTEwIMSRxrDhu6NjIGNvaSBsw6AgY2FvIGtoaSDEkW8gbMaw4budbmcgdOG7qyAxNTAgbWljcm9ncmFtL20zIHRy4bufIGzDqm4gdsOgIHLhuqV0IGNhbyBraGkgxJFvIGzGsOG7nW5nIHThu6sgNjAwIG1pY3JvZ3JhbS9tMyB0cuG7nyBsw6puLg0KDQrEkOG7kWkgduG7m2kgYuG7pWkgbeG7i24gUE0yLjUsIG3hu6ljIMSRbyBsxrDhu51uZyB0csOqbiA3NSBtaWNyb2dyYW0vbTMgxJHGsOG7o2MgY29pIGzDoCBjYW8gdsOgIHThu6sgNTAwIG1pY3JvZ3JhbS9tMyB0cuG7nyBsw6puIMSRxrDhu6NjIHhlbSBsw6AgcuG6pXQgY2FvLg0KDQojIyMgKiozLjIuIEtow60gU08yLCBOTzIsIE8zIHbDoCBDTyoqDQoNCkPDoWMga2jDrSBuw6B5IGPFqW5nIMSRw7NuZyB2YWkgdHLDsiBxdWFuIHRy4buNbmcgdHJvbmcgdmnhu4djIMSRw6FuaCBnacOhIGNo4bqldCBsxrDhu6NuZyBraMO0bmcga2jDrS4gS2jDrSBOTzIgdsOgIFNPMiB0aMaw4budbmcgxJHGsOG7o2MgbGnDqm4ga+G6v3QgduG7m2kgZ2lhbyB0aMO0bmcgdsOgIGhv4bqhdCDEkeG7mW5nIGPDtG5nIG5naGnhu4dwLCB0cm9uZyBraGkgTzMgdsOgIENPIGPDsyB0aOG7gyBwaMOhdCBzaW5oIHThu6sgbmhp4buBdSBuZ3Xhu5NuIGtow6FjIG5oYXUgbmjGsCBnaWFvIHRow7RuZyB2w6AgdGnDqnUgdGjhu6UgbsSDbmcgbMaw4bujbmcuDQoNCioqTmd1ecOqbiBuaMOibiBjaMOtbmg6KioNCg0KKiBEbyBob+G6oXQgxJHhu5luZyBjw7RuZyBuZ2hp4buHcCwgxJHhurdjIGJp4buHdCBsw6AgY8OhYyBuaMOgIG3DoXkgbmhp4buHdCDEkWnhu4duLg0KKiBEbyBob+G6oXQgxJHhu5luZyBnaWFvIHRow7RuZywgY8O0bmcgbmdoaeG7h3AuDQoNCioqVMOhYyDEkeG7mW5nIHRpw6p1IGPhu7FjOioqDQoNCiogR8OieSByYSBjw6FjIGLhu4duaCB24buBIGjDtCBo4bqlcCwg4bqjbmggaMaw4bufbmcgxJHhur9uIGjhu4cgdGltIG3huqFjaC4NCiogR8OieSByYSBtxrBhIGF4aXQsIOG6o25oIGjGsOG7n25nIMSR4bq/biBo4buHIHNpbmggdGjDoWkuDQoqIEfDonkga8OtY2gg4bupbmcgbeG6r3QuDQoNCmBgYHtyfQ0KbGlicmFyeSh0aWR5dmVyc2UpDQoNCmEkbeG7qWMuxJHhu5kuc28yIDwtIGNhc2Vfd2hlbigNCiAgYSRTTzIgPCAwLjAyIH4gJ1Thu5F0JywgDQogIGEkU08yID49IDAuMDIgJiBhJFNPMiA8IDAuMDUgfiAnQsOsbmggdGjGsOG7nW5nJywgDQogIGEkU08yID49IDAuMDUgJiBhJFNPMiA8IDAuMTUgfiAnVOG7hycsIA0KICBhJFNPMiA+PSAwLjE1ICYgYSRTTzIgPD0gMSB+ICdS4bqldCB04buHJykNCg0KYSRt4bupYy7EkeG7mS5ubzIgPC0gY2FzZV93aGVuKA0KICBhJE5PMiA8IDAuMDMgfiAnVOG7kXQnLCANCiAgYSROTzIgPj0gMC4wMyAmIGEkTk8yIDwgMC4wNiB+ICdCw6xuaCB0aMaw4budbmcnLCANCiAgYSROTzIgPj0gMC4wNiAmIGEkTk8yIDwgMC4yIH4gJ1Thu4cnLCANCiAgYSRTTzIgPj0wLjIgJiBhJE5PMiA8PSAxIH4gJ1LhuqV0IHThu4cnKQ0KDQphJG3hu6ljLsSR4buZLm8zIDwtIGNhc2Vfd2hlbigNCiAgYSRPMyA8IDAuMDMgfiAnVOG7kXQnLCANCiAgYSRPMyA+PSAwLjAzICYgYSRPMyA8IDAuMDkgfiAnQsOsbmggdGjGsOG7nW5nJywgDQogIGEkTzMgPj0gMC4wOSAmIGEkTzMgPCAwLjE1IH4gJ1Thu4cnLCANCiAgYSRPMyA+PTAuMTUgJiBhJE8zIDw9IDAuNSB+ICdS4bqldCB04buHJykNCg0KYSRt4bupYy7EkeG7mS5jbyA8LSBjYXNlX3doZW4oDQogIGEkQ08gPCAyIH4gJ1Thu5F0JywgDQogIGEkQ08gPj0gMiAmIGEkQ08gPCA5IH4gJ0LDrG5oIHRoxrDhu51uZycsIA0KICBhJENPID49IDkgJiBhJENPIDwgMTUgfiAnVOG7hycsIA0KICBhJENPID49MTUgJiBhJENPIDw9IDUwIH4gJ1LhuqV0IHThu4cnKQ0KYGBgDQoNCg0KU08yOiBN4bupYyDEkeG7mSBjYW8gxJHGsOG7o2MgeMOhYyDEkeG7i25oIGtoaSBu4buTbmcgxJHhu5kgdOG7qyAwLjA1IC0gMC4xNSBwcG0gdsOgIG3hu6ljIMSR4buZIHLhuqV0IGNhbyBraGkgbuG7k25nIMSR4buZIHThu6sgMC4xNSAtIDEgcHBtLg0KICANCk5PMjogTeG7qWMgxJHhu5kgY2FvIMSRxrDhu6NjIHjDoWMgxJHhu4tuaCBraGkgbuG7k25nIMSR4buZIHThu6sgMC4wNiAtIDAuMiBwcG0gdsOgIG3hu6ljIMSR4buZIHLhuqV0IGNhbyBraGkgbuG7k25nIMSR4buZIHThu6sgMC4yIC0gMSBwcG0uDQogIA0KTzM6IE3hu6ljIMSR4buZIGNhbyDEkcaw4bujYyB4w6FjIMSR4buLbmgga2hpIG7hu5NuZyDEkeG7mSB04burIDAuMDkgLSAwLjE1IHBwbSB2w6AgbeG7qWMgxJHhu5kgcuG6pXQgY2FvIGtoaSBu4buTbmcgxJHhu5kgdOG7qyAwLjE1IC0gMC41IHBwbS4NCiAgDQpDTzogTeG7qWMgxJHhu5kgY2FvIMSRxrDhu6NjIHjDoWMgxJHhu4tuaCBraGkgbuG7k25nIMSR4buZIHThu6sgOSAtIDE1IHBwbSB2w6AgbeG7qWMgxJHhu5kgcuG6pXQgY2FvIGtoaSBu4buTbmcgxJHhu5kgdOG7qyAxNSAtIDUwIHBwbS4NCg0KKiAqVHJvbmcgxJHDszogcHBtIGzDoCB2aeG6v3QgdOG6r3QgY+G7p2EgInBhcnRzIHBlciBtaWxsaW9uIiBjw7MgbmdoxKlhIGzDoCAicGjhuqduIHRyaeG7h3UiLiDEkMOieSBsw6AgxJHGoW4gduG7iyDEkW8gbuG7k25nIMSR4buZLCB0aMaw4budbmcgxJHGsOG7o2Mgc+G7rSBk4bulbmcgxJHhu4MgxJFvIGzGsOG7nW5nIG7hu5NuZyDEkeG7mSBj4bunYSBjw6FjIGNo4bqldCDDtCBuaGnhu4VtIHRyb25nIGtow7RuZyBraMOtLCBuxrDhu5tjIGhv4bq3YyDEkeG6pXQuKg0KDQojIyMgKiozLjMuIFnhur91IHThu5Ega2jDoWMqKg0KDQpOZ2/DoGkgY8OhYyB54bq/dSB04buRIGNow61uaCDEkcOjIMSRxrDhu6NjIMSR4buBIGPhuq1wLCBjaOG6pXQgbMaw4bujbmcga2jDtG5nIGtow60g4bufIFNlb3VsIGPDsm4gY2jhu4t1IOG6o25oIGjGsOG7n25nIGLhu59pIG3hu5l0IHPhu5EgeeG6v3UgdOG7kSBraMOhYyBuaMawOiANCg0KKiDEkGnhu4F1IGtp4buHbiB0aOG7nWkgdGnhur90OiBWw6BvIG3DuWEgxJHDtG5nIGtow7RuZyBraMOtIGzhuqFuaCB2w6AgdMSpbmgga2hp4bq/biBjaG8gY8OhYyBjaOG6pXQgw7Qgbmhp4buFbSBraMO0bmcga2jDrSBraMOzIGtodeG6v2NoIHTDoW4sIGThuqtuIMSR4bq/biB0w6xuaCB0cuG6oW5nIHTDrWNoIHThu6UgdsOgIGdpYSB0xINuZyBu4buTbmcgxJHhu5kgYuG7pWkgbeG7i24uDQoNCiogVuG7iyB0csOtIMSR4buLYSBsw706IFNlb3VsIG7hurFtIHRyb25nIGtodSB24buxYyBjw7MgxJHhu4thIGjDrG5oIMSR4buTaSBuw7ppIGJhbyBxdWFuaCwga2hp4bq/biBjaG8gY8OhYyBjaOG6pXQgw7Qgbmhp4buFbSBraMO0bmcga2jDrSBk4buFIGTDoG5nIGLhu4sgZ2nhu68gbOG6oWkgdsOgIHTDrWNoIHThu6UgdHJvbmcga2h1IHbhu7FjLg0KDQoqIEPDoWMgaG/huqF0IMSR4buZbmc6IFjDonkgZOG7sW5nLCBjaMOheSBy4burbmcuDQoNCiMgKipJSUkuIFBIw4JOIFTDjUNIIELhu5ggROG7riBMSeG7hlUqKg0KX19fDQojIyAqKjEuIFBow6JuIHTDrWNoIGNo4bqldCBsxrDhu6NuZyBo4bqhdCBi4bulaSBt4buLbiBQTTIuNSDhu58gU2VvdWwgdHJvbmcgZ2nhu50gY2FvIMSRaeG7g20gKGJ14buVaSBzw6FuZykqKg0KDQpUaGVvIHbEg24gaMOzYSBj4bunYSBuZ8aw4budaSBIw6BuLCB0aMO0bmcgdGjGsOG7nW5nIGdp4budIGjhu41jIHbDoCBnaeG7nSBsw6BtIMSR4buBdSBi4bqvdCDEkeG6p3UgdOG7qyA5IGdp4budIHPDoW5nLCBuZ2jEqWEgcuG6sW5nIG5nxrDhu51pIGTDom4gcGjhuqNpIHLhu51pIGto4buPaSBuaMOgIHRyxrDhu5tjIDkgZ2nhu50uIE3DoCBi4buZIGThu68gbGnhu4d1IMSRxrDhu6NjIMSRbyB24bubaSB04bqnbiBzdeG6pXQgMSB0aeG6v25nL2zhuqduIG7Dqm4gY2jDum5nIHRhIHPhur0gbOG6pXkgbeG7kWMgdGjhu51pIGdpYW4gbMOgIDggZ2nhu50uDQoNCmBgYHtyfQ0KYiA8LSBhICU+JSBmaWx0ZXIoVGltZSA9PSAnODowMCcpICU+JSBzZWxlY3QoRGF5LCBRdeG6rW4sIFBNMi41LCBt4bupYy7EkeG7mS5wbTIuNSkNCg0KbGlicmFyeShmbGV4dGFibGUpDQpsaWJyYXJ5KERUKQ0KDQpkYXRhdGFibGUoYikNCmBgYA0KDQojIyMgKioxLjEuIE3huq10IMSR4buZIGjhuqF0IGLhu6VpIG3hu4tuIFBNMi41KioNCg0KYGBge3J9DQpiICU+JSBnZ3Bsb3QoYWVzKHggPSBQTTIuNSkpICsNCiAgZ2VvbV9kZW5zaXR5KGJpbndpZHRoID0gMzAsIGZpbGwgPSAnc2t5Ymx1ZScsIGNvbG9yID0gJ25hdnknKSArDQogIHRoZW1lX21pbmltYWwoKSArDQogIGxhYnModGl0bGUgPSAnQmnhu4N1IMSR4buTIDE6IE3huq10IMSR4buZIGNo4bqldCBsxrDhu6NuZyBo4bqhdCBi4bulaSBt4buLbiAyLjUgdsOgbyBnaeG7nSBjYW8gxJFp4buDbScsIHggPSAnTuG7k25nIMSR4buZIGjhuqF0IGLhu6VpIG3hu4tuIDIuNScsIHkgPSAnTeG6rXQgxJHhu5knKQ0KYGBgDQoNClbDoG8gdHJvbmcga2hv4bqjbmcgdGjhu51pIGdpYW4gbsOgeSwgZG8gbMawdSB0aMO0bmcgcGjGsMahbmcgdGnhu4duIGdpYW8gdGjDtG5nIHbDoCBob+G6oXQgxJHhu5luZyBzaW5oIGhv4bqhdCBj4bunYSBuZ8aw4budaSBkw6JuLCBz4bqjbiBzaW5oIHJhIGzGsOG7o25nIGtow7NpIHRo4bqjaSBuaOG6pXQgxJHhu4tuaCwgY8OhdCBi4bulaSBjdeG7kW4gdGhlbyB0cm9uZyBxdcOhIHRyw6xuaCBkaSBjaHV54buDbiwgYsOgbyBtw7JuIGLhu4EgbeG6t3QgxJHGsOG7nW5nIHJhIGtow7RuZyBraMOtLCB04burIMSRw7MgZ8OzcCBwaOG6p24gbMOgbSB0xINuZyBu4buTbmcgxJHhu5kgYuG7pWkgbeG7i24gUE0yLjUgdHJvbmcga2jDtG5nIGtow60uDQoNClThu6sgYmnhu4N1IMSR4buTLCBjaMO6bmcgdGEgY8OzIHRo4buDIG5o4bqtbiB0aOG6pXk6DQoNCiogKipO4buTbmcgxJHhu5kgYuG7pWkgbeG7i24gUE0yLjUgY2FvIG5o4bqldDoqKiBU4bqtcCB0cnVuZyBuaGnhu4F1IG5o4bqldCDhu58gbeG7qWMgdOG7qyAxNSAtIDUwIG1pY3JvZ3JhbS9twrMgKG5ow7NtIG7hu5NuZyDEkeG7mSAndOG7kXQnIHbDoCAnYsOsbmggdGjGsOG7nW5nJykuDQoNCiogKipO4buTbmcgxJHhu5kgYuG7pWkgbeG7i24gUE0yLjUgdGjhuqVwIG5o4bqldDoqKiBExrDhu5tpIDEwMCBtaWNyb2dyYW0vbcKzIHh14bqldCBoaeG7h24gw610IGjGoW4gKG5ow7NtIG7hu5NuZyDEkeG7mSAndOG7hycgdsOgICdy4bqldCB04buHJykuDQoNCiogKipT4buxIHBow6JuIGLhu5E6KiogS2jDtG5nIMSR4buRaSB44bupbmcgKHNrZXdlZCksIHThuq1wIHRydW5nIG5oaeG7gXUg4bufIG3hu6ljIGNhby4NCg0KIyMjICoqMS4yLiBDaOG6pXQgbMaw4bujbmcgaOG6oXQgYuG7pWkgbeG7i24gUE0yLjUgdGhlbyB04burbmcgcXXhuq1uIOG7nyBTZW91bCoqDQoNCmBgYHtyfQ0KYiAlPiUgZ3JvdXBfYnkobeG7qWMuxJHhu5kucG0yLjUsIFF14bqtbikgJT4lIHN1bW1hcmlzZShuPW4oKSkgJT4lDQogIGdncGxvdChhZXMoeCA9IG3hu6ljLsSR4buZLnBtMi41LCB5ID0gbikpICsNCiAgICBnZW9tX2NvbChmaWxsID0gJ3NreWJsdWUnKSArDQogICAgZmFjZXRfd3JhcCh+UXXhuq1uKSArDQogICAgZ2VvbV90ZXh0KGFlcyhsYWJlbCA9IG4pLHZqdXN0ID0gMC41LCBjb2xvciA9ICdibGFjaycpICsNCiAgICBsYWJzKHRpdGxlID0gJ0Jp4buDdSDEkeG7kyAyOiBDaOG6pXQgbMaw4bujbmcgaOG6oXQgYuG7pWkgbeG7i24gUE0yLjUgdGhlbyB04burbmcgcXXhuq1uIOG7nyBTZW91bCcsIHggPSAnUXXhuq1uJywgeSA9ICdT4buRIGzGsOG7o25nIG5nw6B5JykNCmBgYA0KDQpOaMawIGvhur90IHF14bqjIHThu6sgKmJp4buDdSDEkeG7kyAxKiB0YSDEkcOjIHRo4bqleSBy4bqxbmcsIGjhuqF0IGLhu6VpIG3hu4tuIFBNMi41IOG7nyBTZW91bCBwaMOibiBi4buRIGNo4bunIHnhur91IHbDoG8gbmjDs20gbuG7k25nIMSR4buZICd04buRdCcgdsOgICdiw6xuaCB0aMaw4budbmcnIMSR4buTbmcgdGjhu51pIHBow6JuIGLhu5Egw610IOG7nyBuaMOzbSBu4buTbmcgxJHhu5kgJ3Thu4cnIHbDoCAncuG6pXQgdOG7hycsIGPhu6UgdGjhu4M6IA0KDQoqKlF14bqtbiBFdW5weWVvbmctZ3UgY8OzOioqDQoNCiogMTgxIG5nw6B5IG7hu5NuZyDEkeG7mSBo4bqhdCBi4bulaSBt4buLbiBQTTIuNSBsw6AgYsOsbmggdGjGsOG7nW5nIA0KKiAxMDEgbmfDoHkgbuG7k25nIMSR4buZIGjhuqF0IGLhu6VpIG3hu4tuIFBNMi41IGzDoCB04buRdA0KKiA2MCBuZ8OgeSBu4buTbmcgxJHhu5kgaOG6oXQgYuG7pWkgbeG7i24gUE0yLjUgbMOgIHThu4cNCiogMTAgbmfDoHkgbuG7k25nIMSR4buZIGjhuqF0IGLhu6VpIG3hu4tuIFBNMi41IGzDoCBy4bqldCB04buHDQoNCioqUXXhuq1uIEpvbmduby1ndSBjw7M6KioNCg0KKiAxNjkgbmfDoHkgbuG7k25nIMSR4buZIGjhuqF0IGLhu6VpIG3hu4tuIFBNMi41IGzDoCBiw6xuaCB0aMaw4budbmcgDQoqIDEyOSBuZ8OgeSBu4buTbmcgxJHhu5kgaOG6oXQgYuG7pWkgbeG7i24gUE0yLjUgbMOgIHThu5F0DQoqIDQ1IG5nw6B5IG7hu5NuZyDEkeG7mSBo4bqhdCBi4bulaSBt4buLbiBQTTIuNSBsw6AgdOG7hw0KKiA5IG5nw6B5IG7hu5NuZyDEkeG7mSBo4bqhdCBi4bulaSBt4buLbiBQTTIuNSBsw6AgcuG6pXQgdOG7hw0KDQoqKlF14bqtbiBKdW5nLWd1IGPDszoqKg0KDQoqIDE2MiBuZ8OgeSBu4buTbmcgxJHhu5kgaOG6oXQgYuG7pWkgbeG7i24gUE0yLjUgbMOgIGLDrG5oIHRoxrDhu51uZyANCiogMTIzIG5nw6B5IG7hu5NuZyDEkeG7mSBo4bqhdCBi4bulaSBt4buLbiBQTTIuNSBsw6AgdOG7kXQNCiogNjAgbmfDoHkgbuG7k25nIMSR4buZIGjhuqF0IGLhu6VpIG3hu4tuIFBNMi41IGzDoCB04buHDQoqIDcgbmfDoHkgbuG7k25nIMSR4buZIGjhuqF0IGLhu6VpIG3hu4tuIFBNMi41IGzDoCBy4bqldCB04buHDQoNCioqUXXhuq1uIFNlb2RhZW11bi1ndSBjw7M6KioNCg0KKiAxNDIgbmfDoHkgbuG7k25nIMSR4buZIGjhuqF0IGLhu6VpIG3hu4tuIFBNMi41IGzDoCBiw6xuaCB0aMaw4budbmcgDQoqIDEzNCBuZ8OgeSBu4buTbmcgxJHhu5kgaOG6oXQgYuG7pWkgbeG7i24gUE0yLjUgbMOgIHThu5F0DQoqIDYxIG5nw6B5IG7hu5NuZyDEkeG7mSBo4bqhdCBi4bulaSBt4buLbiBQTTIuNSBsw6AgdOG7hw0KKiAxNSBuZ8OgeSBu4buTbmcgxJHhu5kgaOG6oXQgYuG7pWkgbeG7i24gUE0yLjUgbMOgIHLhuqV0IHThu4cNCg0KKipRdeG6rW4gWW9uZ3Nhbi1ndSBjw7M6KioNCg0KKiAxMzkgbmfDoHkgbuG7k25nIMSR4buZIGjhuqF0IGLhu6VpIG3hu4tuIFBNMi41IGzDoCBiw6xuaCB0aMaw4budbmcgDQoqIDE0NCBuZ8OgeSBu4buTbmcgxJHhu5kgaOG6oXQgYuG7pWkgbeG7i24gUE0yLjUgbMOgIHThu5F0DQoqIDU2IG5nw6B5IG7hu5NuZyDEkeG7mSBo4bqhdCBi4bulaSBt4buLbiBQTTIuNSBsw6AgdOG7hw0KKiAxMyBuZ8OgeSBu4buTbmcgxJHhu5kgaOG6oXQgYuG7pWkgbeG7i24gUE0yLjUgbMOgIHLhuqV0IHThu4cNCg0KTeG6t2MgZMO5IHThu7cgbOG7hyBu4buTbmcgxJHhu5kgYuG7pWkgbeG7i24gUE0yLjUg4bufIG5ow7NtICdy4bqldCB04buHJyAodOG7qyA3NS0xMDAgbWljcm9ncmFtL23CsykgY8OzIHbhursgdGjhuqVwLCBuaMawbmcgbuG7k25nIMSR4buZIGjhuqF0IGLhu6VpIG3hu4tuIFBNMi41IGzhuqFpIHThuq1wIHRydW5nIG5oaeG7gXUg4bufIG5ow7NtIG7hu5NuZyDEkeG7mSB04burICdiw6xuaCB0aMaw4budbmcnICh04burIGtob+G6o25nIDI1LTUwIG1pY3JvZ3JhbS9twrMpLiDEkGnhu4F1IG7DoHkgY2hvIHRo4bqleSBt4bupYyDEkeG7mSDDtCBuaGnhu4VtIGLhu6VpIG3hu4tuIFBNMi41IOG7nyBTZW91bCB2w6BvIG7Eg20gMjAxOSBraMOhIGNhbywgdsaw4bujdCBxdcOhIG3hu6ljIGtodXnhur9uIGPDoW8gY+G7p2EgVOG7lSBjaOG7qWMgWSB04bq/IFRo4bq/IGdp4bubaSAoV0hPKSBsw6AgMTAgbWljcm9ncmFtL23Csy4NCg0KVHV5IG5oacOqbiwgU2VvdWwgY8WpbmcgY8OzIG5oaeG7gXUgbmfDoHkgZHV5IHRyw6wgbuG7k25nIMSR4buZIOG7nyBt4bupYyAndOG7kXQnLCDEkeG6t2MgYmnhu4d0IGzDoCBxdeG6rW4gWW9uZ3Nhbi1ndSBjw7Mgc+G7kSBuZ8OgeSBu4buTbmcgxJHhu5kgbeG7qWMgJ3Thu5F0JyBjYW8gbmjhuqV0LiDEkGnhu4F1IG7DoHkgY2hvIHRo4bqleSBt4buZdCBu4buXIGzhu7FjIHTDrWNoIGPhu7FjIHThu6sgcGjDrWEgU2VvdWwgdHJvbmcgdmnhu4djIGR1eSB0csOsIGNo4bqldCBsxrDhu6NuZyBraMO0bmcga2jDrS4gTmdvw6BpIHJhLCBTZW91bCBjxaluZyBkdXkgdHLDrCBu4buTbmcgxJHhu5kgbeG7qWMgJ3LhuqV0IHThu4cnIOG7nyBt4bupYyB0aOG6pXAsIGtow7RuZyBxdcOhIDE1IG5nw6B5L27Eg20uDQoNCiMjICoqMi4gUGjDom4gdMOtY2ggbuG7k25nIMSR4buZIHRydW5nIGLDrG5oIGjhuqF0IGLhu6VpIG3hu4tuIFBNMTAg4bufIFNlb3VsIHRoZW8gbcO5YSoqDQoNCkLhu6VpIG3hu4tuIFBNMTAsIGPDsyBrw61jaCB0aMaw4bubYyB04burIDIuNSDEkeG6v24gMTAgbWljcm9nYW0sIHTGsMahbmcgxJHGsMahbmcgduG7m2kga2hv4bqjbmcgMS81IGNoaeG7gXUgcuG7mW5nIGPhu6dhIHPhu6NpIHTDs2MsIGzDoCBt4buZdCBsb+G6oWkgYuG7pWkgbeG7i24gxJHhurdjIGJp4buHdCBjw7MgdGjhu4MgZ8OieSByYSBuaGnhu4F1IHbhuqVuIMSR4buBIGNobyBz4bupYyBraOG7j2UuIExv4bqhaSBi4bulaSBuw6B5IGPDsyB0aOG7gyB4deG6pXQgcGjDoXQgdOG7qyBuaGnhu4F1IG5ndeG7k24ga2jDoWMgbmhhdSB0cm9uZyB04buxIG5oacOqbiwgYmFvIGfhu5NtIGNow6F5IHLhu6tuZywga2jDs2kgdOG7qyBuw7ppIGzhu61hLCBjxqFuIGzhu5FjIHhvw6F5LCB2w6AgYsOjbyBjw6F0LiBOZ2/DoGkgcmEsIGNow7puZyBjxaluZyBjw7MgdGjhu4MgbMOgIHPhuqNuIHBo4bqpbSBj4bunYSBwaOG6pW4gaG9hLCBiw6BvIHThu60gbuG6pW0sIHbDoCBuxrDhu5tjIHRo4bqjaSB04burIGPDtG4gdHLDuW5nLg0KDQpUcsOhaSBuZ8aw4bujYyB24bubaSBWaeG7h3QgTmFtLCBIw6BuIFF14buRYyBjw7MgYuG7kW4gbcO5YSByw7UgcsOgbmcgdsOgIGThu4Ugbmjhuq1uIGJp4bq/dC4gTcO5YSBYdcOibiBkaeG7hW4gcmEgdOG7qyB0aMOhbmcgMyDEkeG6v24gdGjDoW5nIDUsIG3DuWEgSMOoIGvDqW8gZMOgaSB04burIHRow6FuZyA2IMSR4bq/biB0aMOhbmcgOSwgbcO5YSBUaHUgdOG7qyB0aMOhbmcgOSDEkeG6v24gdGjDoW5nIDExLCB2w6AgbcO5YSDEkMO0bmcgdOG7qyB0aMOhbmcgMTIgxJHhur9uIHRow6FuZyAyIG7Eg20gc2F1Lg0KDQrEkOG7gyBwaMOibiB0w61jaCBjaOG6pXQgbMaw4bujbmcgaOG6oXQgYuG7pWkgbeG7i24gUE0xMCBt4buZdCBjw6FjaCBjaGkgdGnhur90IGjGoW4sIGNow7puZyB0YSBjw7MgdGjhu4MgdGnhur9uIGjDoG5oIHBow6JuIHTDrWNoIHRoZW8gdOG7q25nIG3DuWEgdHJvbmcgbsSDbS4NCg0KIyMjICoqMi4xLiBUaGVvIG3DuWEgWHXDom4qKg0KDQpgYGB7cn0NCmMgPC0gYmluZF9yb3dzKGFbMTQxNjozMzUzLCBdLCBhWzk4MDI6MTE3MzksIF0sIGFbMTgxODc6MjAxMjQsIF0sIGFbMjY1NzE6Mjg1MDksIF0sIGFbMzQ5NDc6MzY4ODQsIF0pICU+JSANCiAgc2VsZWN0KERheSwgUXXhuq1uLCBQTTEwLCBt4bupYy7EkeG7mS5wbTEwKQ0KDQpsaWJyYXJ5KGZsZXh0YWJsZSkNCmxpYnJhcnkoRFQpDQoNCmRhdGF0YWJsZShjKQ0KYGBgDQoNCg0KYGBge3J9DQpjICU+JSBncm91cF9ieShRdeG6rW4pICU+JSBzdW1tYXJpc2UobT0gbWVhbihQTTEwKSkgJT4lDQogZ2dwbG90KGFlcyh4ID0gUXXhuq1uLCB5ID0gbSwgY29sb3IgPSBRdeG6rW4pKSArDQogIGdlb21fcG9pbnQoc2hhcGUgPSAxNywgc2l6ZSA9IDMpICsNCiAgZ2VvbV90ZXh0KGFlcyhsYWJlbCA9IHJvdW5kKG0sMikpLCB2anVzdCA9IDAsIGNvbG9yID0gJ25hdnknKSArDQogIHRoZW1lX21pbmltYWwoKSArDQogIGxhYnModGl0bGUgPSAnQmnhu4N1IMSR4buTIDM6IE7hu5NuZyDEkeG7mSB0cnVuZyBiw6xuaCBj4bunYSBo4bqhdCBi4bulaSBt4buLbiBQTTEwIHbDoG8gbcO5YSBYdcOibicsIHggPSAnUXXhuq1uJywgeSA9ICdUcnVuZyBiw6xuaCcpDQpgYGANCg0KVOG7qyBiaeG7g3UgxJHhu5MgMywgbeG7qWMgxJHhu5kgcGjDom4gdMOhbiB0cnVuZyBiw6xuaCBj4bunYSBo4bqhdCBi4bulaSBt4buLbiBQTTEwIHThuqFpIDUgcXXhuq1uIFNlb3VsIMSR4buBdSBkxrDhu5tpIDU4IG1pY3JvZ3JhbS4gTuG7k25nIMSR4buZIGLhu6VpIG3hu4tuIFBNMTAgdOG6oWkgY8OhYyBxdeG6rW4gxJHGsOG7o2Mga2jhuqNvIHPDoXQgxJHhu4F1IMSRYW5nIOG7nyBt4bupYyBiw6xuaCB0aMaw4budbmcsIGPhu6UgdGjhu4M6DQoNCioqTeG7qWMgxJHhu5kgw7Qgbmhp4buFbToqKg0KDQoqICoqQ2FvKio6IFF14bqtbiBTZW9kYWVtdW4tZ3UgKDU3LjYzIG1pY3JvZ3JhbSkgdsOgIHF14bqtbiBFdW5weWVvbmctZ3UgKDU2LjgxIG1pY3JvZ3JhbSkNCiogKipUcnVuZyBiw6xuaCoqOiBRdeG6rW4gSm9uZ25vLWd1ICg0Ny4yNiBtaWNyb2dyYW0pIHbDoCBxdeG6rW4gSnVuZy1ndSAoNDcuNDMgbWljcm9ncmFtKQ0KKiAqKlRo4bqlcCoqOiBRdeG6rW4gWW9uZ3Nhbi1ndSAoNDQgbWljcm9ncmFtKQ0KDQoqKlNvIHPDoW5oIGdp4buvYSBjw6FjIHF14bqtbjoqKg0KDQoqIFF14bqtbiBTZW9kYWVtdW4tZ3UgY8OzIG3hu6ljIMSR4buZIMO0IG5oaeG7hW0gY2FvIG5o4bqldCwgY2FvIGjGoW4gcXXhuq1uIFlvbmdzYW4tZ3UgZ+G6p24gMjIlLg0KKiBN4bupYyDEkeG7mSDDtCBuaGnhu4VtIHThuqFpIHF14bqtbiBKb25nbm8tZ3UgdsOgIHF14bqtbiBKdW5nLWd1IHbDoCB0xrDGoW5nIMSR4buRaSBn4bqnbiBuaGF1Lg0KKiBRdeG6rW4gWW9uZ3Nhbi1ndSBjw7MgbeG7qWMgxJHhu5kgw7Qgbmhp4buFbSB0aOG6pXAgbmjhuqV0Lg0KDQoqKk5ndXnDqm4gbmjDom4gY2jDrW5oOioqDQoNCiogKipIb+G6oXQgxJHhu5luZyBnaWFvIHRow7RuZyoqDQoNCkTDuSBo4bqhdCBi4bulaSBt4buLbiBQTTEwIGPDsyB0aOG7gyBjw7Mgbmd1ecOqbiBuaMOibiB4deG6pXQgcGjDoXQgdOG7qyB04buxIG5oacOqbiBuaMawIGNow6F5IHLhu6tuZywga2jDs2kgdOG7qyBuw7ppIGzhu61hIGhheSBwaOG6pW4gaG9hLC4uLiBuaMawbmcgY8WpbmcgY8OzIG3hu5l0IHBo4bqnbiBs4bubbiBo4bqhdCBi4bulaSBt4buLbiBQTTEwIHh14bqldCBwaMOhdCB04burIGPDoWMgaG/huqF0IMSR4buZbmcgZ2lhbyB0aMO0bmcsIMSR4bq3YyBiaeG7h3QgbMOgIHbDoG8gbcO5YSBYdcOibiBraGkgbMaw4bujbmcgcGjGsMahbmcgdGnhu4duIGzGsHUgdGjDtG5nIHTEg25nIGNhbyBkbyBuaHUgY+G6p3UgZHUgbOG7i2NoIHbDoCBs4buFIGjhu5lpLg0KDQpLaMOtIHRo4bqjaSB04burIGPDoWMgcGjGsMahbmcgdGnhu4duIGdpYW8gdGjDtG5nIGJhbyBn4buTbSBOT3gsIFNPeCwgQ08gdsOgIFZPQ3MsIMSRw6J5IGzDoCBuaOG7r25nIHRp4buBbiBjaOG6pXQgcXVhbiB0cuG7jW5nIHRyb25nIHF1w6EgdHLDrG5oIGjDrG5oIHRow6BuaCBQTTEwLg0KDQpN4bqtdCDEkeG7mSBnaWFvIHRow7RuZyBjYW8gdOG6oWkgY8OhYyBxdeG6rW4gU2VvZGFlbXVuLWd1IHbDoCBFdW5weWVvbmctZ3UgZ8OzcCBwaOG6p24gbMOgbSB0xINuZyBt4bupYyDEkeG7mSDDtCBuaGnhu4VtIFBNMTAgdOG6oWkgY8OhYyBxdeG6rW4gbsOgeS4NCg0KKiAqKkhv4bqhdCDEkeG7mW5nIGPDtG5nIG5naGnhu4dwOioqDQoNCkPDoWMga2h1IHbhu7FjIHThuq1wIHRydW5nIG5oaeG7gXUgbmjDoCBtw6F5IGPDtG5nIG5naGnhu4dwIChuaMawIHF14bqtbiBTZW9kYWVtdW4tZ3UgdsOgIHF14bqtbiBFdW5weWVvbmctZ3UpIGPDsyB0aOG7gyBjw7MgbeG7qWMgxJHhu5kgw7Qgbmhp4buFbSBQTTEwIGNhbyBoxqFuLiBIb+G6oXQgxJHhu5luZyBjw7RuZyBuZ2hp4buHcCB0aOG6o2kgcmEgbmhp4buBdSBraMOtIHRo4bqjaSwgYmFvIGfhu5NtIGPhuqMgUE0xMC4NCg0KKiAqKsSQaeG7gXUga2nhu4duIHRo4budaSB0aeG6v3Q6KioNCg0KVsOgbyBtw7lhIFh1w6JuLCB0aOG7nWkgdGnhur90IHRoxrDhu51uZyBjw7Mgbmhp4buBdSBnacOzIHbDoCDDrXQgbcawYSwgxJFp4buBdSBuw6B5IGPDsyB0aOG7gyBsw6BtIGNobyBQTTEwIGThu4UgZMOgbmcgdMOtY2ggdOG7pSB0cm9uZyBraMO0bmcga2jDrS4gR2nDsyB54bq/dSB2w6AgxJHhu5kg4bqpbSBjYW8gdOG6oW8gxJFp4buBdSBraeG7h24gdGh14bqtbiBs4bujaSBjaG8gcXXDoSB0csOsbmggaMOsbmggdGjDoG5oIFBNMTAuDQoNCiogKirEkOG7i2EgaMOsbmg6KioNCg0KQ8OhYyBraHUgduG7sWMgbuG6sW0g4bufIHbhu4sgdHLDrSB0csWpbmcgdGjhuqVwIChuaMawIHF14bqtbiBTZW9kYWVtdW4tZ3UpIGPDsyB0aOG7gyBjw7MgbeG7qWMgxJHhu5kgw7Qgbmhp4buFbSBQTTEwIGNhbyBoxqFuLiDEkOG7i2EgaMOsbmggdHLFqW5nIHRo4bqlcCBo4bqhbiBjaOG6vyBz4buxIGzGsHUgdGjDtG5nIGPhu6dhIGtow7RuZyBraMOtLCBk4bqrbiDEkeG6v24gdMOtY2ggdOG7pSBQTTEwIHThuqFpIGtodSB24buxYyDEkcOzDQoNCiogKipN4bupYyDEkeG7mSBwaOG7pyB4YW5oOioqDQoNCkPDoWMga2h1IHbhu7FjIGPDsyBuaGnhu4F1IGPDonkgeGFuaCAobmjGsCBxdeG6rW4gWW9uZ3Nhbi1ndSkgY8OzIHRo4buDIGPDsyBt4bupYyDEkeG7mSDDtCBuaGnhu4VtIFBNMTAgdGjhuqVwIGjGoW4uIEPDonkgeGFuaCBjw7Mga2jhuqMgbsSDbmcgaOG6pXAgdGjhu6UgUE0xMCwgZ2nDunAgY+G6o2kgdGhp4buHbiBjaOG6pXQgbMaw4bujbmcga2jDtG5nIGtow60uDQoNCioqPT4gS+G6v3QgbHXhuq1uKioNCg0KTuG7k25nIMSR4buZIMO0IG5oaeG7hW0gaOG6oXQgYuG7pWkgbeG7i24gUE0xMCDhu58gNSBxdeG6rW4gU2VvdWwgduG6q24gY8OybiBjYW8sIHbGsOG7o3QgcXXDoSBt4bupYyBraHV54bq/biBjw6FvIGPhu6dhIFThu5UgY2jhu6ljIFkgdOG6vyBUaOG6vyBnaeG7m2kgKFdITykgbMOgIDIwIG1pY3JvZ3JhbS9twrMuDQoNCiMjIyAqKjIuMi4gVGhlbyBtw7lhIEjDqCoqDQoNCmBgYHtyfQ0KZCA8LSBiaW5kX3Jvd3MoYVs0MDc0OjU1MzgsIF0sIGFbMTI0NTk6MTM5MjMsIF0sIGFbMjA4NDQ6MjIzMDcsIF0sIGFbMjkyMjk6MzA2ODMsIF0sIGFbMzc2MDQ6MzkwNTMsIF0pICU+JSANCiAgc2VsZWN0KERheSwgUXXhuq1uLCBQTTEwLCBt4bupYy7EkeG7mS5wbTEwKQ0KDQpsaWJyYXJ5KGZsZXh0YWJsZSkNCmxpYnJhcnkoRFQpDQoNCmRhdGF0YWJsZShkKQ0KYGBgDQoNCg0KYGBge3J9DQpkICU+JSBncm91cF9ieShRdeG6rW4pICU+JSBzdW1tYXJpc2UobT0gbWVhbihQTTEwKSkgJT4lDQogZ2dwbG90KGFlcyh4ID0gUXXhuq1uLCB5ID0gbSwgZmlsbCA9IFF14bqtbikpICsNCiAgZ2VvbV9iYXIoc3RhdCA9ICdpZGVudGl0eScpICsNCiAgZ2VvbV90ZXh0KGFlcyhsYWJlbCA9IHJvdW5kKG0sMikpLCB2anVzdCA9IDAsIGNvbG9yID0gJ2JsYWNrJykgKw0KICB0aGVtZV9taW5pbWFsKCkgKw0KICBsYWJzKHRpdGxlID0gJ0Jp4buDdSDEkeG7kyA0OiBO4buTbmcgxJHhu5kgdHJ1bmcgYsOsbmggY+G7p2EgaOG6oXQgYuG7pWkgbeG7i24gUE0xMCB2w6BvIG3DuWEgSMOoJywgeCA9ICdRdeG6rW4nLCB5ID0gJ1RydW5nIGLDrG5oJykNCmBgYA0KDQpTbyB24bubaSBtw7lhIFh1w6JuLCBjaOG6pXQgbMaw4bujbmcgaOG6oXQgYuG7pWkgbeG7i24gUE0xMCB2w6BvIG3DuWEgSMOoIMSRw6MgxJHGsOG7o2MgY+G6o2kgdGhp4buHbiDEkcOhbmcga+G7gy4gVOG6pXQgY+G6oyA1IHF14bqtbiDEkeG7gXUgY8OzIG3hu6ljIGTGsOG7m2kgMjYgbWljcm9ncmFtLCBj4bulIHRo4buDOg0KDQoqKk3hu6ljIMSR4buZIMO0IG5oaeG7hW06KioNCg0KKiAqKkNhbyoqOiBRdeG6rW4gSm9uZ25vLWd1ICgyNS4zNSBtaWNyb2dyYW0pIHbDoCBxdeG6rW4gSnVuZy1ndSAoMjUuMDkgbWljcm9ncmFtKQ0KKiAqKlRydW5nIGLDrG5oKio6IFF14bqtbiBTZW9kYWVtdW4tZ3UgKDIzLjkzIG1pY3JvZ3JhbSkgdsOgIHF14bqtbiBFdW5weWVvbmctZ3UgKDIzLjMzIG1pY3JvZ3JhbSkNCiogKipUaOG6pXAqKjogUXXhuq1uIFlvbmdzYW4tZ3UgKDIzLjEgbWljcm9ncmFtKQ0KDQoqKlNvIHPDoW5oIHbhu5tpIG3DuWEgWHXDom46KioNCg0KKiBRdeG6rW4gRXVucHllb25nLWd1IMSRw6MgZ2nhuqNtIG3hu6ljIG7hu5NuZyDEkeG7mSB0cnVuZyBiw6xuaCB04burIDU2LjgxIHh14buRbmcgY8OybiAyMy4zMyBtaWNyb2dyYW0gKGdp4bqjbSA1OS4yNyUpDQoqIFF14bqtbiBKb25nbm8tZ3UgxJHDoyBnaeG6o20gbeG7qWMgbuG7k25nIMSR4buZIHRydW5nIGLDrG5oIHThu6sgNDcuMjYgeHXhu5FuZyBjw7JuIDI1LjM1IG1pY3JvZ3JhbSAoZ2nhuqNtIDQ2LjM3JSkNCiogUXXhuq1uIEp1bmctZ3UgxJHDoyBnaeG6o20gbeG7qWMgbuG7k25nIMSR4buZIHRydW5nIGLDrG5oIHThu6sgNDcuMjMgeHXhu5FuZyBjw7JuIDI1LjA5IG1pY3JvZ3JhbSAoZ2nhuqNtIDQ2Ljk3JSkNCiogUXXhuq1uIFNlb2RhZW11bi1ndSDEkcOjIGdp4bqjbSBt4bupYyBu4buTbmcgxJHhu5kgdHJ1bmcgYsOsbmggdOG7qyA1Ny42MyB4deG7kW5nIGPDsm4gMjMuOTMgbWljcm9ncmFtIChnaeG6o20gNTguNDclKQ0KKiBRdeG6rW4gWW9uZ3Nhbi1ndSB24bqrbiBkdXkgdHLDrCBsw6AgcXXhuq1uIGPDsyBt4bupYyDEkeG7mSDDtCBuaGnhu4VtIGjhuqF0IGLhu6VpIG3hu4tuIHRo4bqlcCBuaOG6pXQsIMSRw6MgZ2nhuqNtIG3hu6ljIG7hu5NuZyDEkeG7mSB0cnVuZyBiw6xuaCB04burIDQ0IHh14buRbmcgY8OybiAyMy4xIG1pY3JvZ3JhbSAoZ2nhuqNtIDQ3LjczJSkNCg0KKipOZ3V5w6puIG5ow6JuIGNow61uaCBk4bqrbiDEkeG6v24gc+G7sSBnaeG6o20gaOG6oXQgYuG7pWkgbeG7i24gUE0xMDoqKg0KDQoqICoqxJBp4buBdSBraeG7h24gdGjhu51pIHRp4bq/dDoqKg0KDQpNw7lhIGjDqCAyMDE5IHThuqFpIFNlb3VsIGPDsyBuaGnhu4F1IG3GsGEgdsOgIGdpw7MgbeG6oW5oLCBnacO6cCB04bqpeSBy4butYSBi4bulaSBt4buLbiB0cm9uZyBraMO0bmcga2jDrSBoaeG7h3UgcXXhuqMgaMahbiBzbyB24bubaSBtw7lhIHh1w6JuLiBOaGnhu4d0IMSR4buZIGNhbyBjxaluZyBnw7NwIHBo4bqnbiBsw6BtIHTEg25nIHThu5FjIMSR4buZIGtodeG6v2NoIHTDoW4gY+G7p2EgY8OhYyBjaOG6pXQgw7Qgbmhp4buFbSwgZ2nDunAgZ2nhuqNtIG7hu5NuZyDEkeG7mSBQTTEwLg0KDQoqICoqQ2jDrW5oIHPDoWNoIHbDoCBiaeG7h24gcGjDoXAga2nhu4NtIHNvw6F0IMO0IG5oaeG7hW06KioNCg0KQ2jDrW5oIHBo4bunIEjDoG4gUXXhu5FjIMSRw6MgdGjhu7FjIGhp4buHbiBt4buZdCBz4buRIGNow61uaCBzw6FjaCB2w6AgYmnhu4duIHBow6FwIMSR4buDIGtp4buDbSBzb8OhdCDDtCBuaGnhu4VtIGtow7RuZyBraMOtLCBiYW8gZ+G7k206DQoNClRo4bqvdCBjaOG6t3QgdGnDqnUgY2h14bqpbiBraMOtIHRo4bqjaSBjaG8gY8OhYyBwaMawxqFuZyB0aeG7h24gZ2lhbyB0aMO0bmcgdsOgIG5ow6AgbcOheSBjw7RuZyBuZ2hp4buHcC4NCk3hu58gcuG7mW5nIGtodSB24buxYyBj4bqlbSB4ZSB2w6Aga2h1IHbhu7FjIGNo4buJIGTDoG5oIGNobyBuZ8aw4budaSDEkWkgYuG7mS4NClTEg25nIGPGsOG7nW5nIHRy4buTbmcgY8OieSB4YW5oLg0KDQpOaOG6rW4gdGjhu6ljIGPhu6dhIG5nxrDhu51pIGTDom4gduG7gSB0w6FjIGjhuqFpIGPhu6dhIMO0IG5oaeG7hW0gUE0xMCBjxaluZyDEkcaw4bujYyBuw6JuZyBjYW8sIGThuqtuIMSR4bq/biB2aeG7h2MgdMSDbmcgY8aw4budbmcgc+G7rSBk4bulbmcgcGjGsMahbmcgdGnhu4duIGdpYW8gdGjDtG5nIGPDtG5nIGPhu5luZyB2w6AgZ2nhuqNtIHRoaeG7g3Ugc+G7rSBk4bulbmcgcGjGsMahbmcgdGnhu4duIGPDoSBuaMOibi4NCg0KKipOZ3V5w6puIG5ow6JuIGNow61uaCBj4bunYSB0w6xuaCB0cuG6oW5nIHbhuqtuIGPDsm4gaOG6oXQgYuG7pWkgbeG7i24gUE0xMCoqDQoNCiogKipC4bulaSBt4buLbiB04burIGPDoWMga2h1IHbhu7FjIGtow6FjOioqDQoNCkLhu6VpIG3hu4tuIFBNMTAgY8OzIHRo4buDIGRpIGNodXnhu4NuIHThu6sgY8OhYyBraHUgduG7sWMga2jDoWMgxJHhur9uIFNlb3VsIGRvIGdpw7MgdGjhu5VpLiBDw6FjIGtodSB24buxYyBjw7RuZyBuZ2hp4buHcCB2w6AgxJHDtCB0aOG7iyBs4bubbiDhu58gVHJ1bmcgUXXhu5FjIGPDsyB0aOG7gyBsw6Agbmd14buTbiBwaMOhdCB0aOG6o2kgUE0xMCDhuqNuaCBoxrDhu59uZyDEkeG6v24gU2VvdWwuDQoNCiogKipIb+G6oXQgxJHhu5luZyDEkeG7kXQgcsahbSBy4bqhOioqDQoNClbDoG8gbcO5YSBow6gsIG5nxrDhu51pIGTDom4g4bufIG3hu5l0IHPhu5Ega2h1IHbhu7FjIG7DtG5nIHRow7RuIEjDoG4gUXXhu5FjIHRoxrDhu51uZyDEkeG7kXQgcsahbSBy4bqhIHNhdSB0aHUgaG/huqFjaC4gSG/huqF0IMSR4buZbmcgbsOgeSB0aOG6o2kgcmEgbeG7mXQgbMaw4bujbmcgbOG7m24gUE0xMCB2w6BvIGLhuqd1IGtow60gcXV54buDbiwg4bqjbmggaMaw4bufbmcgxJHhur9uIGNo4bqldCBsxrDhu6NuZyBraMO0bmcga2jDrSB04bqhaSBjw6FjIGtodSB24buxYyB4dW5nIHF1YW5oLg0KDQoqICoqSG/huqF0IMSR4buZbmcgY8O0bmcgbmdoaeG7h3A6KioNCg0KSG/huqF0IMSR4buZbmcgY8O0bmcgbmdoaeG7h3AgY8WpbmcgbMOgIG3hu5l0IG5ndeG7k24gcGjDoXQgdGjhuqNpIFBNMTAgcXVhbiB0cuG7jW5nLiBDw6FjIG5ow6AgbcOheSBjw7RuZyBuZ2hp4buHcCB0aOG6o2kgcmEgbmhp4buBdSBraMOtIHRo4bqjaSwgYmFvIGfhu5NtIGPhuqMgUE0xMCwgdsOgbyBi4bqndSBraMOtIHF1eeG7g24uDQoNCioqPT4gS+G6v3QgbHXhuq1uOioqDQoNCiogKirEkGnhu4NtIHPDoW5nOioqDQoNClF14bqtbiBZb25nc2FuLWd1IHRp4bq/cCB04bulYyBk4bqrbiDEkeG6p3UgduG7m2kgbeG7qWMgUE0xMCB0aOG6pXAgbmjhuqV0ICgyMS4wNCBtaWNyb2dyYW0pDQpRdeG6rW4gRXVucHllb25nLWd1IMSR4bqhdCBt4bupYyBnaeG6o20g4bqlbiB0xrDhu6NuZyBuaOG6pXQgKDYwLjk0JSkNCsSQaeG7gXUga2nhu4duIHRo4budaSB0aeG6v3Q6IE3GsGEgbmhp4buBdSwgZ2nDsyBt4bqhbmggZ2nDunAgxJHhuql5IGzDuWkgYuG7pWkgbeG7i24NCkNow61uaCBzw6FjaCBraeG7g20gc2/DoXQgw7Qgbmhp4buFbTogSGnhu4d1IHF14bqjIHThu6sgY8OhYyBiaeG7h24gcGjDoXAgc2nhur90IGNo4bq3dCBraMOtIHRo4bqjaSB2w6Aga2h1eeG6v24ga2jDrWNoIHBoxrDGoW5nIHRp4buHbiBjw7RuZyBj4buZbmcNCg0KKiAqKlRow6FjaCB0aOG7qWM6KioNCg0KR2nhuqNpIHF1eeG6v3Qgbmjhu69uZyB0aMOhY2ggdGjhu6ljIG7DoHkgxJHDsmkgaOG7j2kgc+G7sSBjaHVuZyB0YXkgZ8OzcCBz4bupYyBj4bunYSBjaMOtbmggcGjhu6csIGRvYW5oIG5naGnhu4dwLCBuZ8aw4budaSBkw6JuIHbDoCBj4bqjIHF1YW4gaOG7hyBxdeG7kWMgdOG6vyBuaMawIHbhuqVuIMSR4buBIGLhu6VpIG3hu4tuIHh14bqldCBwaMOhdCB04burIFRydW5nIFF14buRYywgY+G6p24gaOG7o3AgdMOhYyBxdeG7kWMgdOG6vyDEkeG7gyBraeG7g20gc2/DoXQgbmd14buTbiBwaMOhdCB0aOG6o2kgeHV5w6puIGJpw6puIGdp4bubaS5Ib+G6oXQgxJHhu5luZyDEkeG7kXQgcsahbSBy4bqhIHRow6wgY+G6p24gbsOibmcgY2FvIG5o4bqtbiB0aOG7qWMgdsOgIGtodXnhur9uIGtow61jaCBz4butIGThu6VuZyBwaMawxqFuZyBwaMOhcCB44butIGzDvSByxqFtIHLhuqEgdGjDom4gdGhp4buHbiBtw7RpIHRyxrDhu51uZy4gSG/huqF0IMSR4buZbmcgY8O0bmcgbmdoaeG7h3AgdGjDrCBj4bqnbiB0aMO6YyDEkeG6qXkgw6FwIGThu6VuZyBjw7RuZyBuZ2jhu4cgdGnDqm4gdGnhur9uIHbDoCB0aOG6r3QgY2jhurd0IHRpw6p1IGNodeG6qW4ga2jDrSB0aOG6o2ksLi4uDQoNCiMjIyAqKjIuMy4gVGhlbyBtw7lhIFRodSoqDQoNCmBgYHtyfQ0KZSA8LSBiaW5kX3Jvd3MoYVs1NTM5Ojc2NTQsIF0sIGFbMTM5MjQ6MTYwMzksIF0sIGFbMjIzMDg6MjQ0MjMsIF0sIGFbMzA2ODQ6MzI3OTksIF0sIGFbMzkwNTQ6NDExNjksIF0pICU+JSANCiAgc2VsZWN0KERheSwgUXXhuq1uLCBQTTEwLCBt4bupYy7EkeG7mS5wbTEwKQ0KDQpsaWJyYXJ5KGZsZXh0YWJsZSkNCmxpYnJhcnkoRFQpDQoNCmRhdGF0YWJsZShlKQ0KYGBgDQoNCg0KYGBge3J9DQplICU+JSBncm91cF9ieShRdeG6rW4pICU+JSBzdW1tYXJpc2UobT0gbWVhbihQTTEwKSkgJT4lDQogZ2dwbG90KGFlcyh4ID0gUXXhuq1uLCB5ID0gbSwgY29sb3IgPSBRdeG6rW4pKSArDQogIGdlb21fcG9pbnQoc2hhcGUgPSAxNSwgc2l6ZSA9IDMpICsNCiAgZ2VvbV90ZXh0KGFlcyhsYWJlbCA9IHJvdW5kKG0sMikpLCB2anVzdCA9IDEsIGNvbG9yID0gJ25hdnknKSArDQogIHRoZW1lX21pbmltYWwoKSArDQogIGxhYnModGl0bGUgPSAnQmnhu4N1IMSR4buTIDU6IE7hu5NuZyDEkeG7mSB0cnVuZyBiw6xuaCBj4bunYSBo4bqhdCBi4bulaSBt4buLbiBQTTEwIHbDoG8gbcO5YSBUaHUnLCB4ID0gJ1F14bqtbicsIHkgPSAnVHJ1bmcgYsOsbmgnKQ0KYGBgDQoNClNhdSBtw7lhIEjDqCwgbuG7k25nIMSR4buZIGjhuqF0IGLhu6VpIG3hu4tuIFBNMTAgY8OzIGThuqV1IGhp4buHdSB0xINuZyB0cuG7nyBs4bqhaSB2w6BvIG3DuWEgVGh1LCB0dXkga2jDtG5nIHTEg25nIMSRw6FuZyBr4buDIG5oxrAgbcO5YSBYdcOibiBuaMawbmcgduG6q24gZHV5IHRyw6wg4bufIG3hu6ljIGTGsOG7m2kgdOG7qyAyMy0zNiBtaWNyb2dyYW0sIGPhu6UgdGjhu4M6DQoNCioqTeG7qWMgxJHhu5kgw7Qgbmhp4buFbToqKg0KDQoqICoqQ2FvKio6IFF14bqtbiBTZW9kYWVtdW4tZ3UgKDM1LjA0IG1pY3JvZ3JhbSkgDQoqICoqVHJ1bmcgYsOsbmgqKjogUXXhuq1uIEpvbmduby1ndSAoMjkuNTUgbWljcm9ncmFtKSwgcXXhuq1uIEV1bnB5ZW9uZy1ndSAoMjkuMDYgbWljcm9ncmFtKSB2w6AgcXXhuq1uIEp1bmctZ3UgKDI3Ljk4IG1pY3JvZ3JhbSkNCiogKipUaOG6pXAqKjogUXXhuq1uIFlvbmdzYW4tZ3UgKDIzLjkyIG1pY3JvZ3JhbSkNCg0KKipTbyBzw6FuaCB24bubaSBtw7lhIEjDqDoqKg0KDQoqIFF14bqtbiBFdW5weWVvbmctZ3UgxJHDoyB0xINuZyBt4bupYyBu4buTbmcgxJHhu5kgdHJ1bmcgYsOsbmggdOG7qyAyMy4zMyBsw6puIDI5LjA2IG1pY3JvZ3JhbSAodMSDbmcgMjQuNTklKQ0KKiBRdeG6rW4gSm9uZ25vLWd1IMSRw6MgdMSDbmcgbeG7qWMgbuG7k25nIMSR4buZIHRydW5nIGLDrG5oIHThu6sgMjUuMzUgbMOqbiAyOS41NSBtaWNyb2dyYW0gKHTEg25nIDE2Ljk0JSkNCiogUXXhuq1uIEp1bmctZ3UgxJHDoyB0xINuZyBt4bupYyBu4buTbmcgxJHhu5kgdHJ1bmcgYsOsbmggdOG7qyAyNS4wOSBsw6puIDI3Ljk4IG1pY3JvZ3JhbSAodMSDbmcgMTEuNDclKQ0KKiBRdeG6rW4gU2VvZGFlbXVuLWd1IMSRw6MgdMSDbmcgbeG7qWMgbuG7k25nIMSR4buZIHRydW5nIGLDrG5oIHThu6sgMjMuOTMgbMOqbiAzNS4wNCBtaWNyb2dyYW0gKHTEg25nIDQ2LjQ0JSkNCiogUXXhuq1uIFlvbmdzYW4tZ3UgduG6q24gZHV5IHRyw6wgbMOgIHF14bqtbiBjw7MgbeG7qWMgxJHhu5kgw7Qgbmhp4buFbSBo4bqhdCBi4bulaSBt4buLbiB0aOG6pXAgbmjhuqV0LCBuaMawbmcgduG6q24gdMSDbmcgbeG7qWMgbuG7k25nIMSR4buZIHRydW5nIGLDrG5oIHThu6sgMjMuMSBsw6puIDIzLjkyIG1pY3JvZ3JhbSAodMSDbmcgMy41NSUpDQoNCioqTmd1ecOqbiBuaMOibiBjaMOtbmggZOG6q24gxJHhur9uIHPhu7EgZ2nhuqNtIGjhuqF0IGLhu6VpIG3hu4tuIFBNMTA6KioNCg0KKiAqKsSQaeG7gXUga2nhu4duIGtow60gdMaw4bujbmc6KioNCg0KTcO5YSBIw6ggdGjGsOG7nW5nIGPDsyBnacOzIG3huqFuaCB2w6AgbcawYSBuaGnhu4F1LCBnacO6cCB0aMO6YyDEkeG6qXkgc+G7sSBwaMOibiB0w6FuIGPhu6dhIGLhu6VpIG3hu4tuLiBUcm9uZyBraGkgxJHDsywgbcO5YSBUaHUgdGjGsOG7nW5nIMOtdCBnacOzIHbDoCDDrXQgbcawYSBoxqFuLCBk4bqrbiDEkeG6v24gc+G7sSB0w61jaCB04bulIGLhu6VpIG3hu4tuIHRyb25nIGtow7RuZyBraMOtLg0KDQpIaeG7h24gdMaw4bujbmcgbmdo4buLY2ggbmhp4buHdDogeOG6o3kgcmEgdGjGsOG7nW5nIHh1ecOqbiBoxqFuIHbDoG8gbcO5YSBUaHUsIGtoaeG6v24ga2jDtG5nIGtow60g4bupIMSR4buNbmcsIGPhuqNuIHRy4bufIHPhu7EgcGjDom4gdMOhbiBj4bunYSBi4bulaSBt4buLbi4NCg0KKiAqKkhv4bqhdCDEkeG7mW5nIGdpYW8gdGjDtG5nOioqDQoNClbDoG8gbcO5YSBUaHUsIHRo4budaSB0aeG6v3Qg4bufIFNlb3VsIGLhuq90IMSR4bqndSB0cuG7nyBs4bqhbmgsIGtoaeG6v24gbmfGsOG7nWkgZMOibiBnaeG6o20gc+G7rSBk4bulbmcgeGUgxJHhurlwLCB0aGF5IHbDoG8gxJHDsyBsw6AgeGUgbcOheSB2w6Agw7QgdMO0LCBraGnhur9uIGzGsOG7o25nIGtow60gdGjhuqNpIHTEg25nIGzDqm4uDQoNCk3DuWEgVGh1IGzDoCBtw7lhIGR1IGzhu4tjaCBjYW8gxJFp4buDbSDhu58gU2VvdWwsIGdpYSB0xINuZyBsxrDhu6NuZyBwaMawxqFuZyB0aeG7h24gZ2lhbyB0aMO0bmcgdsOgIGtow60gdGjhuqNpIHThu6sgaG/huqF0IMSR4buZbmcgZHUgbOG7i2NoLg0KDQoqICoqTeG6rXQgxJHhu5kgZMOibiBz4buRIGNhbzoqKiANCg0KU2VvdWwgbMOgIHRow6BuaCBwaOG7kSDEkcO0bmcgZMOibiBjxrAsIGThuqtuIMSR4bq/biBsxrDhu6NuZyBraMOtIHRo4bqjaSB04burIHNpbmggaG/huqF0IGNhby4NCg0KKiAqKk3hu5l0IHPhu5EgeeG6v3UgdOG7kSBraMOhYzoqKg0KDQpT4buxIHRoYXkgxJHhu5VpIGPhu6dhIGPDoWMgeeG6v3UgdOG7kSBraMOtIHTGsOG7o25nOiBuaMawIMSR4buZIOG6qW0sIMOhcCBzdeG6pXQga2jDtG5nIGtow60uDQoNCkhv4bqhdCDEkeG7mW5nIGNow6F5IHLhu6tuZzogeOG6o3kgcmEg4bufIGPDoWMga2h1IHbhu7FjIGzDom4gY+G6rW4sIOG6o25oIGjGsOG7n25nIMSR4bq/biBjaOG6pXQgbMaw4bujbmcga2jDtG5nIGtow60g4bufIFNlb3VsLg0KDQoqICoqWeG6v3UgdOG7kSDEkeG7i2EgaMOsbmg6KioNCg0KU2VvdWwgbuG6sW0g4bufIGtodSB24buxYyBi4buTbiDEkeG7i2EsIGdpw7pwIGdp4buvIGLhu6VpIG3hu4tuIHRyb25nIGtow7RuZyBraMOtIHbDoCBo4bqhbiBjaOG6vyBz4buxIHBow6JuIHTDoW4uDQoNCioqPT4gS+G6v3QgbHXhuq1uKioNCg0KTcO5YSBUaHUgbsSDbSBuYXkgZ2hpIG5o4bqtbiBz4buxIGJp4bq/biDEkeG7mW5nIG5o4bq5IHRyb25nIG7hu5NuZyDEkeG7mSB0cnVuZyBiw6xuaCBi4bulaSBt4buLbiBQTTEwIHThuqFpIDUgcXXhuq1uIMSRxrDhu6NjIGto4bqjbyBzw6F0LiBN4bupYyDEkeG7mSBjaMOqbmggbOG7h2NoIHR1eSBraMO0bmcgcXXDoSBs4bubbiBuaMawbmcgduG6q24gY2hvIHRo4bqleSBz4buxIGtow6FjIGJp4buHdCDEkcOhbmcgY2jDuiDDvSBnaeG7r2EgY8OhYyBraHUgduG7sWMuDQoNCiogKirEkGnhu4NtIHPDoW5nOioqDQoNClF14bqtbiBZb25nc2FuLWd1IHRp4bq/cCB04bulYyBraOG6s25nIMSR4buLbmggduG7iyB0csOtIGzDoCBraHUgduG7sWMgY8OzIGNo4bqldCBsxrDhu6NuZyBraMO0bmcga2jDrSB04buRdCBuaOG6pXQsIHbhu5tpIG3hu6ljIMSR4buZIMO0IG5oaeG7hW0gY2jhu4kgdMSDbmcgMy41NSUgc28gduG7m2kgbcO5YSBIw6guIMSQw6J5IGzDoCBr4bq/dCBxdeG6oyDEkcOhbmcga2jDrWNoIGzhu4cgY2hvIG7hu5cgbOG7sWMgYuG6o28gduG7hyBtw7RpIHRyxrDhu51uZyBj4bunYSBxdeG6rW4uDQoNCiogKirEkGnhu4NtIHThu5FpOioqDQoNClF14bqtbiBTZW9kYWVtdW4tZ3UgbOG6oWkgY8OzIG3hu6ljIHTEg25nIG7hu5NuZyDEkeG7mSBQTTEwIGNhbyBuaOG6pXQsIGzDqm4gxJHhur9uIDQ2LjQ0JSBjaOG7iSBzYXUgMyB0aMOhbmcuIMSQw6J5IGzDoCBjb24gc+G7kSDEkcOhbmcgYsOhbyDEkeG7mW5nIHbDoCBj4bqnbiDEkcaw4bujYyBxdWFuIHTDom0gxJHhu4MgY+G6o2kgdGhp4buHbiBjaOG6pXQgbMaw4bujbmcga2jDtG5nIGtow60gY2hvIG5nxrDhu51pIGTDom4uDQoNCiMjIyAqKjIuNC4gVGhlbyBtw7lhIMSQw7RuZyoqDQoNCmBgYHtyfQ0KZiA8LSBiaW5kX3Jvd3MoYVsyOjE0MTYsIF0sIGFbNzY1NTo4Mzg2LCBdLCBhWzgzODc6OTgwMSwgXSwgYVsxNjA0MDoxNjc3MSwgXSwgYVsxNjc3MjoxODE4NiwgXSwgYVsyNDQyNDoyNTE1NSwgXSwgYVsyNTE1NjoyNjU3MCwgXSwgYVszMjgwMDozMzUzMSwgXSwgYVszMzUzMjozNDk0NiwgXSwgYVs0MTE3MDo0MTkwMSwgXSkgJT4lIA0KICBzZWxlY3QoRGF5LCBRdeG6rW4sIFBNMTAsIG3hu6ljLsSR4buZLnBtMTApDQoNCnN1bW1hcnkoaXMubmEoZiRQTTEwKSkNCmYgPC0gbmEub21pdChmKQ0KDQpsaWJyYXJ5KGZsZXh0YWJsZSkNCmxpYnJhcnkoRFQpDQoNCmRhdGF0YWJsZShmKQ0KYGBgDQoNCg0KYGBge3J9DQpmICU+JSBncm91cF9ieShRdeG6rW4pICU+JSBzdW1tYXJpc2UobT0gbWVhbihQTTEwKSkgJT4lDQogZ2dwbG90KGFlcyh4ID0gUXXhuq1uLCB5ID0gbSwgZmlsbCA9IFF14bqtbikpICsNCiAgZ2VvbV9iYXIoc3RhdCA9ICdpZGVudGl0eScpICsNCiAgZ2VvbV90ZXh0KGFlcyhsYWJlbCA9IHJvdW5kKG0sMikpLCB2anVzdCA9IDAsIGNvbG9yID0gJ2JsYWNrJykgKw0KICB0aGVtZV9taW5pbWFsKCkgKw0KICBsYWJzKHRpdGxlID0gJ0Jp4buDdSDEkeG7kyA2OiBO4buTbmcgxJHhu5kgdHJ1bmcgYsOsbmggY+G7p2EgaOG6oXQgYuG7pWkgbeG7i24gUE0xMCB2w6BvIG3DuWEgxJDDtG5nJywgeCA9ICdRdeG6rW4nLCB5ID0gJ1RydW5nIGLDrG5oJykNCmBgYA0KDQpU4burIGvhur90IHF14bqjIGPhu6dhIGJp4buDdSDEkeG7kyA2LCB0YSB0aOG6pXkgcuG6sW5nIG3DuWEgxJDDtG5nIGzDoCBtw7lhIGPDsyBu4buTbmcgxJHhu5kgdHJ1bmcgYsOsbmggY2FvIG5o4bqldCB0cm9uZyA0IG3DuWEsIGPhu6UgdGjhu4M6DQoNCioqTeG7qWMgxJHhu5kgw7Qgbmhp4buFbToqKg0KDQoqICoqQ2FvKio6IFF14bqtbiBTZW9kYWVtdW4tZ3UgKDUzLjc0IG1pY3JvZ3JhbSkgdsOgIHF14bqtbiBFdW5weWVvbmctZ3UgKDUzLjM4IG1pY3JvZ3JhbSkNCiogKipUcnVuZyBiw6xuaCoqOiBRdeG6rW4gSm9uZ25vLWd1ICg1MS43IG1pY3JvZ3JhbSkgdsOgIHF14bqtbiBKdW5nLWd1ICg1MC43OSBtaWNyb2dyYW0pDQoqICoqVGjhuqVwKio6IFF14bqtbiBZb25nc2FuLWd1ICg0Ni42MyBtaWNyb2dyYW0pDQoNCioqU28gc8OhbmggduG7m2kgbcO5YSBYdcOibiAtIG3DuWEgY8OzIG7hu5NuZyDEkeG7mSB0cnVuZyBiw6xuaCBjYW8gdGjhu6kgMioqDQoNCiogUXXhuq1uIEV1bnB5ZW9uZy1ndSDEkcOjICoqZ2nhuqNtKiogbeG7qWMgbuG7k25nIMSR4buZIHRydW5nIGLDrG5oIHThu6sgNTYuODEgeHXhu5FuZyBjw7JuIDUzLjM4IG1pY3JvZ3JhbSAoZ2nhuqNtIDYuMDQlKQ0KKiBRdeG6rW4gSm9uZ25vLWd1IMSRw6MgKip0xINuZyoqIG3hu6ljIG7hu5NuZyDEkeG7mSB0cnVuZyBiw6xuaCB04burIDQ3LjI2IGzDqm4gNTEuNyBtaWNyb2dyYW0gKHTEg25nIDkuNDIlKQ0KKiBRdeG6rW4gSnVuZy1ndSDEkcOjICoqdMSDbmcqKiBt4bupYyBu4buTbmcgxJHhu5kgdHJ1bmcgYsOsbmggdOG7qyA0Ny40MyBsw6puIDUwLjc5IG1pY3JvZ3JhbSAodMSDbmcgNy4wOCUpDQoqIFF14bqtbiBTZW9kYWVtdW4tZ3UgxJHDoyAqKmdp4bqjbSoqIG3hu6ljIG7hu5NuZyDEkeG7mSB0cnVuZyBiw6xuaCB04burIDU3LjYzIHh14buRbmcgY8OybiA1My43NCBtaWNyb2dyYW0gKGdp4bqjbSA2Ljc1JSkNCiogUXXhuq1uIFlvbmdzYW4tZ3UgxJHDoyAqKnTEg25nKiogbeG7qWMgbuG7k25nIMSR4buZIHRydW5nIGLDrG5oIHThu6sgNDQgbMOqbiA0Ni42MyBtaWNyb2dyYW0gKHTEg25nIDYuMDIlKQ0KDQoqKlNvIHPDoW5oIHbhu5tpIG3DuWEgVGh1IC0gbcO5YSBr4buBIHRyxrDhu5tjKioNCg0KKiBRdeG6rW4gRXVucHllb25nLWd1IMSRw6MgKip0xINuZyoqIG3hu6ljIG7hu5NuZyDEkeG7mSB0cnVuZyBiw6xuaCB04burIDI5LjA2IGzDqm4gNTMuMzggbWljcm9ncmFtICh0xINuZyA4My43MiUpDQoqIFF14bqtbiBKb25nbm8tZ3UgxJHDoyAqKnTEg25nKiogbeG7qWMgbuG7k25nIMSR4buZIHRydW5nIGLDrG5oIHThu6sgMjkuNTUgbMOqbiA1MS43IG1pY3JvZ3JhbSAodMSDbmcgNzUuMjMlKQ0KKiBRdeG6rW4gSnVuZy1ndSDEkcOjICoqdMSDbmcqKiBt4bupYyBu4buTbmcgxJHhu5kgdHJ1bmcgYsOsbmggdOG7qyAyNy45OCBsw6puIDUwLjc5IG1pY3JvZ3JhbSAodMSDbmcgODIuMDIlKQ0KKiBRdeG6rW4gU2VvZGFlbXVuLWd1IMSRw6MgKip0xINuZyoqIG3hu6ljIG7hu5NuZyDEkeG7mSB0cnVuZyBiw6xuaCB04burIDM1LjA0IGzDqm4gNTMuNzQgbWljcm9ncmFtICh0xINuZyA1My4zOCUpDQoqIFF14bqtbiBZb25nc2FuLWd1IMSRw6MgKip0xINuZyoqIG3hu6ljIG7hu5NuZyDEkeG7mSB0cnVuZyBiw6xuaCB04burIDIzLjkyIGzDqm4gNDYuNjMgbWljcm9ncmFtICh0xINuZyA5NC42NCUpDQoNCioqTmd1ecOqbiBuaMOibiBjaMOtbmgqKg0KDQoqICoqxJBp4buBdSBraeG7h24ga2jDrSB0xrDhu6NuZzoqKg0KDQpNw7lhIMSRw7RuZyAyMDE5IOG7nyBTZW91bCBjw7Mgbmhp4buHdCDEkeG7mSB0aOG6pXAsIGdpw7MgeeG6v3UgdsOgIHRoaeG6v3UgbcawYSwgZOG6q24gxJHhur9uIHPhu7EgdMOtY2ggdOG7pSBi4bulaSBt4buLbiB0cm9uZyBraMO0bmcga2jDrS4gSGnhu4duIHTGsOG7o25nIG5naOG7i2NoIG5oaeG7h3Q6IHjhuqN5IHJhIHRoxrDhu51uZyB4dXnDqm4sIGtoaeG6v24ga2jDtG5nIGtow60g4bupIMSR4buNbmcsIGPhuqNuIHRy4bufIHPhu7EgcGjDom4gdMOhbiBj4bunYSBi4bulaSBt4buLbi4NCg0KKiAqKkhv4bqhdCDEkeG7mW5nIGdpYW8gdGjDtG5nOioqDQoNCk3DuWEgxJHDtG5nIGzDoCBtw7lhIGNhbyDEkWnhu4NtIHPhu60gZOG7pW5nIHBoxrDGoW5nIHRp4buHbiBnaWFvIHRow7RuZyBjw6EgbmjDom4gZG8gbmfGsOG7nWkgZMOibiBo4bqhbiBjaOG6vyBz4butIGThu6VuZyB4ZSDEkeG6oXAgdsOgIHBoxrDGoW5nIHRp4buHbiBjw7RuZyBj4buZbmcgdsOsIHRo4budaSB0aeG6v3QgbOG6oW5oLg0KDQpMxrDhu6NuZyBraMOtIHRo4bqjaSB04burIHBoxrDGoW5nIHRp4buHbiBnaWFvIHRow7RuZyB0xINuZyBjYW8sIGfDs3AgcGjhuqduIGdpYSB0xINuZyBu4buTbmcgxJHhu5kgUE0xMC4NCg0KKiAqKkhv4bqhdCDEkeG7mW5nIHPGsOG7n2kg4bqlbToqKg0KDQpWw6BvIG3DuWEgxJHDtG5nLCBuZ8aw4budaSBkw6JuIFNlb3VsIHPhu60gZOG7pW5nIGjhu4cgdGjhu5FuZyBzxrDhu59pIOG6pW0sIHTEg25nIGzGsOG7o25nIGtow60gdGjhuqNpIHThu6sgdmnhu4djIMSR4buRdCBuaGnDqm4gbGnhu4d1Lg0KU+G7rSBk4bulbmcgbMOyIHPGsOG7n2kgxJHhu5F0IGPhu6dpLCB0aGFuIMSRw6E6IHBo4buVIGJp4bq/biDhu58gbeG7mXQgc+G7kSBraHUgduG7sWMsIGfDs3AgcGjhuqduIGdpYSB0xINuZyBu4buTbmcgxJHhu5kgUE0xMC4NCg0KKiAqKkhv4bqhdCDEkeG7mW5nIHjDonkgZOG7sW5nOioqDQoNCkhv4bqhdCDEkeG7mW5nIHjDonkgZOG7sW5nIHTEg25nIGNhbyB2w6BvIG3DuWEgxJHDtG5nIGRvIHRo4budaSB0aeG6v3QgdGh14bqtbiBs4bujaSBjaG8gdGhpIGPDtG5nLg0KQuG7pWkgbeG7i24gdOG7qyBjw6FjIGhv4bqhdCDEkeG7mW5nIMSRw6BvIHjhu5tpLCBzYW4gbOG6pXAgZ8OzcCBwaOG6p24gZ2lhIHTEg25nIG7hu5NuZyDEkeG7mSBQTTEwLg0KDQoqICoqTMaw4bujbmcgZHUga2jDoWNoOioqDQoNCk3DuWEgxJHDtG5nIGzDoCBtw7lhIGR1IGzhu4tjaCB0aOG6pXAgxJFp4buDbSDhu58gU2VvdWwsIHR1eSBuaGnDqm4gbMaw4bujbmcgZHUga2jDoWNoIHbhuqtuIGNhbyBzbyB24bubaSBjw6FjIGtodSB24buxYyBraMOhYy4NCkhv4bqhdCDEkeG7mW5nIGR1IGzhu4tjaCBjxaluZyBnw7NwIHBo4bqnbiBnaWEgdMSDbmcgbMaw4bujbmcga2jDrSB0aOG6o2kgdsOgIG7hu5NuZyDEkeG7mSBQTTEwLg0KDQoqICoqWeG6v3UgdOG7kSBraMOhYzoqKg0KDQpT4buxIHRoYXkgxJHhu5VpIGPhu6dhIGPDoWMgeeG6v3UgdOG7kSBraMOtIHTGsOG7o25nOiBuaMawIMSR4buZIOG6qW0sIMOhcCBzdeG6pXQga2jDtG5nIGtow60uDQpIb+G6oXQgxJHhu5luZyBjaMOheSBy4burbmc6IHjhuqN5IHJhIOG7nyBjw6FjIGtodSB24buxYyBsw6JuIGPhuq1uLCDhuqNuaCBoxrDhu59uZyDEkeG6v24gY2jhuqV0IGzGsOG7o25nIGtow7RuZyBraMOtIOG7nyBTZW91bC4NClnhur91IHThu5EgxJHhu4thIGjDrG5oOiBTZW91bCBu4bqxbSDhu58ga2h1IHbhu7FjIGLhu5NuIMSR4buLYSwgZ2nDunAgZ2nhu68gYuG7pWkgbeG7i24gdHJvbmcga2jDtG5nIGtow60gdsOgIGjhuqFuIGNo4bq/IHPhu7EgcGjDom4gdMOhbi4NCg0KKio9PiBL4bq/dCBsdeG6rW46KioNCg0KTuG7k25nIMSR4buZIFBNMTAgdHJ1bmcgYsOsbmggbcO5YSDEkMO0bmcgZ2hpIG5o4bqtbiDhu58gbeG7qWMgY2FvLCBjaOG7iSBjaMOqbmggbOG7h2NoIG5o4bq5IHNvIHbhu5tpIG3DuWEgWHXDom4uIFR1eSBuaGnDqm4sIHNvIHbhu5tpIG3DuWEgVGh1LCBjaOG7iSB0cm9uZyAzIHRow6FuZywgY+G6oyA1IHF14bqtbiDEkeG7gXUgdMSDbmcgdHLDqm4gNzAlLg0KDQrEkGnhu4NtIMSRw6FuZyBsbyBuZ+G6oWk6IFF14bqtbiBZb25nc2FuLWd1LCB24buRbiBjw7MgbeG7qWMgxJHhu5kgw7Qgbmhp4buFbSBi4bulaSBt4buLbiB0aOG6pXAgbmjhuqV0LCB0xINuZyDEkeG6v24gOTQuNjQlLg0KDQpT4buxIGNow6puaCBs4buHY2ggZ2nhu69hIGPDoWMgbcO5YSBraMO0bmcgxJHhu5NuZyDEkeG7gXUuIEPhuqduIGPDsyBiaeG7h24gcGjDoXAgxJHhu4Mga2nhu4NtIHNvw6F0IMO0IG5oaeG7hW0gUE0xMC4NCg0KIyMgKiozLiBQaMOibiB0w61jaCBjaOG6pXQgbMaw4bujbmcgdOG7q25nIGxv4bqhaSBraMOtIOG7nyBTZW91bCoqDQojIyMgKiozLjEuIENo4bqldCBsxrDhu6NuZyBraMOtIFNPMioqDQoNCmBgYHtyfQ0KbGlicmFyeShkcGx5cikNCmxpYnJhcnkoZ2dwbG90MikNCg0KYSAlPiUgZ3JvdXBfYnkobeG7qWMuxJHhu5kuc28yLCBRdeG6rW4pICU+JSBzdW1tYXJpc2Uobj1uKCkpICU+JQ0KICBnZ3Bsb3QoYWVzKHggPSBt4bupYy7EkeG7mS5zbzIsIHkgPSBuKSkgKw0KICAgIGdlb21fY29sKGZpbGwgPSAnbWVkaXVtc2xhdGVibHVlJykgKw0KICAgIGZhY2V0X3dyYXAoflF14bqtbikgKw0KICAgIGdlb21fdGV4dChhZXMobGFiZWwgPSBuKSx2anVzdCA9IDAuNSwgY29sb3IgPSAnYmxhY2snKSArDQogICAgbGFicyh0aXRsZSA9ICdCaeG7g3UgxJHhu5MgNzogQ2jhuqV0IGzGsOG7o25nIGtow60gU08yIHRoZW8gdOG7q25nIHF14bqtbiDhu58gU2VvdWwg4bufIG3hu5dpIGdp4budJywgeCA9ICdDaOG6pXQgbMaw4bujbmcga2jDrSBTTzInLCB5ID0gJ1Phu5EgZ2nhu50nKQ0KYGBgDQoNCk5ow6xuIGNodW5nLCBjaOG6pXQgbMaw4bujbmcga2jDrSBTTzIg4bufIDUgcXXhuq1uIHTGsMahbmcgxJHhu5FpIHThu5F0Lg0KDQoqICoqUXXhuq1uIEV1bnB5ZW9uZy1ndSwgSnVuZy1ndSB2w6AgWW9uZ3Nhbi1ndToqKiBDaOG6pXQgbMaw4bujbmcga2jDrSB04buRdCB0cm9uZyB0b8OgbiBi4buZIHRo4budaSBnaWFuIMSRbyBsxrDhu51uZy4NCiogKipRdeG6rW4gU2VvZGFlbXVuLWd1OioqIENo4buJIGPDsyAxIGdp4budIGdoaSBuaOG6rW4gY2jhuqV0IGzGsOG7o25nIGtow60gYsOsbmggdGjGsOG7nW5nLg0KKiAqKlF14bqtbiBKb25nbm8tZ3U6KioNCiAgKiBDw7MgNCBnaeG7nSBnaGkgbmjhuq1uIGNo4bqldCBsxrDhu6NuZyBraMOtIGLDrG5oIHRoxrDhu51uZy4NCiAgKiAxOSBnaeG7nSBnaGkgbmjhuq1uIGNo4bqldCBsxrDhu6NuZyBraMOtIHThu4cuDQoNCkNo4bqldCBsxrDhu6NuZyBraMOtIFNPMiDhu58gU2VvdWwgY8OzIHPhu7Ega2jDoWMgYmnhu4d0IGdp4buvYSBjw6FjIHF14bqtbi4NClF14bqtbiBFdW5weWVvbmctZ3UsIEp1bmctZ3UgdsOgIFlvbmdzYW4tZ3UgY8OzIGNo4bqldCBsxrDhu6NuZyBraMOtIHThu5F0IG5o4bqldC4NClF14bqtbiBKb25nbm8tZ3UgY8OzIGNo4bqldCBsxrDhu6NuZyBraMOtIHThu4cgbmjhuqV0Lg0KDQoqKk5ndXnDqm4gbmjDom4gZOG6q24gxJHhur9uIHPhu7Ega2jDoWMgYmnhu4d0IHbhu4EgY2jhuqV0IGzGsOG7o25nIGtow60gU08yIOG7nyA1IHF14bqtbiBTZW91bDoqKg0KDQoqICoqTeG7qWMgxJHhu5kgcGjDoXQgdGjhuqNpIFNPMjoqKg0KDQpRdeG6rW4gRXVucHllb25nLWd1LCBKdW5nLWd1IHbDoCBZb25nc2FuLWd1OiBN4bqtdCDEkeG7mSBuaMOgIG3DoXksIGtodSBjw7RuZyBuZ2hp4buHcCB0aOG6pXAsIGzGsOG7o25nIGtow60gdGjhuqNpIFNPMiDDrXQuDQoNClF14bqtbiBTZW9kYWVtdW4tZ3U6IE3huq10IMSR4buZIG5ow6AgbcOheSwga2h1IGPDtG5nIG5naGnhu4dwIGNhbywgbMaw4bujbmcga2jDrSB0aOG6o2kgU08yIG5oaeG7gXUuDQoNClF14bqtbiBKb25nbm8tZ3U6IE3huq10IMSR4buZIG5ow6AgbcOheSwga2h1IGPDtG5nIG5naGnhu4dwIHRydW5nIGLDrG5oLCBsxrDhu6NuZyBraMOtIHRo4bqjaSBTTzIgdMawxqFuZyDEkeG7kWkuDQoNCiogKirEkGnhu4F1IGtp4buHbiBraMOtIHTGsOG7o25nOioqDQoNClF14bqtbiBFdW5weWVvbmctZ3UsIEp1bmctZ3UgdsOgIFlvbmdzYW4tZ3U6IEdpw7MgbeG6oW5oLCB0aMaw4budbmcgeHV5w6puIGPDsyBtxrBhLCBnacO6cCBwaMOibiB0w6FuIGtow60gU08yLg0KDQpRdeG6rW4gU2VvZGFlbXVuLWd1IHbDoCBKb25nbm8tZ3U6IEdpw7MgeeG6v3UsIMOtdCBtxrBhLCBraGnhur9uIGtow60gU08yIGThu4UgdMOtY2ggdOG7pS4NCg0KKiAqKsSQ4buLYSBow6xuaDoqKg0KDQpRdeG6rW4gRXVucHllb25nLCBKdW5nLWd1IHbDoCBZb25nc2FuLWd1OiBO4bqxbSDhu58ga2h1IHbhu7FjIHZlbiBiaeG7g24sIHRob8OhbmcgbcOhdCwgZ2nDunAga2jDrSBTTzIgZOG7hSBkaSBjaHV54buDbi4NCg0KUXXhuq1uIFNlb2RhZW11bi1ndSB2w6AgSm9uZ25vLWd1OiBO4bqxbSDhu58ga2h1IHbhu7FjIG7hu5lpIHRow6BuaCwgYuG7iyBjaGUgY2jhuq9uIGLhu59pIGPDoWMgdMOyYSBuaMOgIGNhbyB04bqnbmcsIGtoaeG6v24ga2jDrSBTTzIgZOG7hSB0w61jaCB04bulLg0KDQoqICoqTeG7qWMgxJHhu5kgcGjDoXQgdHJp4buDbiBnaWFvIHRow7RuZzoqKg0KDQpRdeG6rW4gRXVucHllb25nLCBKdW5nLWd1IHbDoCBZb25nc2FuLWd1OiBI4buHIHRo4buRbmcgZ2lhbyB0aMO0bmcgY8O0bmcgY+G7mW5nIHBow6F0IHRyaeG7g24sIGzGsOG7o25nIHhlIGPDoSBuaMOibiDDrXQsIGzGsOG7o25nIGtow60gdGjhuqNpIFNPMiB04burIGdpYW8gdGjDtG5nIHRo4bqlcC4NCg0KUXXhuq1uIFNlb2RhZW11bi1ndSB2w6AgSm9uZ25vLWd1OiBI4buHIHRo4buRbmcgZ2lhbyB0aMO0bmcgY8O0bmcgY+G7mW5nIGNoxrBhIHBow6F0IHRyaeG7g24gYuG6sW5nLCBsxrDhu6NuZyB4ZSBjw6EgbmjDom4gbmhp4buBdSwgbMaw4bujbmcga2jDrSB0aOG6o2kgU08yIHThu6sgZ2lhbyB0aMO0bmcgY2FvLg0KDQoqICoqTeG7qWMgxJHhu5kgc+G7rSBk4bulbmcgbmhpw6puIGxp4buHdSBow7NhIHRo4bqhY2g6KioNCg0KUXXhuq1uIEV1bnB5ZW9uZywgSnVuZy1ndSB2w6AgWW9uZ3Nhbi1ndTogVOG7tyBs4buHIHPhu60gZOG7pW5nIG7Eg25nIGzGsOG7o25nIHTDoWkgdOG6oW8gY2FvLCBsxrDhu6NuZyBraMOtIHRo4bqjaSBTTzIgdOG7qyBzaW5oIGhv4bqhdCB0aOG6pXAuDQoNClF14bqtbiBTZW9kYWVtdW4tZ3UgdsOgIEpvbmduby1ndTogVOG7tyBs4buHIHPhu60gZOG7pW5nIG7Eg25nIGzGsOG7o25nIHTDoWkgdOG6oW8gdGjhuqVwLCBsxrDhu6NuZyBraMOtIHRo4bqjaSBTTzIgdOG7qyBzaW5oIGhv4bqhdCBjYW8uDQoNCioqPT4gS+G6v3QgbHXhuq1uKioNCg0KTsSDbSAyMDE5LCBjaMOtbmggcXV54buBbiB2w6AgbmfGsOG7nWkgZMOibiA1IHF14bqtbiBTZW91bCDEkcOjIHBo4buRaSBo4bujcCBjaOG6t3QgY2jhur0gdsOgIG7hu5cgbOG7sWMga2jDtG5nIG5n4burbmcgxJHhu4MgZ2nhuqNtIHRoaeG7g3UgbMaw4bujbmcga2jDrSBTTzIgdHJvbmcga2h1IHbhu7FjLiBOaOG7nSBuaOG7r25nIG7hu5cgbOG7sWMgbsOgeSwgY2jhuqV0IGzGsOG7o25nIGtow7RuZyBraMOtIMSRxrDhu6NjIGPhuqNpIHRoaeG7h24gxJHDoW5nIGvhu4MsIGR1eSB0csOsIOG7nyBt4bupYyB04buRdCB0cm9uZyBzdeG7kXQgY+G6oyBuxINtLg0KDQpUdXkgbmhpw6puLCBraMOtIFNPMiB24bqrbiBjaMawYSDEkcaw4bujYyBsb+G6oWkgYuG7jyBob8OgbiB0b8OgbiB2w6AgduG6q24gdGnhu4FtIOG6qW4gbmd1eSBjxqEg4bqjbmggaMaw4bufbmcgxJHhur9uIHPhu6ljIGto4buPZSBj4buZbmcgxJHhu5NuZy4gRG8gxJHDsywgY+G6p24gdGnhur9wIHThu6VjIGR1eSB0csOsIHbDoCDEkeG6qXkgbeG6oW5oIGPDoWMgYmnhu4duIHBow6FwIG5o4bqxbSBnaeG6o20gdGhp4buDdSBraMOtIFNPMiB0cm9uZyB0aOG7nWkgZ2lhbiB04bubaS4NCg0KIyMjICoqMy4yLiBDaOG6pXQgbMaw4bujbmcga2jDrSBOTzIqKg0KDQpgYGB7cn0NCmEgJT4lIGdyb3VwX2J5KG3hu6ljLsSR4buZLm5vMikgJT4lIHN1bW1hcmlzZShuID0gbigpKSAlPiUNCiAgZ2dwbG90KGFlcyh4ID0gJycsIHkgPSBuLGZpbGwgPSBt4bupYy7EkeG7mS5ubzIpKSArDQogICAgZ2VvbV9jb2woY29sb3IgPSAnYmxhY2snKSArDQogICAgY29vcmRfcG9sYXIoJ3knKSArDQogICAgZ2VvbV90ZXh0KGFlcyh4ID0gMS4zLCBsYWJlbCA9IG4pLHBvc2l0aW9uID0gcG9zaXRpb25fc3RhY2sodmp1c3QgPSAuNSkpICsNCiAgICB0aGVtZV9taW5pbWFsKCkgKw0KICBsYWJzKHRpdGxlID0gJ0Jp4buDdSDEkeG7kyA4OiBDaOG6pXQgbMaw4bujbmcga2jDrSBOTzIg4bufIDUgcXXhuq1uIFNlb3VsIHRoZW8gbeG7l2kgZ2nhu50nLCB4ID0gJyAnLCB5ID0gJyAnKQ0KYGBgDQoNCk3hurdjIGTDuSBraMOtIFNPMiBsdcO0biBkdXkgdHLDrCBjaOG6pXQgbMaw4bujbmcga2jDtG5nIGtow60g4bufIG3hu6ljIHThu5F0LCBuaMawbmcga2jDrSBOTzIgbOG6oWkgY8OzIG5oaeG7gXUgZ2nhu50gxJFvIMSRxrDhu6NjIOG7nyBt4bupYyBiw6xuaCB0aMaw4budbmcgaMahbi4gQ+G7pSB0aOG7gyDhu58gNSBxdeG6rW4gU2VvdWwgdHJvbmcgbsSDbSAyMDE5Og0KDQoqIFPhu5EgZ2nhu50gxJFvIMSRxrDhu6NjIGNo4bqldCBsxrDhu6NuZyBraMOtIE5PMiDhu58gbeG7qWMgdOG7kXQ6IDI1LjMzNiBnaeG7nQ0KKiBT4buRIGdp4budIMSRbyDEkcaw4bujYyBjaOG6pXQgbMaw4bujbmcga2jDrSBOTzIg4bufIG3hu6ljIGLDrG5oIHRoxrDhu51uZzogMTUuMDYzIGdp4budDQoqIFPhu5EgZ2nhu50gxJFvIMSRxrDhu6NjIGNo4bqldCBsxrDhu6NuZyBraMOtIE5PMiDhu58gbeG7qWMgdOG7hzogMS41MDEgZ2nhu50NCg0KKipOZ3V5w6puIG5ow6JuIGfDonkgcmEga2jDrSBOTzI6KioNCg0KKiAqKkdpYW8gdGjDtG5nOioqDQoNClBoxrDGoW5nIHRp4buHbiBnaWFvIHRow7RuZzogxJDDonkgbMOgIG5ndeG7k24gcGjDoXQgdGjhuqNpIGtow60gTk8yIGzhu5tuIG5o4bqldCB04bqhaSBTZW91bCwgY2hp4bq/bSBoxqFuIDUwJSB04buVbmcgbMaw4bujbmcga2jDrSB0aOG6o2kuDQoNClhlIG3DoXk6IFNlb3VsIGPDsyBsxrDhu6NuZyB4ZSBtw6F5IGzGsHUgdGjDtG5nIHLhuqV0IGzhu5tuLCDGsOG7m2MgdMOtbmggaMahbiAxMCB0cmnhu4d1IGNoaeG6v2MuIFhlIG3DoXkgc+G7rSBk4bulbmcgxJHhu5luZyBjxqEgeMSDbmcsIGhhaSB0aMOsLCB0aOG6o2kgcmEgbMaw4bujbmcgbOG7m24ga2jDrSBOTzIuDQoNCsOUIHTDtDogw5QgdMO0IGPFqW5nIGzDoCBt4buZdCBuZ3Xhu5NuIHBow6F0IHRo4bqjaSBraMOtIE5PMiBxdWFuIHRy4buNbmcsIMSR4bq3YyBiaeG7h3QgbMOgIGPDoWMgeGUgY2jhuqF5IGLhurFuZyDEkeG7mW5nIGPGoSBkaWVzZWwuDQpHaWFvIHRow7RuZyB04bqvYyBuZ2jhur1uOiBHaWFvIHRow7RuZyB04bqvYyBuZ2jhur1uIGtoaeG6v24gcGjGsMahbmcgdGnhu4duIHBo4bqjaSBkaSBjaHV54buDbiBjaOG6rW0sIHTEg25nIHRo4budaSBnaWFuIMSR4buRdCBjaMOheSBuaGnDqm4gbGnhu4d1IHbDoCB0aOG6o2kgcmEgbmhp4buBdSBraMOtIE5PMiBoxqFuLg0KDQoqICoqSG/huqF0IMSR4buZbmcgY8O0bmcgbmdoaeG7h3A6KioNCg0KTmjDoCBtw6F5IGPDtG5nIG5naGnhu4dwOiBN4buZdCBz4buRIG5ow6AgbcOheSBjw7RuZyBuZ2hp4buHcCwgxJHhurdjIGJp4buHdCBsw6AgbmjDoCBtw6F5IHPhuqNuIHh14bqldCBow7NhIGNo4bqldCwgbHV54buHbiBraW0sIHbDoCBz4bqjbiB4deG6pXQgxJFp4buHbiwgdGjhuqNpIHJhIGzGsOG7o25nIGzhu5tuIGtow60gTk8yIHRyb25nIHF1w6EgdHLDrG5oIHPhuqNuIHh14bqldC4NCg0KSG/huqF0IMSR4buZbmcgxJHhu5F0IGNow6F5IG5oacOqbiBsaeG7h3UgaMOzYSB0aOG6oWNoOiBWaeG7h2Mgc+G7rSBk4bulbmcgbmhpw6puIGxp4buHdSBow7NhIHRo4bqhY2ggbmjGsCB0aGFuIMSRw6EsIGThuqd1IG3hu48gdHJvbmcgY8OhYyBuaMOgIG3DoXkgdsOgIGjhu5kgZ2lhIMSRw6xuaCBjxaluZyBnw7NwIHBo4bqnbiB2w6BvIGzGsOG7o25nIGtow60gTk8yIHRyb25nIGtow60gcXV54buDbi4NCg0KKiAqKsSQaeG7gXUga2nhu4duIHRo4budaSB0aeG6v3Q6KioNCg0KTuG6r25nIG7Ds25nOiBO4bqvbmcgbsOzbmcga2hp4bq/biBjaG8ga2jDrSBOTzIgZOG7hSBkw6BuZyBow6xuaCB0aMOgbmggdsOgIHTDrWNoIHThu6UgdHJvbmcga2jDtG5nIGtow60uIEdpw7MgeeG6v3U6IEdpw7MgeeG6v3Uga2hp4bq/biBjaG8ga2jDrSBOTzIga2jDtG5nIMSRxrDhu6NjIGtodeG6v2NoIHTDoW4sIGThuqtuIMSR4bq/biB0w6xuaCB0cuG6oW5nIMO0IG5oaeG7hW0gY2FvIGjGoW4uDQoNCiogKipZ4bq/dSB04buRIGtow6FjOioqDQoNCkhv4bqhdCDEkeG7mW5nIHjDonkgZOG7sW5nOiBIb+G6oXQgxJHhu5luZyB4w6J5IGThu7FuZyB0aOG6o2kgcmEgbMaw4bujbmcgbOG7m24gYuG7pWkgbeG7i24gUE0yLjUsIGPDsyB0aOG7gyBr4bq/dCBo4bujcCB24bubaSBraMOtIE5PMiB04bqhbyB0aMOgbmggdGjDoG5oIHBo4bqnbiBQTTIuNSDEkeG7mWMgaOG6oWkuDQoNCkhv4bqhdCDEkeG7mW5nIG7DtG5nIG5naGnhu4dwOiBT4butIGThu6VuZyBwaMOibiBiw7NuIGjDs2EgaOG7jWMgdHJvbmcgbsO0bmcgbmdoaeG7h3AgY8WpbmcgZ8OzcCBwaOG6p24gdsOgbyBsxrDhu6NuZyBraMOtIE5PMiB0cm9uZyBraMOtIHF1eeG7g24uDQoNCioqPT4gS+G6v3QgbHXhuq1uKioNCg0KQ8O5bmcgduG7m2kga2jDrSBTTzIsIGtow60gTk8yIGPFqW5nIGzDoCBt4buZdCBt4buRaSBxdWFuIHTDom0gbOG7m24gduG7gSBjaOG6pXQgbMaw4bujbmcga2jDtG5nIGtow60gdOG6oWkgNSBxdeG6rW4gU2VvdWwuIFRyb25nIG7Eg20gMjAxOSwgY2jDrW5oIHF1eeG7gW4gdsOgIG5nxrDhu51pIGTDom4gxJHDoyBjaHVuZyB0YXkgbuG7lyBs4buxYyDEkeG7gyBnaeG6o20gdGhp4buDdSBsxrDhu6NuZyBraMOtIE5PMiB0cm9uZyBraHUgduG7sWMsIGvhur90IHF14bqjIHLhurFuZyBjaOG6pXQgbMaw4bujbmcga2jDrSBOTzIgduG6q24gbHXDtG4gxJHGsOG7o2MgZHV5IHRyw6wg4bufIG3hu6ljIHThu5F0IHbDoCBiw6xuaCB0aMaw4budbmcuIA0KDQpUdXkgbmhpw6puLCBraMOtIE5PMiB24bqrbiBjaMawYSDEkcaw4bujYyBsb+G6oWkgYuG7jyBob8OgbiB0b8OgbiB2w6AgduG6q24gdGnhu4FtIOG6qW4gbmd1eSBjxqEg4bqjbmggaMaw4bufbmcgxJHhur9uIHPhu6ljIGto4buPZSBj4buZbmcgxJHhu5NuZy4gRG8gxJHDsywgY+G6p24gdGnhur9wIHThu6VjIGR1eSB0csOsIHbDoCDEkeG6qXkgbeG6oW5oIGPDoWMgYmnhu4duIHBow6FwIG5o4bqxbSBnaeG6o20gdGhp4buDdSBraMOtIE5PMiB0cm9uZyB0aOG7nWkgZ2lhbiB04bubaS4NCg0KIyMjICoqMy4zLiBDaOG6pXQgbMaw4bujbmcga2jDrSBPMyoqDQoNCmBgYHtyfQ0KYSAlPiUgZ3JvdXBfYnkobeG7qWMuxJHhu5kubzMsIFF14bqtbikgJT4lIHN1bW1hcmlzZShuPW4oKSkgJT4lDQogIGdncGxvdChhZXMoeCA9IG3hu6ljLsSR4buZLm8zLCB5ID0gbikpICsNCiAgICBnZW9tX2NvbChmaWxsID0gJ2ZvcmVzdGdyZWVuJykgKw0KICAgIGZhY2V0X3dyYXAoflF14bqtbikgKw0KICAgIGdlb21fdGV4dChhZXMobGFiZWwgPSBuKSx2anVzdCA9IDAuNSwgY29sb3IgPSAnYmxhY2snKSArDQogICAgbGFicyh0aXRsZSA9ICdCaeG7g3UgxJHhu5MgOTogQ2jhuqV0IGzGsOG7o25nIGtow60gTzMgdGhlbyB04burbmcgcXXhuq1uIOG7nyBTZW91bCDhu58gbeG7l2kgZ2nhu50nLCB4ID0gJ0No4bqldCBsxrDhu6NuZyBraMOtIE8zJywgeSA9ICdT4buRIGdp4budJykNCmBgYA0KDQpUxrDGoW5nIHThu7EgbmjGsCBraMOtIE5PMiwga2jDrSBPMyBjxaluZyB0aMaw4budbmcgxJHGsOG7o2MgdOG6rXAgdHJ1bmcg4bufIG3hu6ljIGNo4bqldCBsxrDhu6NuZyBraMO0bmcga2jDrSDEkcaw4bujYyB4ZW0gbMOgIGLDrG5oIHRoxrDhu51uZyB2w6AgdOG7kXQuIFR1eSBuaGnDqm4sIMSR4buRaSB24bubaSBraMOtIE8zIMSRw6MgeHXhuqV0IGhp4buHbiB0aMOqbSBt4buZdCBt4bupYyBjaOG6pXQgbMaw4bujbmcga2jDtG5nIGtow60gxJHGsOG7o2MgxJHDoW5oIGdpw6EgbMOgIHLhuqV0IHThu4cuIMSQaeG7gXUgbsOgeSBjw7MgdGjhu4MgxJHGsOG7o2MgbmjDrG4gdGjhuqV5IHLDtSB04burIGvhur90IHF14bqjIGPhu6dhIGJp4buDdSDEkeG7kyA5LCBj4bulIHRo4buDOg0KDQoqICoqUXXhuq1uIEV1bnB5ZW9uZy1ndToqKg0KICAqIFPhu5EgZ2nhu50gxJFvIMSRxrDhu6NjIGNo4bqldCBsxrDhu6NuZyBraMOtIE8zIOG7nyBt4bupYyB04buRdDogNDkzNiBnaeG7nSANCiAgKiBT4buRIGdp4budIMSRbyDEkcaw4bujYyBjaOG6pXQgbMaw4bujbmcga2jDrSBPMyDhu58gbeG7qWMgYsOsbmggdGjGsOG7nW5nOiAzMzcxIGdp4budDQogICogU+G7kSBnaeG7nSDEkW8gxJHGsOG7o2MgY2jhuqV0IGzGsOG7o25nIGtow60gTzMg4bufIG3hu6ljIHThu4c6IDY3IGdp4budDQogICogU+G7kSBnaeG7nSDEkW8gxJHGsOG7o2MgY2jhuqV0IGzGsOG7o25nIGtow60gTzMg4bufIG3hu6ljIHLhuqV0IHThu4c6IDIgZ2nhu50NCg0KKiAqKlF14bqtbiBKb25nbm8tZ3U6KioNCiAgKiBT4buRIGdp4budIMSRbyDEkcaw4bujYyBjaOG6pXQgbMaw4bujbmcga2jDrSBPMyDhu58gbeG7qWMgdOG7kXQ6IDU3MzggZ2nhu50gDQogICogU+G7kSBnaeG7nSDEkW8gxJHGsOG7o2MgY2jhuqV0IGzGsOG7o25nIGtow60gTzMg4bufIG3hu6ljIGLDrG5oIHRoxrDhu51uZzogMjYzMSBnaeG7nQ0KICAqIFPhu5EgZ2nhu50gxJFvIMSRxrDhu6NjIGNo4bqldCBsxrDhu6NuZyBraMOtIE8zIOG7nyBt4bupYyB04buHOiAxNiBnaeG7nQ0KICAqIEtow7RuZyBjw7Mgc+G7kSBnaeG7nSDEkW8gxJHGsOG7o2MgY2jhuqV0IGzGsOG7o25nIGtow60gTzMg4bufIG3hu6ljIHLhuqV0IHThu4cNCiAgDQoqICoqUXXhuq1uIEp1bmctZ3U6KioNCiAgKiBT4buRIGdp4budIMSRbyDEkcaw4bujYyBjaOG6pXQgbMaw4bujbmcga2jDrSBPMyDhu58gbeG7qWMgdOG7kXQ6IDUxNDAgZ2nhu50gDQogICogU+G7kSBnaeG7nSDEkW8gxJHGsOG7o2MgY2jhuqV0IGzGsOG7o25nIGtow60gTzMg4bufIG3hu6ljIGLDrG5oIHRoxrDhu51uZzogMzE2NSBnaeG7nQ0KICAqIFPhu5EgZ2nhu50gxJFvIMSRxrDhu6NjIGNo4bqldCBsxrDhu6NuZyBraMOtIE8zIOG7nyBt4bupYyB04buHOiA3NyBnaeG7nQ0KICAqIFPhu5EgZ2nhu50gxJFvIMSRxrDhu6NjIGNo4bqldCBsxrDhu6NuZyBraMOtIE8zIOG7nyBt4bupYyBy4bqldCB04buHOiAzIGdp4budDQogIA0KKiAqKlF14bqtbiBTZW9kYWVtdW4tZ3U6KioNCiAgKiBT4buRIGdp4budIMSRbyDEkcaw4bujYyBjaOG6pXQgbMaw4bujbmcga2jDrSBPMyDhu58gbeG7qWMgdOG7kXQ6IDUwOTkgZ2nhu50gDQogICogU+G7kSBnaeG7nSDEkW8gxJHGsOG7o2MgY2jhuqV0IGzGsOG7o25nIGtow60gTzMg4bufIG3hu6ljIGLDrG5oIHRoxrDhu51uZzogMzIwOSBnaeG7nQ0KICAqIFPhu5EgZ2nhu50gxJFvIMSRxrDhu6NjIGNo4bqldCBsxrDhu6NuZyBraMOtIE8zIOG7nyBt4bupYyB04buHOiA2MCBnaeG7nQ0KICAqIFPhu5EgZ2nhu50gxJFvIMSRxrDhu6NjIGNo4bqldCBsxrDhu6NuZyBraMOtIE8zIOG7nyBt4bupYyBy4bqldCB04buHOiAyIGdp4budDQoNCiogKipRdeG6rW4gWW9uZ3Nhbi1ndToqKg0KICAqIFPhu5EgZ2nhu50gxJFvIMSRxrDhu6NjIGNo4bqldCBsxrDhu6NuZyBraMOtIE8zIOG7nyBt4bupYyB04buRdDogNTc3MyBnaeG7nSANCiAgKiBT4buRIGdp4budIMSRbyDEkcaw4bujYyBjaOG6pXQgbMaw4bujbmcga2jDrSBPMyDhu58gbeG7qWMgYsOsbmggdGjGsOG7nW5nOiAyNTYzIGdp4budDQogICogU+G7kSBnaeG7nSDEkW8gxJHGsOG7o2MgY2jhuqV0IGzGsOG7o25nIGtow60gTzMg4bufIG3hu6ljIHThu4c6IDQ2IGdp4budDQogICogU+G7kSBnaeG7nSDEkW8gxJHGsOG7o2MgY2jhuqV0IGzGsOG7o25nIGtow60gTzMg4bufIG3hu6ljIHLhuqV0IHThu4c6IDIgZ2nhu50NCg0KKipOZ3V5w6puIG5ow6JuIGfDonkgcmEga2jDrSBPMyoqDQoNCiogKipIb+G6oXQgxJHhu5luZyBnaWFvIHRow7RuZzoqKiANCg0KS2jDrSB0aOG6o2kgdOG7qyB4ZSBj4buZIGzDoCBuZ3Xhu5NuIHBow6F0IHRo4bqjaSBPMyBs4bubbiBuaOG6pXQg4bufIFNlb3VsLiBLaMOtIHRo4bqjaSBuw6B5IGNo4bupYSBjw6FjIGjhu6NwIGNo4bqldCBo4buvdSBjxqEgZOG7hSBiYXkgaMahaSAoVk9DKSB2w6Agbml0xqEgb3hpdCAoTk94KSwgbMOgIG5o4buvbmcgdGnhu4FuIGNo4bqldCBjaMOtbmggdOG6oW8gdGjDoG5oIE8zLg0KDQoqICoqSG/huqF0IMSR4buZbmcgc2luaCBob+G6oXQ6KioNCg0KU+G7rSBk4bulbmcgYuG6v3AgZ2FzOiBC4bq/cCBnYXMgdGjhuqNpIHJhIE5PeCwgbeG7mXQgdGnhu4FuIGNo4bqldCB04bqhbyB0aMOgbmggTzMuDQoNClPhu60gZOG7pW5nIGPDoWMgc+G6o24gcGjhuqltIHThuql5IHLhu61hIHbDoCBow7NhIGNo4bqldDogTeG7mXQgc+G7kSBz4bqjbiBwaOG6qW0gdOG6qXkgcuG7rWEgdsOgIGjDs2EgY2jhuqV0IHRo4bqjaSByYSBWT0MsIG3hu5l0IHRp4buBbiBjaOG6pXQgdOG6oW8gdGjDoG5oIE8zLg0KDQpT4butIGThu6VuZyBtw6F5IMSRaeG7gXUgaMOyYTogTcOheSDEkWnhu4F1IGjDsmEgdGjhuqNpIHJhIGtow60gbsOzbmcsIGfDs3AgcGjhuqduIHbDoG8gc+G7sSBow6xuaCB0aMOgbmggTzMuDQoNCiogKipIb+G6oXQgxJHhu5luZyBjw7RuZyBuZ2hp4buHcDoqKiANCg0KTeG7mXQgc+G7kSBuZ8OgbmggY8O0bmcgbmdoaeG7h3AsIG5oxrAgbmjDoCBtw6F5IMSRaeG7h24gdsOgIG5ow6AgbcOheSBow7NhIGNo4bqldCwgY8WpbmcgcGjDoXQgdGjhuqNpIFZPQyB2w6AgTk94LCBnw7NwIHBo4bqnbiB2w6BvIG3hu6ljIE8zIGNhby4NCg0KKiAqKsSQaeG7gXUga2nhu4duIHRo4budaSB0aeG6v3Q6KiogDQoNCk3hu6ljIE8zIGPDsyB4dSBoxrDhu5tuZyBjYW8gaMahbiB2w6BvIG3DuWEgaMOoIGtoaSBuaGnhu4d0IMSR4buZIGNhbyB2w6AgY8OzIG5oaeG7gXUgw6FuaCBu4bqvbmcgbeG6t3QgdHLhu51pLiDDgW5oIG7huq9uZyBt4bq3dCB0cuG7nWkgZ2nDunAgdGjDumMgxJHhuql5IHF1w6EgdHLDrG5oIGjDrG5oIHRow6BuaCBPMyB04burIFZPQyB2w6AgTk94Lg0KDQoqICoqVuG7iyB0csOtIMSR4buLYSBsw706KiogDQoNClNlb3VsIG7hurFtIGfhuqduIGPDoWMga2h1IHbhu7FjIGPDtG5nIG5naGnhu4dwIGzhu5tuIOG7nyBUcnVuZyBRdeG7kWMsIG7GoWkgY8WpbmcgY8OzIG3hu6ljIGtow60gTzMgY2FvLiBLaMOtIE8zIHThu6sgVHJ1bmcgUXXhu5FjIGPDsyB0aOG7gyBkaSBjaHV54buDbiDEkeG6v24gU2VvdWwgcXVhIGdpw7MuDQoNCioqPT4gS+G6v3QgbHXhuq1uKioNCg0KTeG6t2MgZMO5IG7hu5NuZyDEkeG7mSBPMyDhu58gNSBxdeG6rW4gU2VvdWwgY2jhu6cgeeG6v3UgZGFvIMSR4buZbmcg4bufIG3hu6ljIGLDrG5oIHRoxrDhu51uZyB2w6AgdOG7kXQsIG5oxrBuZyBj4bqnbiBsxrB1IMO9IHLhurFuZzogTzMgY8OzIHh1IGjGsOG7m25nIHTEg25nIGNhbyB2w6BvIG3DuWEgaMOoLCBraGkgbmhp4buHdCDEkeG7mSB2w6Agw6FuaCBu4bqvbmcgbeG6t3QgdHLhu51pIG3huqFuaC4gU2VvdWwgdGjGsOG7nW5nIHh1ecOqbiBwaOG6o2kgY+G6o25oIGLDoW8gduG7gSBjaOG6pXQgbMaw4bujbmcga2jDtG5nIGtow60gZG8gTzMsIMSR4bq3YyBiaeG7h3QgbMOgIHbDoG8gbcO5YSBow6guDQoNCiMjIyAqKjMuNC4gQ2jhuqV0IGzGsOG7o25nIGtow60gQ08qKg0KDQpgYGB7cn0NCmEgJT4lIGdyb3VwX2J5KG3hu6ljLsSR4buZLmNvKSAlPiUgc3VtbWFyaXNlKG4gPSBuKCkpICU+JQ0KICBnZ3Bsb3QoYWVzKHggPSAnJywgeSA9IG4sZmlsbCA9IG3hu6ljLsSR4buZLmNvKSkgKw0KICAgIGdlb21fY29sKGNvbG9yID0gJ2JsYWNrJykgKw0KICAgIGNvb3JkX3BvbGFyKCd5JykgKw0KICAgIGdlb21fdGV4dChhZXMoeCA9IDEuMywgbGFiZWwgPSBuKSxwb3NpdGlvbiA9IHBvc2l0aW9uX3N0YWNrKHZqdXN0ID0gLjUpKSArDQogICAgdGhlbWVfbWluaW1hbCgpICsNCiAgbGFicyh0aXRsZSA9ICdCaeG7g3UgxJHhu5MgMTA6IENo4bqldCBsxrDhu6NuZyBraMOtIENPIOG7nyA1IHF14bqtbiBTZW91bCB0aGVvIG3hu5dpIGdp4budJywgeCA9ICcgJywgeSA9ICcgJykNCmBgYA0KDQpDaOG6pXQgbMaw4bujbmcga2jDrSBDTyB04bqhaSBraHUgduG7sWMga2jhuqNvIHPDoXQgY2jhu6cgeeG6v3Ug4bufIG3hu6ljIHThu5F0OiA5OSw4JSB0aOG7nWkgZ2lhbiDEkW8gKHTGsMahbmcgxJHGsMahbmcgNDE4MjQgZ2nhu50pIGNobyBr4bq/dCBxdeG6oyBjaOG6pXQgbMaw4bujbmcga2jDrSBDTyB04buRdC4NCg0KQ2jhu4kgY8OzIDAsMiUgdGjhu51pIGdpYW4gxJFvICh0xrDGoW5nIMSRxrDGoW5nIDc1IGdp4budKSBjaG8ga+G6v3QgcXXhuqMgY2jhuqV0IGzGsOG7o25nIGtow60gQ08g4bufIG3hu6ljIGLDrG5oIHRoxrDhu51uZy4NCg0KS2jDtG5nIGdoaSBuaOG6rW4gdHLGsOG7nW5nIGjhu6NwIG7DoG8gY2jhuqV0IGzGsOG7o25nIGtow60gQ08g4bufIG3hu6ljIHThu4cgaG/hurdjIHLhuqV0IHThu4cuDQoNCioqTmd1ecOqbiBuaMOibiBnw6J5IHJhIGtow60gQ08qKg0KDQoqICoqR2lhbyB0aMO0bmcgduG6rW4gdOG6o2k6KioNCg0KSG/huqF0IMSR4buZbmcgZ2lhbyB0aMO0bmcgbMOgIG5ndeG7k24gcGjDoXQgdGjhuqNpIGtow60gQ08gbOG7m24gbmjhuqV0IOG7nyBTZW91bCwgY2hp4bq/bSA3NCw0JSB04buVbmcgbMaw4bujbmcga2jDrSBDTyBwaMOhdCB0aOG6o2kgbsSDbSAyMDE5Lg0KDQpYZSBj4buZIHPhu60gZOG7pW5nIG5oacOqbiBsaeG7h3UgaMOzYSB0aOG6oWNoIG5oxrAgeMSDbmcsIGThuqd1IGRpZXNlbCBsw6Agbmd1ecOqbiBuaMOibiBjaMOtbmggdOG6oW8gcmEga2jDrSBDTy4NCg0KR2lhbyB0aMO0bmcgdOG6r2Mgbmdo4bq9biBraGnhur9uIHhlIGPhu5kgcGjhuqNpIGRpIGNodXnhu4NuIGNo4bqtbSBjaOG6oXAsIGzDoG0gdMSDbmcgbMaw4bujbmcga2jDrSB0aOG6o2kgQ08uDQoNCiogKipIb+G6oXQgxJHhu5luZyBjw7RuZyBuZ2hp4buHcDoqKg0KDQpIb+G6oXQgxJHhu5luZyBjw7RuZyBuZ2hp4buHcCBsw6Agbmd14buTbiBwaMOhdCB0aOG6o2kga2jDrSBDTyBs4bubbiB0aOG7qSBoYWkg4bufIFNlb3VsLCBjaGnhur9tIDE0LDIlIHThu5VuZyBsxrDhu6NuZyBraMOtIENPIHBow6F0IHRo4bqjaSBuxINtIDIwMTkuDQpDw6FjIG5ow6AgbcOheSBz4butIGThu6VuZyBuaGnDqm4gbGnhu4d1IGjDs2EgdGjhuqFjaCDEkeG7gyBz4bqjbiB4deG6pXQgbsSDbmcgbMaw4bujbmcgdsOgIHPhuqNuIHBo4bqpbSBsw6Agbmd14buTbiBwaMOhdCB0aOG6o2kga2jDrSBDTy4NCg0KUXXDoSB0csOsbmggxJHhu5F0IGNow6F5IG5oacOqbiBsaeG7h3UgaMOzYSB0aOG6oWNoIHRyb25nIGPDoWMgbmjDoCBtw6F5IGPFqW5nIHThuqFvIHJhIGtow60gQ08uDQoNCiogKipIb+G6oXQgxJHhu5luZyBzaW5oIGhv4bqhdDoqKg0KDQpIb+G6oXQgxJHhu5luZyBzaW5oIGhv4bqhdCBjxaluZyBnw7NwIHBo4bqnbiB2w6BvIHZp4buHYyBwaMOhdCB0aOG6o2kga2jDrSBDTyDhu58gU2VvdWwsIGNoaeG6v20gMTEsNCUgdOG7lW5nIGzGsOG7o25nIGtow60gQ08gcGjDoXQgdGjhuqNpIG7Eg20gMjAxOS4NCg0KU+G7rSBk4bulbmcgYuG6v3AgZ2FzIMSR4buDIG7huqV1IG7GsOG7m25nIGzDoCBt4buZdCB0cm9uZyBuaOG7r25nIG5ndXnDqm4gbmjDom4gY2jDrW5oIHThuqFvIHJhIGtow60gQ08uDQoNClPhu60gZOG7pW5nIGPDoWMgdGhp4bq/dCBi4buLIHPGsOG7n2kg4bqlbSB2w6AgbMOgbSBtw6F0IHPhu60gZOG7pW5nIG5oacOqbiBsaeG7h3UgaMOzYSB0aOG6oWNoIGPFqW5nIHThuqFvIHJhIGtow60gQ08uDQoNCioqPT4gS+G6v3QgbHXhuq1uKioNCg0KS2jDrSBDTyB04bqhaSBraHUgduG7sWMga2jhuqNvIHPDoXQgxJHhuqF0IGNo4bqldCBsxrDhu6NuZyB04buRdCB0cm9uZyBwaOG6p24gbOG7m24gdGjhu51pIGdpYW4uDQoNClR1eSBuaGnDqm4sIHbhuqtuIGPDsyBt4buZdCBz4buRIHRyxrDhu51uZyBo4bujcCBjaOG6pXQgbMaw4bujbmcga2jDrSBDTyBnaeG6o20geHXhu5FuZyBt4bupYyBiw6xuaCB0aMaw4budbmcuDQoNCiMjICoqNC4gxJDDoW5oIGdpw6EgdMOsbmggaMOsbmggw7Qgbmhp4buFbSBraMO0bmcga2jDrSDhu58gU2VvdWwgbsSDbSAyMDE5KioNCg0KTeG6t2MgZMO5IMSRYSBwaOG6p24gY8OhYyBnaeG7nSDEkW8gdsOgIGPDoWMgcXXhuq1uIMSRxrDhu6NjIMSRbyDhu58gU2VvdWwgxJHhu4F1IG7hurFtIHRyb25nIG3hu6ljIGFuIHRvw6BuLCB04bupYyBsw6AgY2jhuqV0IGzGsOG7o25nIGtow7RuZyBraMOtIMSRxrDhu6NjIHhlbSBsw6AgdOG7kXQgaG/hurdjIGLDrG5oIHRoxrDhu51uZywgbmjGsG5nIGzGsOG7o25nIGtow60gw7Qgbmhp4buFbSB24bqrbiBy4bqldCDEkcO0bmcgdsOgIG5oaeG7gXUuIMSQaeG7gXUgbsOgeSBjw7MgbmdoxKlhIGzDoCBuZ2F5IGPhuqMga2hpIGNo4bqldCBsxrDhu6NuZyBraMO0bmcga2jDrSDhu58gbeG7qWMgYW4gdG/DoG4sIG7DsyB24bqrbiBjw7MgdGjhu4MgZ8OieSByYSDhuqNuaCBoxrDhu59uZyDEkcOhbmcga+G7gyDEkeG6v24gc+G7qWMga2jhu49lIGPhu6dhIGPhu5luZyDEkeG7k25nLg0KDQoqKk3hu5l0IHPhu5EgdMOhYyBo4bqhaSBj4bunYSDDtCBuaGnhu4VtIGtow7RuZyBraMOtIG3DoCBjaMO6bmcgdGEgxJHDoyBjw7MgdGjhu4MgdOG7q25nIMSRxrDhu6NjIGNo4bupbmcga2nhur9uIGhv4bq3YyBuZ2hlIHF1YSBuaMawOioqDQoNCk3huq10IMSR4buZIGLhu6VpIHNpw6p1IG3hu4tuIChuaOG7jyBoxqFuIDIsNSBtaWNyb21ldGVyLCBoYXkgY8OybiBn4buNaSBsw6AgUE0yLjUpIHRydW5nIGLDrG5oIOG7nyB0aOG7pyDEkcO0IFNlb3VsIGPhu6dhIEjDoG4gUXXhu5FjIHRyb25nIHRow6FuZyAzLzIwMTkgxJHDoyBjaOG6oW0gbmfGsOG7oW5nIGNhbyBr4bu3IGzhu6VjIGvhu4MgdOG7qyBraGkgY8OhYyBk4buvIGxp4buHdSBi4bqvdCDEkeG6p3UgxJHGsOG7o2MgdGh1IHRo4bqtcCB2w6BvIG7Eg20gMjAxNSAqKFRoZW8gYsOhbyBbVGluIFThu6ljXShodHRwczovL2Jhb3RpbnR1Yy52bi90aGUtZ2lvaS9tYXQtZG8tYnVpLXNpZXUtbWluLW8tc2VvdWwtaGFuLXF1b2MtY2hhbS1uZ3Vvbmcta3ktbHVjLTIwMTkwNDAxMTM0NDE2MjU5Lmh0bSkgdsOgbyBuZ8OgeSAxLzQvMjAxOSkqDQoNCiFbXShDOi9Vc2Vycy9BZG1pbi9QaWN0dXJlcy9TY3JlZW5zaG90cy9TY3JlZW5zaG90IDIwMjQtMDMtMjQgMTk1MTQ5LnBuZykNCg0KVGjhu6cgxJHDtCBTZW91bCB0aeG6v3AgdOG7pWMgY2jDrG0gdHJvbmcgYuG7pWkgbeG7i24gYuG7n2kgc8awxqFuZyBtw7kgZG8gYuG7pWkgbeG7i24gZ8OieSByYSwgYnXhu5ljIGNow61uaCBxdXnhu4FuIMSR4buLYSBwaMawxqFuZyBwaOG6o2kgYmFuIGjDoG5oIGjGsOG7m25nIGThuqtuIHbhu4EgYuG7pWkgbeG7i24gdsOgIGPDoWMgYmnhu4duIHBow6FwIGdp4bqjbSBraMOtIHRo4bqjaSBraOG6qW4gY+G6pXAsIG5oxrAgcXV5IMSR4buLbmggbMOhaSB4ZSBuZ8OgeSBjaOG6tW4tbOG6uyDEkeG7kWkgduG7m2kgY8OhYyBwaMawxqFuZyB0aeG7h24gY8O0bmcgY+G7mW5nIHbDoCBj4bqlbSDEkcaw4budbmcgxJHhu5FpIHbhu5tpIGPDoWMgbG/huqFpIHhlIGPFqSBz4butIGThu6VuZyBk4bqndSBkaWVzZWwgKihUaGVvIGLDoW8gW05ow6JuIETDom5dKGh0dHBzOi8vbmhhbmRhbi52bi90aHUtZG8tc2VvdWwtdGllcC10dWMtY2hpbS10cm9uZy1vLW5oaWVtLWJ1aS1taW4tcG9zdDM3OTc1MS5odG1sKSwgdsOgbyBuZ8OgeSAxMS8xMi8yMDE5KS4qDQoNCiFbXShDOi9Vc2Vycy9BZG1pbi9QaWN0dXJlcy9TY3JlZW5zaG90cy9TY3JlZW5zaG90IDIwMjQtMDMtMjQgMTk1NDQ2LnBuZykNCg0KTMaw4bujbmcgYuG7pWkgc2nDqnUgbeG7i24gZ8OieSDDtCBuaGnhu4VtIGtow7RuZyBraMOtIOG7nyBraHUgduG7sWMgdGjhu6cgxJHDtCBTZW91bCBj4bunYSBIw6BuIFF14buRYyB0cm9uZyBuZ8OgeSAxMC8xMiDEkcOjIHTEg25nIGzDqm4gbeG7qWMgcuG6pXQgeOG6pXUga2hp4bq/biBIw6BuIFF14buRYyBwaOG6o2kgY+G6o25oIGLDoW8gZG8gYuG7pWkgbeG7i24uIE5ndXnDqm4gbmjDom4gcGjhuqduIGzhu5tuIGzDoCBkbyBi4buLIGtow7NpIGLhu6VpIHThu6sgVHJ1bmcgUXXhu5FjIGJheSBzYW5nIGLDoW4gxJHhuqNvIFRyaeG7gXUgVGnDqm4uxJDDonkgbMOgIGPhuqNuaCBiw6FvIHbhu4EgYuG7pWkgc2nDqnUgbeG7i24gxJHhuqd1IHRpw6puIGPhu6dhIEjDoG4gUXXhu5FjIHRyb25nIG3DuWEgxJHDtG5nIG7Eg20gMjAxOSAqKFRoZW8gYsOhbyBbVlRWXShodHRwczovL3Z0di52bi92aWV0LW5hbS1ob20tbmF5L2hhbi1xdW9jLWNhbmgtYmFvLW8tbmhpZW0tZG8tYnVpLW1pbi0yMDE5MTIxMTE3NTQxMjQzNy5odG0pIG5nw6B5IDExLzEyLzIwMTkpLioNCg0KIVtdKEM6L1VzZXJzL0FkbWluL1BpY3R1cmVzL1NjcmVlbnNob3RzL1NjcmVlbnNob3QgMjAyNC0wMy0yNCAyMDA4NDgucG5nKQ0KDQojIyAqKjUuIEdp4bqjaSBwaMOhcCBjaG8gdMOsbmggaMOsbmggw7Qgbmhp4buFbSBraMO0bmcga2jDrSDhu58gU2VvdWwgbsSDbSAyMDE5KioNCg0KKioiTOG7nWkgaOG7qWEgU2VvdWwiOiBCaeG6v24gU2VvdWwgdGjDoG5oIHRow6BuaCBwaOG7kSBi4buBbiB24buvbmcgKFRoZW8gYsOhbyBbS2luaCB04bq/IMSRw7QgdGjhu4tdKGh0dHBzOi8va2luaHRlZG90aGkudm4vZ2lhbS10aGlldS1vLW5oaWVtLWtob25nLWtoaS1kby10aGktbmhpbi10dS1sb2ktaHVhLXNlb3VsLmh0bWwpKSoqDQoNClThu6sgbsSDbSAyMDE1IMSR4bq/biAyMDIwLCBTZW91bCDEkcOjIHRo4buxYyBoaeG7h24gdGjDoG5oIGPDtG5nIGNoaeG6v24gZOG7i2NoICJM4budaSBo4bupYSBTZW91bCIgduG7m2kgbeG7pWMgdGnDqnUgYmnhur9uIHRow6BuaCBwaOG7kSB0cuG7nyBuw6puIGLhu4FuIHbhu69uZyBjaG8gdOG6pXQgY+G6oyBzaW5oIHbhuq10IHPhu5FuZy4NCg0KKipDaGnhur9uIGThu4tjaCBuw6B5IGJhbyBn4buTbSA1IGzEqW5oIHbhu7FjIGNow61uaCB24bubaSAxNjAgaMOgbmggxJHhu5luZyBj4bulIHRo4buDOioqDQoNCiogTsSDbmcgbMaw4bujbmcNCiogS2jDtG5nIGtow60vR2lhbyB0aMO0bmcNCiogVHXhuqduIGhvw6BuIHTDoGkgbmd1ecOqbi9OxrDhu5tjDQoqIFNpbmggdGjDoWkvTsO0bmcgbmdoaeG7h3AgxJHDtCB0aOG7iw0KKiBT4bupYyBraOG7j2UvQW4gdG/DoG4NCg0KKipL4bq/dCBxdeG6ozoqKg0KDQoqIFNlb3VsIGdp4bqjbSAyNSUgbMaw4bujbmcga2jDrSB0aOG6o2kgY2FyYm9uIHNvIHbhu5tpIG7Eg20gMjAxNSwgdMawxqFuZyDEkcawxqFuZyAzLDcgdHJp4buHdSB04bqlbiBuxINuZyBsxrDhu6NuZyB0acOqdSB0aOG7pSAoVE9FKS4NCg0KKiBTZW91bCB0cuG7nyB0aMOgbmggdGjDoG5oIHBo4buRIHRyb25nIGzDoG5oLCBhbiB0b8OgbiwgY8OzIGto4bqjIG7Eg25nIGNo4buRbmcgY2jhu41pIHbhu5tpIGJp4bq/biDEkeG7lWkga2jDrSBo4bqtdS4NCg0KKipUaMOgbmggY8O0bmcgY+G7p2EgY2hp4bq/biBk4buLY2ggIkzhu51pIGjhu6lhIFNlb3VsIiDEkeG6v24gdOG7qzoqKg0KDQoqIFPhu7EgxJHhu5NuZyBsw7JuZyBj4bunYSBjaMOtbmggcXV54buBbiB2w6AgbmfGsOG7nWkgZMOibiBTZW91bCB0cm9uZyB2aeG7h2MgdGnhur90IGdp4bqjbSBuxINuZyBsxrDhu6NuZyB2w6AgYuG6o28gduG7hyBtw7RpIHRyxrDhu51uZy4NCg0KKiBDw6FjIGJp4buHbiBwaMOhcCBj4bulIHRo4buDIHbDoCBoaeG7h3UgcXXhuqMgxJHGsOG7o2MgdGjhu7FjIGhp4buHbiB0cm9uZyB04burbmcgbMSpbmggduG7sWMuDQoNCiogQ2hp4bq/biBk4buLY2ggIkzhu51pIGjhu6lhIFNlb3VsIiBsw6AgbeG7mXQgdsOtIGThu6UgxJFp4buDbiBow6xuaCB24buBIHPhu7EgdGjDoG5oIGPDtG5nIHRyb25nIHZp4buHYyB4w6J5IGThu7FuZyB0aMOgbmggcGjhu5EgYuG7gW4gduG7r25nLiBOw7MgxJHDoyB0cuG7nyB0aMOgbmggbmnhu4FtIGPhuqNtIGjhu6luZyBjaG8gbmhp4buBdSB0aMOgbmggcGjhu5Ega2jDoWMgdHLDqm4gdGjhur8gZ2nhu5tpLCB0cm9uZyDEkcOzIGPDsyBIw6AgTuG7mWkuDQoNCioqQsOgaSBo4buNYyBraW5oIG5naGnhu4dtIHThu6sgIkzhu51pIGjhu6lhIFNlb3VsIiBjaG8gVmnhu4d0IE5hbToqKg0KDQoqIEPhuqduIGPDsyBz4buxIMSR4buTbmcgbMOybmcgY+G7p2EgY2jDrW5oIHF1eeG7gW4gdsOgIG5nxrDhu51pIGTDom4gdHJvbmcgdmnhu4djIGLhuqNvIHbhu4cgbcO0aSB0csaw4budbmcuDQoNCiogQ+G6p24geMOieSBk4buxbmcgY2hp4bq/biBsxrDhu6NjIGPhu6UgdGjhu4MgdsOgIGhp4buHdSBxdeG6oyBjaG8gdOG7q25nIGzEqW5oIHbhu7FjLg0KDQoqIEPhuqduIGh1eSDEkeG7mW5nIHPhu7EgdGhhbSBnaWEgY+G7p2EgY8OhYyB04buVIGNo4bupYyB4w6MgaOG7mWkgdsOgIGRvYW5oIG5naGnhu4dwIHRyb25nIHZp4buHYyB0aOG7sWMgaGnhu4duIGNoaeG6v24gbMaw4bujYy4NCg0KKiBW4bubaSBz4buxIHF1eeG6v3QgdMOibSB2w6AgbuG7lyBs4buxYyBj4bunYSBjaMOtbmggcXV54buBbiB2w6AgbmfGsOG7nWkgZMOibiwgSMOgIE7hu5lpIGPDsyB0aOG7gyBo4buNYyBo4buPaSB04burIGtpbmggbmdoaeG7h20gY+G7p2EgU2VvdWwgxJHhu4MgeMOieSBk4buxbmcgdGjDoG5oIHBo4buRIHhhbmggLSBz4bqhY2ggLSDEkeG6uXAgdsOgIGLhu4FuIHbhu69uZyB0cm9uZyB0xrDGoW5nIGxhaS4NCg0KIyAqKklWLiBU4buUTkcgS+G6vlQqKg0KDQpUcm9uZyB0aeG7g3UgbHXhuq1uIG7DoHksIGNow7puZyB0YSDEkcOjIHThuq1wIHRydW5nIHbDoG8gcGjDom4gdMOtY2ggY8OhYyB54bq/dSB04buRIG3DtGkgdHLGsOG7nW5nIHF1YW4gdHLhu41uZyDEkcOzbmcgdmFpIHRyw7IgdHJvbmcg4bqjbmggaMaw4bufbmcgxJHhur9uIGNo4bqldCBsxrDhu6NuZyBraMO0bmcga2jDrSB04bqhaSBTZW91bCB0cm9uZyBuxINtIDIwMTksIGThu7FhIHRyw6puIGThu68gbGnhu4d1IHbhu4EgY8OhYyBjaOG7iSBz4buRIMO0IG5oaeG7hW0ga2jDtG5nIGtow60gbmjGsCBTTzIsIE5PMiwgTzMsIENPLCBQTTEwIHbDoCBQTTIuNS4gVGjDtG5nIHF1YSB2aeG7h2MgcGjDom4gdMOtY2ggZOG7ryBsaeG7h3UgbsOgeSwgY2jDum5nIHRhIMSRw6Mgbmjhuq1uIHRo4bupYyDEkcaw4bujYyBz4buxIHBo4bupYyB04bqhcCBj4bunYSB0w6xuaCB0cuG6oW5nIMO0IG5oaeG7hW0ga2jDtG5nIGtow60sIGPDoWMgeeG6v3UgdOG7kSBnw6J5IHJhIMO0IG5oaeG7hW0sIHbDoCB0w6FjIMSR4buZbmcgY+G7p2Egw7Qgbmhp4buFbSBraMO0bmcga2jDrSDEkeG7kWkgduG7m2kgc+G7qWMga2jhu49lIGPhu5luZyDEkeG7k25nLg0KDQpUcm9uZyBz4buRIGPDoWMgbmd1ecOqbiBuaMOibiDhuqNuaCBoxrDhu59uZyDEkeG6v24gY2jhuqV0IGzGsOG7o25nIGtow7RuZyBraMOtIHThuqFpIFNlb3VsLCBjw6FjIGhv4bqhdCDEkeG7mW5nIGPhu6dhIGNvbiBuZ8aw4budaSBjaGnhur9tIHBo4bqnbiBs4bubbiwgYmFvIGfhu5NtIGdpYW8gdGjDtG5nLCBjw7RuZyBuZ2hp4buHcCwgdsOgIHPhu7Egc+G7rSBk4bulbmcgbmhpw6puIGxp4buHdSBow7NhIHRo4bqhY2ggY2hvIHZp4buHYyBzxrDhu59pIOG6pW0gdsOgIHPhuqNuIHh14bqldC4gTmdvw6BpIHJhLCBjw6FjIHnhur91IHThu5EgdOG7sSBuaGnDqm4gbmjGsCDEkWnhu4F1IGtp4buHbiB0aOG7nWkgdGnhur90LCDEkeG7i2EgaMOsbmggY8WpbmcgxJHDs25nIHZhaSB0csOyIHF1YW4gdHLhu41uZyB0cm9uZyBxdcOhIHRyw6xuaCB4w6FjIMSR4buLbmggY2jhuqV0IGzGsOG7o25nIGtow7RuZyBraMOtLg0KDQpN4bq3YyBkw7kgxJHDoyBwaOG6o2kgxJHhu5FpIG3hurd0IHbhu5tpIG5oaeG7gXUgYmnhur9uIMSR4buZbmcsIGNow61uaCBwaOG7pyBIw6BuIFF14buRYyBjw7luZyBuZ8aw4budaSBkw6JuIMSRw6MgdGnhur9uIGjDoG5oIGPDoWMgYmnhu4duIHBow6FwIG3hu5l0IGPDoWNoIHThuq1uIHTDom0gxJHhu4MgZHV5IHRyw6wgbeG7qWMgxJHhu5kgY2jhuqV0IGzGsOG7o25nIGtow7RuZyBraMOtIOG7nyBt4bupYyB04buRdC4gU+G7sSB0aMOgbmggY8O0bmcgY+G7p2EgSMOgbiBRdeG7kWMgxJHDoyB0cuG7nyB0aMOgbmggbeG7mXQgbmd14buTbiDEkeG7mW5nIHZpw6puIHbDoCBo4buNYyBo4buPaSBxdcO9IGLDoXUgY2hvIG5oaeG7gXUgcXXhu5FjIGdpYSBjaMOidSDDgSwgYmFvIGfhu5NtIGPhuqMgVmnhu4d0IE5hbS4gxJBp4buBdSBuw6B5IGzDoCBt4buZdCDEkWnhu4NtIHPDoW5nIG3DoCBjaMO6bmcgdGEgY+G6p24gdGnhur9wIHThu6VjIGjhu41jIGjhu49pIHbDoCDDoXAgZOG7pW5nIHbDoG8gdmnhu4djIGPhuqNpIHRoaeG7h24gY2jhuqV0IGzGsOG7o25nIGtow7RuZyBraMOtIHThuqFpIHF1w6ogbmjDoC4NCg0KIyAqKlYuIFTDgEkgTEnhu4ZVIFRIQU0gS0jhuqJPKioNCg0KWzFdIFjhur9wIEjhuqFuZyBDaOG7iSBT4buQIENo4bqldCBMxrDhu6NuZyBLaMO0bmcgS2jDrSAoQVFJKSB0aOG6vyBnaeG7m2kuIElRQWlyLiAoMjAyNCwgSmFudWFyeSAxMikuIGh0dHBzOi8vd3d3LmlxYWlyLmNvbS92aS93b3JsZC1haXItcXVhbGl0eS1yYW5raW5nIA0KDQpbMl0gYmFvdGludHVjLnZuLiAoMjAxOSwgQXByaWwgMSkuIE3huq10IMSR4buZIELhu6VpIFNpw6p1IG3hu4tuIOG7nyBTZW91bCwgSMOgbiBRdeG7kWMgQ2jhuqFtIE5nxrDhu6FuZyBr4bu3IEzhu6VjLiBCw6FvIHRpbiB04bupYy4gaHR0cHM6Ly9iYW90aW50dWMudm4vdGhlLWdpb2kvbWF0LWRvLWJ1aS1zaWV1LW1pbi1vLXNlb3VsLWhhbi1xdW9jLWNoYW0tbmd1b25nLWt5LWx1Yy0yMDE5MDQwMTEzNDQxNjI1OS5odG0gDQoNClszXSBUaOG7pyDEkcO0IFNlb3VsIFRp4bq/cCB04bulYyBjaMOsbSBUcm9uZyDDlCBuaGnhu4VtIGLhu6VpIG3hu4tuLiBCw6FvIE5ow6JuIETDom4gxJFp4buHbiB04butLiAoMjAxOSwgRGVjZW1iZXIgMTEpLiBodHRwczovL25oYW5kYW4udm4vdGh1LWRvLXNlb3VsLXRpZXAtdHVjLWNoaW0tdHJvbmctby1uaGllbS1idWktbWluLXBvc3QzNzk3NTEuaHRtbCANCg0KWzRdIEJhb2RpZW50dXZ0di4gKDIwMTksIERlY2VtYmVyIDExKS4gSMOgbiBRdeG7kWMgQ+G6o25oIELDoW8gw5Qgbmhp4buFbSBkbyBC4bulaSBt4buLbi4gQkFPIERJRU4gVFUgVlRWLiBodHRwczovL3Z0di52bi92aWV0LW5hbS1ob20tbmF5L2hhbi1xdW9jLWNhbmgtYmFvLW8tbmhpZW0tZG8tYnVpLW1pbi0yMDE5MTIxMTE3NTQxMjQzNy5odG0gDQoNCls1XSDDgW5oLCBILiAoMjAyMSwgRGVjZW1iZXIgMjUpLiBHaeG6o20gdGhp4buDdSDDlCBuaGnhu4VtIGtow7RuZyBraMOtIMSRw7QgdGjhu4s6IE5ow6xuIFThu6og4oCcTOG7nWkgSOG7qWEgc2VvdWwu4oCdIELDoW8gS2luaCB04bq/IMSRw7QgdGjhu4sgLSDEkOG7jWMgdGluIHThu6ljIHRo4budaSBz4buxIGtpbmggdOG6vyAyNGggbeG7m2kgbmjhuqV0LiBodHRwczovL2tpbmh0ZWRvdGhpLnZuL2dpYW0tdGhpZXUtby1uaGllbS1raG9uZy1raGktZG8tdGhpLW5oaW4tdHUtbG9pLWh1YS1zZW91bC5odG1sIA0K