Link bộ dữ liệu: https://docs.google.com/spreadsheets/d/1kiN1EOK4Gja2HybIQUAGtioA1OwbESez/edit#gid=885482698

LỜI CẢM ƠN

Đầu tiên, em xin gửi lời cảm ơn chân thành đến Trường Đại học Tài chính - Marketing đã đưa môn học Phân tích dữ liệu định tính vào trương trình giảng dạy. Đặc biệt, em xin gửi lời cảm ơn sâu sắc đến giảng viên bộ môn - Thầy Trần Mạnh Tường đã dạy dỗ, truyền đạt những kiến thức quý báu cho em trong suốt thời gian học tập vừa qua. Trong thời gian tham gia lớp học Phân tích dữ liệu định tính của thầy, em đã có thêm cho mình nhiều kiến thức bổ ích, tinh thần học tập hiệu quả, nghiêm túc. Đây chắc chắn sẽ là những kiến thức quý báu, là hành trang để em có thể vững bước sau này.

Bộ môn Phân tích dữ liệu định tính là môn học thú vị, vô cùng bổ ích và có tính thực tế cao. Đảm bảo cung cấp đủ kiến thức, gắn liền với nhu cầu thực tiễn của sinh viên. Tuy nhiên, do vốn kiến thức còn nhiều hạn chế và khả năng tiếp thu thực tế còn nhiều bỡ ngỡ. Mặc dù em đã cố gắng hết sức nhưng chắc chắn bài tiểu luận khó có thể tránh khỏi những thiếu sót và nhiều chỗ còn chưa chính xác, kính mong thầy xem xét và góp ý để bài tiểu luận của em được hoàn thiện hơn.

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

LỜI MỞ ĐẦU

1. Lý do chọn đề tài

Trong bối cảnh ngày nay, tình hình hoạt động của ngành hàng không Việt phát triển nhanh và tăng cao đột biến, theo báo cáo của Hiệp hội vận tải hàng không quốc tế (IATA), Việt Nam được ghi nhận là một trong những thị trường hàng không có tốc độ tăng trưởng hàng năm nhanh nhất thế giới, cao hơn tốc độ trung bình của khu vực châu Á – Thái Bình Dương. Tỷ trọng vận tải hành khách qua đường hàng không tăng gấp hơn 2 lần từ mức 0,5% trong năm 2009 lên mức 1,2 % trong năm 2019.

Đối với ngành hàng không Việt Nam hiện tại, trên thị trường hàng không Việt Nam có sự tham gia cung cấp dịch vụ vận chuyển hành khách của 5 hãng hàng không bao gồm Tổng công ty Hàng Không Việt Nam (Vietnamairlines), Tổng công ty cổ phần hàng không Vietjet (Vietjet Air), Công ty cổ phần hàng không Tre Việt(Bamboo Airways), Công ty cổ phần hàng không Pacific (Pacific Airlines), công ty Bay dịchvụ hàng không Việt Nam (VASCO) với mô hình kinh doanh khác nhau hướng đến các đối tượng khách hàng khác nhau, chất lượng dịch vụ vận chuyển hàng không là đa dạng và không giống nhau. Chính vì thế đã xảy ra sự cạnh tranh không hề nhỏ giữa các hãng hàng không không về giá vé, dịch vụ… để giành thị phần về mình.

Vậy để tồn tại, sống sót và giữ vững hệ số ghế (load-factor) cũng như thị phần hàng không, vấn đề nghiên cứu và đưa ra các giải pháp làm thỏa mãn sự hài lòng của khách hàng là rất cấp bách và cần thiết. Tìm hiểu những yếu tố quyết định đến sự hài lòng của khách hàng chính là cơ sở để các hãng hàng không phát huy khả năng vốn có của hãng, đồng thời tạo ra lợi thế cạnh tranh trên thị trường hàng không đang cạnh tranh gay gắt như hiện nay. Thông qua đó, các hãng hàng không sẽ có những chiến lược phù hợp, góp phần thúc đẩy hoạt động kinh doanh hiệu quả.

Nhận thấy được tầm quan trọng này, tác giả tiến hành thực hiện đề tài “Các nhân tố ảnh hưởng đến sự hài lòng của khách hàng đối với dịch vụ trên chuyến bay”. Nghiên cứu này sẽ chỉ ra được mức độ hài lòng của khách hàng khi sử dụng dịch vụ trên chuyến bay nghiên cứu sẽ đề xuất cho lãnh đạo của hãng hàng không có thêm những chiến lược phù hợp cụ thể để chiếm lĩnh thị phần hàng không, gia tăng mức độ hài lòng, thu hút khách hàng.

2. Mục tiêu nghiên cứu

  • Mục tiêu chung:

Làm rõ cơ sở lý luận, thực tiễn của hoạt động nghiên cứu các yếu tố ảnh hưởng đến sự hài lòng của khách hàng đối với dịch vụ trên chuyến bay

  • Mục tiêu cụ thể

Xác định các yếu tố ảnh hưởng đến sự hài lòng của khách hàng đối với dịch vụ trên chuyến bay.

Đo lường mức độ ảnh hưởng của từng yếu tố đến sự hài lòng của khách hàng đối với dịch vụ trên chuyến bay.

Phân tích và đánh giá thực trạng, tìm ra những thuận lợi và khó khăn trong quá trình thực hiện nghiên cứu sự hài lòng của khách hàng đối với dịch vụ trên chuyến bay dưới vai trò hành khách.

Đề xuất các giải pháp nhằm chiếm lĩnh thị phần hàng không, gia tăng mức độ hài lòng, thu hút khách hàng cho hãng hàng không.

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

Các nhân tố ảnh hưởng đến sự hài lòng của khách hàng đối với dịch vụ trên chuyến bay.

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

Phương pháp xử lý số liệu bằng thống kê toán học: Để nắm vững thông tin và số liệu liên quan đến sự hài lòng của khách hàng đối với hãng hàng không, tác giả sẽ tiến hành một quá trình phân tích số liệu bằng phương pháp thống kê toán học. Các thông số liên quan đến tần suất, phân bố, độ tương quan và độ tương tác giữa các biến sẽ được tính toán. Phần mềm R - một công cụ mạnh mẽ và phổ biến trong lĩnh vực thống kê và xử lý dữ liệu - sẽ hỗ trợ quá trình này. Việc sử dụng phần mềm R sẽ đảm bảo tính chính xác và đáng tin cậy trong việc phân tích số liệu.

Phương pháp dữ liệu định tính

5. Ý nghĩa của đề tài:

Ý nghĩa khoa học: Bài nghiên cứu góp phần bổ sung thêm bằng chứng thực nghiệm về các yếu tố ảnh hưởng đến sự hài lòng của khách hàng đối với dịch vụ trên chuyến bay.

Ý nghĩa thực tiễn: Kết luận giúp cho các hãng hàng không có cái nhìn chiến lược hơn khi phân tích từ đó đề xuất các giải pháp nhằm chiếm lĩnh thị phần hàng không, gia tăng mức độ hài lòng, thu hút khách hàng ngày càng một lớn mạnh và tìm kiếm được lợi nhuận. Đề tài này cũng có thể là tài liệu tham khảo cho các nghiên cứu trong tương lai về các yếu tố ảnh hưởng đến sự hài lòng của khách hàng đối với dịch vụ trên chuyến bay.

6. Kết cấu đề tài

Phần mở đầu

Chương 1. Tổng quan lý thuyết

Chương 2. Phương pháp nghiên cứu

Chương 3. Thống kê mô tả cho các biên

Chương 4. Mô hình hồi quy

Chương 5: Kết luận và kiến nghị

library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.3.1
library(scales)
## Warning: package 'scales' was built under R version 4.3.1
library(dplyr)
## Warning: package 'dplyr' was built under R version 4.3.1
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library(tidyverse)
## Warning: package 'tidyverse' was built under R version 4.3.1
## Warning: package 'tidyr' was built under R version 4.3.1
## Warning: package 'readr' was built under R version 4.3.1
## Warning: package 'purrr' was built under R version 4.3.1
## Warning: package 'forcats' was built under R version 4.3.1
## Warning: package 'lubridate' was built under R version 4.3.1
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ forcats   1.0.0     ✔ stringr   1.5.0
## ✔ lubridate 1.9.2     ✔ tibble    3.2.1
## ✔ purrr     1.0.1     ✔ tidyr     1.3.0
## ✔ readr     2.1.4
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ readr::col_factor() masks scales::col_factor()
## ✖ purrr::discard()    masks scales::discard()
## ✖ 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
library(tidyselect)
## Warning: package 'tidyselect' was built under R version 4.3.1
library(epitools)
library(DescTools)
## Warning: package 'DescTools' was built under R version 4.3.1
library(caTools)
## Warning: package 'caTools' was built under R version 4.3.1
library(tidytext)
## Warning: package 'tidytext' was built under R version 4.3.1
library(readxl)
DL <- read_excel("C:/Users/Abc/Downloads/DL.xlsx")
View(DL)
DL
## # A tibble: 25,976 × 8
##    Gender Customer            Age Travel          Class       IS  DDIM SF       
##    <chr>  <chr>             <dbl> <chr>           <chr>    <dbl> <dbl> <chr>    
##  1 Female Loyal Customer       52 Business travel Eco          5    50 satisfied
##  2 Female Loyal Customer       36 Business travel Business     4     0 satisfied
##  3 Male   disloyal Customer    20 Business travel Eco          2     0 neutral …
##  4 Male   Loyal Customer       44 Business travel Business     1     0 satisfied
##  5 Female Loyal Customer       49 Business travel Eco          2     0 satisfied
##  6 Male   Loyal Customer       16 Business travel Eco          2     0 satisfied
##  7 Female Loyal Customer       77 Business travel Business     5     0 satisfied
##  8 Female Loyal Customer       43 Business travel Business     4    77 satisfied
##  9 Male   Loyal Customer       47 Business travel Eco          3     1 satisfied
## 10 Female Loyal Customer       46 Business travel Business     4    28 satisfied
## # ℹ 25,966 more rows
Gender<-DL$Gender
Travel<-DL$Travel
Customer<-DL$Customer
Class<-DL$Class
SF<-DL$SF
Age<-DL$Age
IS<-DL$IS
DDIM<-DL$DDIM

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

1.1 Khái niệm về dịch vụ

Có rất nhiều định nghĩa về dịch vụ hiện nay, tuy nhiên theo tác giả có thể hiểu sản phẩm dịch vụ là một loại sản phẩm kinh tế đặc biệt, có tính phi vật chất, vô hình. Trái ngược ới nó là sản phẩm hàng hóa là sản phẩm mà chúng ta có thể chạm vào, sờ vào trực tiếp được.

Philip Kotler đã định nghĩa dịch vụ: “Dịch vụ là một hoạt động hay lợi ích cung ứng nhằm để trao đổi, chủ yếu là vô hình và không dẫn đến việc chuyển quyền sở hữu. Việc thực hiện dịch vụ thể gắn liền hoặc không gắn liền với sản phẩm vật chất”.

Theo C.Mác cho rằng: “Dịch vụ là con đẻ của nền kinh tế sản xuất hàng hóa, khi mà kinh tế hàng hóa phát triển mạnh, đòi hỏi một sự lưu thông thông suốt, trôi chảy, liên tục đểthoả mãn nhu cầu ngày càng cao đó của con người thì dịch vụ ngày càng phát triển”.

Một số định nghĩa khác về dịch vụ: “Dịch vụ là hoạt động hoặc kết quả được một bênthực hiện hoặc cung cấp cho một bên khác. Mặc dù quá trình có thể là phải gắn liền với mộtsản phẩm hữu hình, kết quả thực hiện chỉ diễn ra trong một khoảng thời gian nhất định, vôhình và thường không tạo ra sự thay đổi nào về sự sở hữu các yếu tố sản xuất”.

Dịch vụ là hoạt động kinh tế mà tạo ra giá trị và cung cấp các lợi ích cho các khách hàng một thời gian địa điểm cụ thể bằng cách đem tới sự thay đổi được mong đợi ở người tiếp nhận dịch vụ hoặc bên đại diện cho người tiếp nhận dịch vụ

Như vậy, có thể hiểu dịch vụ là hoạt động tạo ra giá trị nhằm thỏa mãn nhu cầu của khách hàng, khác với việc tạo ra sản phẩm vật chất (có tính hữu hình), dịch vụ tạo ra các giá trịp ứng nhu cầu của khách hàng đóng góp cho sự phát triển của xã hội.

1.2 Dịch vụ trên chuyến bay cho hành khách của hãng hàng không

Là dịch vụ mà khách hàng được tận hưởng, trải nghiệm khi chuyến bay đang bay.Tính từ thời điểm cửa ra máy bay được đóng lại tại sân bay đi đến thời điểm cửa ra máy bayđược mở ra tại sân bay đến. Dịch vụ trên chuyến bay sẽ bao gồm nhiều thành phần gồm có:

  1. Tiện nghi trên máy bay: sự thoải mái, rộng rãi, sạch sẽ của ghế ngồi, các trang thiết bịgiải trí trên ghế ngồi, sự rộng rãi của chỗ để chân, không khí thoáng mát, thơm tho trong khoang hành khách, sạch sẽ, thơm tho của buồng vệ sinh. Các chươngtrình giải trí như xem phim trên FPT PLAY với kho phim các thể loại, hệ thống kết nốiinternet không dây trên máy bay (WIFE) (Wireless inflight entertainment system). Có màn hình trình chiếu các chương trình phim giúp khách hàng thư giãn, có màn hìnhthông báo hành trình của tàu bay để khách hàng nắm được tàu bay đang ở đâu. Cótrang bị màn hình chơi game, khách có thể chơi điện tử trong suốt hành trình bay.

  2. Đảm bảo các tiêu chuẩn an toàn trong phòng chống dịch Covid: Có thảm để khách chùi sát khuẩn trước khi vào máy bay, có trang bị nước rửa tay khô để khách rửa tay khi vào máy bay, trang bị hệ thống màn lọc không khí hiệu suất cao (HEPA –High Efficiency Particulate Air) (tấm lọc HEPA có thể chặn bụi, phấn hoa tế bào dangười, virus và vi khuẩn tốt hơn nhiều so với tấm lọc mỏng thông thường), trang bịkhăn giấy ướt tẩm cồn 90 độ để sát khuẩn tay cho hành khách, sử dụng nước uống đóng chai thay vì phát nước uống trực tiếp trong cốc cho khách.

  3. Thái độ của tiếp viên hàng không: tính nghiêm túc và chuyên nghiệp khi phục vụ, thái độ thân thiện và chân thành, sự nhã nhặn và lịch sự, sự nhiệt tình chu đáo, diện mạo xinh xắn trang phục gọn gàng sạch sẽ đúng quy chuẩn của hãng, yếu tố nhiệt tình và tính sãn sàng khi khách hàng có nhu cầu.

  4. Nghiệp vụ phục vụ của tiếp viên hàng không và tổ lái: cách phát âm, sự trôi chảy, sự rõ ràng, dễ hiểu khi tiếp viên đọc các thông báo và thông tin chuyến bay đến hành khách. Cung cấp đầy đủ thông tin và có sự chia sẻ kết nối với khách hàng, Tổ lái điều khiển máy bay cấp các thông tin thêm về chuyến bay (nhiệt độ tại sân bay đến,độ cao,

  5. Tiêu chuẩn dịch vụ trên không: Hãng hàng không phải đảm bảo các dịch vụ theo đúng như hợp đồng ghi trên vé (bao gồm các suất ăn trên tàu bay, nước uống trên tàu bay).Các dịch vụ ăn uống trên tàu bay, bán hàng lưu niệm (móc khóa, tạp chí, áo thun…).Liên quan đến chất lượng các loại đồ uống và món ăn, sự phong phú và đa dạng vềcác loại đồ uống và món ăn

  6. Tiêu chuẩn về sách báo tạp chí: Bao gồm các loại tạp chí sách báo giấy như báo ThanhNiên, Tuổi Trẻ, tạp chí Heritage, tạp chí du lịch. Khách có thể lấy về chỗ mình để đọctrong lúc máy bay bay bằng

1.3 Khái niệm về sự hài lòng

Qua quá trình tìm hiểu và nghiên cứu, có khá nhiều định nghĩa về sự hài lòng của khách hàng, cũng như định nghĩa về chất lượng dịch vụ, nhiều chuyên gia trong và ngoạinước cũng có định nghĩa khác nhau về sự hài lòng.Theo Hansemark và Albinsson (2004), “Sự hài lòng của khách hàng là một thái độ tổng thể của khách hàng đối với một nhà cung cấp dịch vụ, hoặc một cảm xúc phản ứng với sự khác biệt giữa những gì khách hàng dự đoán trước và những gì họ tiếp nhận, đối với sự đáp ứng một số nhu cầu, mục tiêu hay mong muốn”.Theo Philip Kotler, “Sự hài lòng của khách hàng (Customer satisfaction) là mức độ trạng thái cảm giác của một người bắt nguồn từ việc so sánh kết quả thu được từ việc tiêu dùng sản phẩm/dịch vụ với những kỳ vọng của chính họ. Mức độ hài lòng phụ thuộc sự khác biệt giữa kết quả nhận được và sự kỳ vọng, nếu kết quả thực tế thấp hơn sự kỳ vọng thì khách hàng không hài lòng, nếu kết quả thực tế tương xứng với sự kỳ vọng thì khách hàng sẽ hài lòng, nếu kết quả thực tế cao hơn sự kỳ vọng thì khách hàng rất hài lòng”.

Trong cuốn sách “Marketing Metrics” của mình, Paul Farris (2010) đã định nghĩa sự hài lòng của khách hàng như sau: “một số lượng khách hàng hay tỷ lệ phần trăm trên tổng số khách hàng có trải nghiệm đối với sản phẩm/dịch vụ vượt trội so với chỉ tiêu hài lòng được đặt ra trong báo cáo của doanh nghiệp”. Theo Zeithaml & Bitner (2000), sự hài lòng của khách hàng là sự đánh giá của khách hàng về một sản phẩm hay một dịch vụ đã đáp ứng được nhu cầu và mong đợi của họ.Vậy tóm lại, sự hài lòng của khách hàng đối với sản phẩm dịch vụ có thể hiểu đó là cảm giác chủ quan của khách hàng khi đánh giá về một sản phẩm dịch vụ mà khách hàngđược trải nghiệm, sự hài lòng này bị chi phối bởi sự kỳ vọng và kết quả nhận được từ dịchvụ, nếu khách hàng kỳ vọng quá cao so với dịch vụ khách thực nhận thì khách sẽ rất khônghài lòng hoặc ngược lại. Thêm nữa, sự kỳ vọng của khách hàng chịu sự tác động chi phối củasự quảng cáo, sự truyền miệng từ khách hàng khác đã trải nghiệm, kinh nghiệm tích lũy của hách hàng về những sản phẩm tương tự. Khách hàng sẽ đặt ra cho mình một kỳ vọng nhấtđịnh trước khi sử dụng sản phẩm và đem nó so sánh với những trải nghiệm và giá trị thực tế mà họ nhận được. Từ đó sẽ có những cảm nhận mang tính chủ quan, thích hay không thích, hài lòng hay không hài lòng.

1.4 Quan hệ giữa chất lượng dịch vụ vận tải hành khách hãng hàng không và sự thỏa mãn của khách hàng

Các nghiên cứu của Chow & Luk, 2005; Ahmad & Samreen, 2011, các tác giả đã chỉ ra rằng mối quan hệ giữa chất lượng dịch vụ và sự thỏa mãn của khách hàng là mối quan hệ tỷ lệ thuận. Đặc biệt đối với ngành dịch vụ vận tải hàng không, chấtlượng dịch vụ càng cao, khách hàng càng cảm thấy hài lòng thỏa mãn.

Theo Skytrax (tổ chức đánh giá và xếp hạng các hãng hàng không) đã chỉ ra rằng chất lượng dịch vụ vận tải hành khách hàng không là yếu tố tiên quyết để làm cho khách hàng cảm thấy thỏa mãn. Tổ chức này cũng đưa ra những bảng đánh giá cụ thể để phân loại các hãng hàng không đang hoạt động trên thế giới thành các hãng hàng không từ một đến năm sao. Mục tiêu của việc đánh giá xếp hạng là đưa tất cả các hãng hàng không về một thước đo quy chuẩn, từ đó đưa ra các chỉ dẫn để các hãng hàng không thay đổi và nâng cao chất lượng dịch vụ.

CHƯƠNG 2: PHƯƠNG PHÁP NGHIÊN CỨU

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

Đây là bộ dữ liệu về một cuộc khảo sát về sự hài lòng của hành khách đối với hãng hàng không. Bộ dữ liệu được lấy từ website: https://www.kaggle.com/datasets/teejmahal20/airline-passenger-satisfaction

Bộ dữ liệu nghiên cứu bao gồm 25977 quan sát với 8 biến bao gồm 2 biến định lượng và 6 biến định tính.

Trong đó:

+) Gender: Giới tính của hành khách (Female, Male)

+) Customer: Loại khách hàng (Loyal customer:Khách hàng trung thành, disloyal customer: khách hàng không trung thành)

+) Age: Tuổi thực tế của hành khách

+) Travel: Mục đích chuyến bay của hành khách (Personal Travel: Du lịch Cá nhân, Business Travel: Du lịch Công tác)

+) Class: Hạng du lịch trên máy bay của hành khách (Business: Thương gia, Eco, Eco Plus)

+) IS: Inflight service: Mức độ hài lòng về dịch vụ trên chuyến bay

+) DDIM: Departure Delay Minutes: Số phút bị trễ khi khởi hành

+) SF: Satisfaction: Mức độ hài lòng của hành khách đối với hãng hàng không (satisfied :Hài lòng, neutral or dissatisfied: bình thường hoặc không hài lòng)

library(readxl)
DL <- read_excel("C:/Users/Abc/Downloads/DL.xlsx")
View(DL)
DL
## # A tibble: 25,976 × 8
##    Gender Customer            Age Travel          Class       IS  DDIM SF       
##    <chr>  <chr>             <dbl> <chr>           <chr>    <dbl> <dbl> <chr>    
##  1 Female Loyal Customer       52 Business travel Eco          5    50 satisfied
##  2 Female Loyal Customer       36 Business travel Business     4     0 satisfied
##  3 Male   disloyal Customer    20 Business travel Eco          2     0 neutral …
##  4 Male   Loyal Customer       44 Business travel Business     1     0 satisfied
##  5 Female Loyal Customer       49 Business travel Eco          2     0 satisfied
##  6 Male   Loyal Customer       16 Business travel Eco          2     0 satisfied
##  7 Female Loyal Customer       77 Business travel Business     5     0 satisfied
##  8 Female Loyal Customer       43 Business travel Business     4    77 satisfied
##  9 Male   Loyal Customer       47 Business travel Eco          3     1 satisfied
## 10 Female Loyal Customer       46 Business travel Business     4    28 satisfied
## # ℹ 25,966 more rows

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

2.2.1 Mô hình nghiên cứu

  • Mô hình hồi quy với hàm logit

Mô hình hồi quy logistic là trường hợp đặc biệt của GLM. Thành phần ngẫu nhiên (thành công, thật bại) là nhị phân. Hàm liên kêt logit của π là phép biên đổi log [(π/ 1-π)]. ký hiệu bởi logit(π). Các mô hình hồi quy logistic thường được gọi là mô hình logit. Logit là tham số tự nhiên của phân phối nhị thức. Trong đó π bị giới hạn trong phạm vi (0, 1), logit có thê là sô thực bât kỳ. Tập sô thực cũng là khoảng giá trị có thê có cho các dự báo tuyên tính ( ø + πx), do đó, mô hình này không có vấn đề cầu trúc mà mô hình xác suất tuyến tính mắc phải.

Mô hình logistic mô tả sự phụ thuộc của biến đáp ứng thông qua xác suất “Thành công” π(x)=P(Y=1|X=x) ứng với mức x=(x1,x2,…,xm) của các biến giải thích phụ thuộc vào x=(x1,x2,…,xm) dưới dạng:

            log(π(x)/(1-π(x)) = β0+β1.x1+β2.x2+...+βm.xm
  • Mô hình hồi quy với hàm probit

Hồi quy Probit, đôi khi còn được gọi là mô hình Probit, được sử dụng. đề ước lượng mô hình có biến phụ thuộc dạng nhị phân. Trong hồi quy Probit, xem hàm xác suất π(x) hoặc 1 — π(x)) là hàm phân phối xác suất của một biến ngẫu nhiên X có phân phối chuẩn, tức là xác suất “Thành công”.

Mô hình Probit được viết dưới dạng:

            π(x1,x2,...,xm)=Φ(β0+β1x1+β2x2+...+βmxm

hay: Probi(π(x1,x2,…,xm))=β0+β1x1+β2x2+…+βmxm

trong đó ϕ là hàm phân phối chuẩn chính tắc:

  • Mô hình hồi quy với hàm cloglog

Trong trường hợp tỷ lệ cược phụ thuộc vào các biến giải thích dưới dạng hàm lũy thừa:

            Odds(x) = π(x)/(1-π(x) 

ta nhận được mô hình logistic có các biến dự báo ở dạng log, gọi là mô hình logistic dạng log-log

            log(π(x)/(1-π(x)) = β0+β1.logx1+β2.logx2+...+βm.logxm

2.2.2 Các tiêu chí đánh giá mô hình

  • Chỉ số AIC (Akaike Information Criterian)

AIC được đề xuất bởi Akaike Hirotugu, một nhà thống kê học người Nhật. AIC là một tiêu chí được sử dụng một cách phổ biến để đánh giá một mô hình hồi quy được ước lượng bởi phương pháp Maximum Likekihood (ML). Một cách chung chung giá trị của AIC càng nhỏ thì mô hình càng tốt. AIC được tính bằng công thức sau:

            AIC=−2ln(L)+2k

Với L là giá trị cực đại của hàm hợp lý (likelihood function) và k là số tham số của mô hình.

  • Chỉ số Deviance

Deviance cũng là một tiêu chí rất phổ biến được sử dụng để đánh giá một mô hình hồi quy được ước lượng bởi phương pháp Hợp lý cực đại (ML). Một cách tổng quá, cũng giống như chỉ tiêu AIC, giá trị của Deviance càng nhỏ thì mô hình càng tốt.

  • Chỉ số Brier

Chỉ số Brier thực chất là trung bỉnh của tổng bình phương các độ lệch giữa giá trị của biến phụ thuộc Y và giá trị ước lượng của nó. Vì vậy chỉ số B càng bé thì mô hình cho ước lượng càng chính xác, tức là càng phù hợp với dữ liệu quan sát.

  • Ma trận nhầm lẫn (Confusion matrix)

Là một phương pháp đánh giá kết quả của những bài toán phân loại với việc xem xét cả những chỉ số về độ chính xác và độ bao quát của các dự đoán cho từng lớp. Một confusion matrix gồm 4 chỉ số sau đối với mỗi lớp phân loại:

TP (True Positive): Số lượng dự đoán chính xác

TN (True Negative): Số lương dự đoán chính xác một cách gián tiếp

FP (False Positive - Type 1 Error): Số lượng các dự đoán sai lệch

FN (False Negative - Type 2 Error): Số lượng các dự đoán sai lệch một cách gián tiếp

Trong ma trận nhầm lẫn người ta xét các chỉ số:

+)Độ chính xác toàn thể (tỷ lệ dự báo đúng trên toàn bộ mẫu)

+)Sai số toàn thể (tỷ lệ dự báo sai trên mẫu)

+)Độ nhạy (Sensitivity) (tỷ lệ dự báo đúng trên tổng số các thành công được quan sát). Độ nhạy càng lớn càng tốt.

+)Sai số âm tính giả (Fale negative error)

+)Độ đặc hiệu (Specificity) Độ đặc hiệu càng lớn càng tốt. Một mô hình tốt là một mô hình có độ nhạy lớn và độ đặc hiệu lớn.

+)Sai số dương tính giả

CHƯƠNG 3: THỐNG KÊ MÔ TẢ CHO CÁC BIẾN

3.2 Thống kê mô tả cho từng biến định tính

3.2.1 Biến Travel (Mục đích chuyến bay của hành khách)

Travel là biến thể hiện Mục đích chuyến bay của hành khách, gồm 2 biểu hiện

table(DL$Travel)
## 
## Business travel Personal Travel 
##           18038            7938
table(DL$Travel)/sum(table(DL$Travel))
## 
## Business travel Personal Travel 
##       0.6944102       0.3055898
ggplot(map = aes(x=Travel, y= after_stat(count)))+geom_bar(fill = 'brown')+geom_text(aes(label=percent(after_stat(count/sum(count)),accuracy = .01)), stat = 'count', color = 'white',vjust = 4) + labs(tiltle = 'Độ thị thể hiện số lượng hành khách chia theo mục đích chuyến bay ', x = 'Mục đích chuyến bay của hành khách', y = 'số lượng hành khách')

Nhận xét: Trong 25976 hành khách được khảo sát có:

18038 hành khách đi chuyến bay với mục đích Business Travel: Du lịch Công tác , chiếm 69.44%.

7938 hành khách đi chuyến bay với mục đích Personal Travel: Du lịch Cá nhân,, chiếm 30.56%

Đồ thị cột thể hiện số hành khách được chia theo mục đích chuyến bay, có thể thấy có sự chênh lệch khá lớn vào khoảng 30% giữa mục đích chuyến bay của hành khách cá nhân và công tác.

3.2.2 Biến Gender (giới tính)

table(DL$Gender)
## 
## Female   Male 
##  13172  12804
table(DL$Gender)/sum(table(DL$Gender))
## 
##    Female      Male 
## 0.5070835 0.4929165
ggplot(map = aes(x = Gender, y = after_stat(count))) + geom_bar(fill = 'lightslategray') + geom_text(aes(label = scales::percent(after_stat(count/sum(count)), accuracy = 0.01)), stat = 'count', vjust = 5, color = 'pink')+ labs(title = 'Biểu đồ cột thể hiện số lượng hành khách theo giới tính', ylab = 'Số lượng hành khách', xlab = 'Giới tính')

Nhận xét: Trong 25976 hành khách được khảo sát có:

12804 hành khách thuộc giới tính nam (49,29%)

13172 hành khách thuộc giới tính nữ ( chiếm 50,71%)

Như vậy trong tổng số hành khách được khảo sát số hành khách có giới tính nữ nhiều hơn số học sinh có giới tính nam 368 người (khoảng 1,42% so với tổng hành khách).

3.2.3 Biến Customer (Loại khách hàng)

table(DL$Customer)
## 
## disloyal Customer    Loyal Customer 
##              4799             21177
table(DL$Customer)/sum(table(DL$Customer))
## 
## disloyal Customer    Loyal Customer 
##         0.1847475         0.8152525
ggplot(map = aes(x = Customer, y = after_stat(count))) + geom_bar(fill = 'lightpink') + geom_text(aes(label = scales::percent(after_stat(count/sum(count)), accuracy = 0.01)), stat = 'count', vjust = 5, color = 'darkblue')+ labs(title = 'Biểu đồ cột thể hiện số lượng hành khách theo loại khách hàng', ylab = 'Số lượng hành khách', xlab = 'Loại khách hàng')

Nhận xét: Trong 25976 hành khách được khảo sát có:

4799 hành khách thuộc loại disloyal customer: khách hàng không trung thành (18,47%)

21177 hành khách thuộc loạiloại Loyal customer:Khách hàng trung thành ( chiếm 81,53%)

Như vậy trong tổng số hành khách được khảo sát số hành khách trung thành nhiều hơn số hành khách không trung thành 16378 người (khoảng 63,05% so với tổng hành khách).

3.2.4 Biến Class (Hạng du lịch trên máy bay của hành khách )

table(DL$Class)
## 
## Business      Eco Eco Plus 
##    12495    11564     1917
table(DL$Class)/sum(table(DL$Class))
## 
##   Business        Eco   Eco Plus 
## 0.48102094 0.44518017 0.07379889
ggplot(map = aes(x = Class, y = after_stat(count))) + geom_bar(fill = 'salmon') + geom_text(aes(label = scales::percent(after_stat(count/sum(count)), accuracy = 0.01)), stat = 'count', vjust = 5, color = 'darkblue')+ labs(title = 'Biểu đồ cột thể hiện số lượng hành khách theo hạng du lịch trên máy bay', ylab = 'Số lượng hành khách', xlab = 'Hạng du lịch trên máy bay')

Nhận xét: Trong 25976 hành khách được khảo sát có:

12495 hành khách thuộc hạng Business: Thương gia trên máy bay (48,10%)

11564 hành khách thuộc hạng Eco (chiếm 44,52%)

1917 hành khách thuộc hạng Eco Plus (chiếm 7,38%)

Như vậy trong tổng số hành khách được khảo sát số hành khách trung thành nhiều hơn số hành khách không trung thành 16378 người (khoảng 63,05% so với tổng hành khách).

Nhìn vào đồ thị, ta có kết luận, trong tổng số 25976 hành khách được khảo sát, nhóm hành khách thuộc hạng Business: Thương gia trên máy bay là nhiều nhất (12495 người, chiếm 48,10%), theo sát là nhóm hành khách thuộc hạng Eco với 11564 hành khách chiếm 44,52%, thấp nhất là nhóm hành khách thuộc hạng Eco Pluss (1917 người, chiếm 7,38%). Như vậy ta thấy có sự chênh lệch lớn giữa số người thuộc hạng Business so với nhóm thuộc hạng Eco Pluss.

3.2.5 Biến SF: Satisfaction (Mức độ hài lòng của hành khách đối với hãng hàng không) (Hài lòng, bình thường hoặc không hài lòng)

table(DL$SF)
## 
## neutral or dissatisfied               satisfied 
##                   14573                   11403
table(DL$SF)/sum(table(DL$SF))
## 
## neutral or dissatisfied               satisfied 
##               0.5610179               0.4389821
ggplot(map = aes(x = SF, y = after_stat(count))) + geom_bar(fill = 'slategray') + geom_text(aes(label = scales::percent(after_stat(count/sum(count)), accuracy = 0.01)), stat = 'count', vjust = 5, color = 'darkblue')+ labs(title = 'Biểu đồ cột thể hiện số lượng hành khách theo mức độ hài lòng với hãng hàng không', ylab = 'Số lượng hành khách', xlab = 'Mức độ hài lòng')

Nhận xét: Trong 25976 hành khách được khảo sát có:

14573 hành khách neutral or dissatisfied: bình thường hoặc không hài lòng (56,10%)

11403 hành khách satisfied: hài lòng ( chiếm 43,9%)

Như vậy trong tổng số hành khách được khảo sát số hành khách có mức độ bình thường hoặc không hài lòng nhiều hơn số hành khách hài lòng 3170 người (khoảng 12,2% so với tổng hành khách).

3.2.6 Biến IS (Mức độ hài lòng về dịch vụ trên chuyến bay)

table(IS)
## IS
##    0    1    2    3    4    5 
##    2 1778 2851 5017 9378 6950
table(DL$IS)/sum(table(DL$IS))
## 
##            0            1            2            3            4            5 
## 7.699415e-05 6.844780e-02 1.097552e-01 1.931398e-01 3.610256e-01 2.675547e-01
ggplot(map = aes(x = DL$IS, y = after_stat(count))) + geom_bar(fill = 'slategray') + geom_text(aes(label = scales::percent(after_stat(count/sum(count)), accuracy = 0.01)), stat = 'count', vjust = 5, color = 'darkblue')+ labs(title = 'Biểu đồ cột thể hiện số lượng hành khách theo mức độ hài lòng với dịch vụ trên chuyến bay', ylab = 'Số lượng hành khách', xlab = 'Mức độ hài lòng')

Nhận xét: Trong 25976 hành khách được khảo sát có:

2 hành khách có mức độ hài lòng về dịch vụ trên chuyến bay là 0

1778 hành khách có mức độ hài lòng về dịch vụ trên chuyến bay là 1 (6,84%)

2851 hành khách có mức độ hài lòng về dịch vụ trên chuyến bay là 2 (10,98%)

5017 hành khách có mức độ hài lòng về dịch vụ trên chuyến bay là 3 (19,31%)

9378 hành khách có mức độ hài lòng về dịch vụ trên chuyến bay là 4 (36,1%)

6950 hành khách có mức độ hài lòng về dịch vụ trên chuyến bay là 4 (26,76%)

3.3 Thông kê mô tả nhóm biến định lượng

3.3.1 Biến Age (Tuổi thực tế của hành khách)

summary(DL$Age)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    7.00   27.00   40.00   39.62   51.00   85.00

Biến độ tuổi (age) là biến định lượng cho biết độ tuổi của hành khách trên chuyến bay. Thông qua kết quả trên ta thấy độ tuổi các hành khách trên chuyến bay nhỏ nhất là 7 tuổi, lớn nhất là 85 tuổi và độ tuổi trung bình của các bệnh nhân khoảng 39 tuổi. Tứ phân vị: là ba điểm cắt sẽ chia tập dữ liệu thành 4 nhóm có kích thước bằng nhau, cụ thể: Tứ phân vị thứ nhất (1st Qu.) = 27 Nghĩa là dưới 25% hành khách trên chuyến bay có độ tuổi nhỏ hơn 27 tuổi hay trên 75% số người nhập viện có độ tuổi lớn hơn 27 tuổi.

Tứ phân vị thứ hai (trung vị: Median) = 40 Nghĩa là dưới 50% số hành khách có số tuổi nhỏ hơn 40 hay trên 50% số hành khách có độ tuổi lớn hơn 40 tuổi.

Tứ phân vị thứ ba (3rd Qu.) = 51 Nghĩa là dưới 75% tổng số người nhập viện có độ tuổi nhỏ hơn 51 hay trên 25% số người nhập viện lớn hơn 51 tuổi.

Age <- DL$Age
table(cut(Age,3))
## 
## (6.92,33]   (33,59] (59,85.1] 
##      9364     14116      2496

Bảng tần số trên cho thấy có 9364 hành khách trên chuyến bay có độ tuổi trong khoảng từ 7 đến 33 tuổi; có 14116 hành khách trên chuyến bay có tuổi trong khoảng từ 33 đến 59 tuổi và có 2496 hành khách trên chuyến bay có số tuổi nằm trong khoảng từ 59 đến 85 tuổi.

hist(DL$Age, main = "Biểu đồ tần số của độ tuổi (age)",xlab = "Độ tuổi", ylab = "Số người", col = "lightblue")

Dựa vào biểu đồ tần số của biến độ tuổi (age) cho thấy không có quá nhiều sự chênh lệch về số lượng hành khách trên chuyến bay ứng với những độ tuổi khác nhau. Trong đó số lượng hành khách trên chuyến bay từ 20 tuổi đến 60 là nhiều nhất và số lượng hành khách trên chuyến bay trên 60 tuổi là ít nhất.

3.3.2 Biến DDIM (Departure Delay Minutes): Số phút bị trễ khi khởi hành

summary(DL$DDIM)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    0.00    0.00    0.00   14.31   12.00 1128.00

Biến DDIM (Departure Delay Minutes) là biến định lượng cho biết Số phút bị trễ khi khởi hành chuyến bay. Thông qua kết quả trên ta thấy Số phút bị trễ khi khởi hành trên chuyến bay của hành khách nhỏ nhất là 0 phút, lớn nhất là 1128 phút và trung bình Số phút bị trễ khi khởi hành trên chuyến bay của hành khách khoảng 14.31 phút. Tứ phân vị: là ba điểm cắt sẽ chia tập dữ liệu thành 4 nhóm có kích thước bằng nhau, cụ thể: Tứ phân vị thứ nhất (1st Qu.) = 0 Nghĩa là dưới 25% hành khách trên chuyến bay có Số phút bị trễ khi khởi hành nhỏ hơn 0 hay trên 75% hành khách trên chuyến bay có Số phút bị trễ khi khởi hành lớn hơn 0.

Tứ phân vị thứ hai (trung vị: Median) = 0 Nghĩa dưới 50% hành khách trên chuyến bay có Số phút bị trễ khi khởi hành nhỏ hơn 0 hay trên 50% hành khách trên chuyến bay có Số phút bị trễ khi khởi hành lớn hơn 0.

Tứ phân vị thứ ba (3rd Qu.) = 12 Nghĩa dưới 75% hành khách trên chuyến bay có Số phút bị trễ khi khởi hành nhỏ hơn 12 hay trên 25% hành khách trên chuyến bay có Số phút bị trễ khi khởi hành lớn hơn 12

hist(DL$DDIM, main = "Biểu đồ tần số của DDIM (Số phút bị trễ khi khởi hành)",xlab = "Số phút bị trễ khi khởi hành", ylab = "Số hành khách", col = "blue")

Thông qua biểu đồ tần số trên có thể thấy rằng Số phút bị trễ khi khởi hành của hành khách trên chuyến bay nhiều nhất là vào khoảng từ 0 - 100 phút và ít nhất là từ 200 phút trở lên.

3.4 Thống kê mô tả cho từng cặp biến

3.4.1 Thống kê mô tả biến phụ thuộc: IS và Giới tính (Gender)

3.4.1.1 Mã hoá biến định tính (IS: Inflight service) có 2 giá trị

Với dữ liệu gốc, biến Số điểm về mức độ hài lòng về dịch vụ trên chuyến bay (IS: Inflight service) là biến định tính nhận các giá trị từ 0 đến 5 điểm nên tác giả đã đặt quy ước về việc mã hoá biến (IS: Inflight service) như sau: Số điểm thấp (Thấp): Số điểm thấp từ trên 0 đến 3. Số điểm cao (Cao): Số điểm từ 3 đến 5.

IS <- cut(DL$IS, breaks = c(0,3,5), labels=c("Thấp","Cao"))
table(IS)
## IS
##  Thấp   Cao 
##  9646 16328

3.4.1.2 Bảng tần số, tần suất và biểu đồ

Gender <- DL$Gender
table(Gender)
## Gender
## Female   Male 
##  13172  12804

Bảng tần số:

a <- table(Gender, IS);a
##         IS
## Gender   Thấp  Cao
##   Female 5076 8095
##   Male   4570 8233

Bảng tần suất:

a1 <- prop.table(a);a1
##         IS
## Gender        Thấp       Cao
##   Female 0.1954262 0.3116578
##   Male   0.1759452 0.3169708

Phân phối biên:

addmargins(a)
##         IS
## Gender    Thấp   Cao   Sum
##   Female  5076  8095 13171
##   Male    4570  8233 12803
##   Sum     9646 16328 25974

Biểu đồ cột kết hợp 2 biến:

library(data.table)
## Warning: package 'data.table' was built under R version 4.3.1
## 
## Attaching package: 'data.table'
## The following object is masked from 'package:DescTools':
## 
##     %like%
## The following objects are masked from 'package:lubridate':
## 
##     hour, isoweek, mday, minute, month, quarter, second, wday, week,
##     yday, year
## The following object is masked from 'package:purrr':
## 
##     transpose
## The following objects are masked from 'package:dplyr':
## 
##     between, first, last
k <- data.frame(DL$Gender, DL$Travel, DL$Customer, DL$Class, DL$SF, DL$Age,DL$DDIM, DL$IS, IS, Gender)
k |> ggplot(aes(x=Gender,y=after_stat(count))) + geom_bar(fill="blue") + geom_text(aes(label = scales::percent(after_stat(count/sum(count)))), stat = "count", color = "red", vjust = - .5) + facet_grid(. ~IS) + labs(x = "Giới tính",y = "Số người")

Thông qua bảng tần số, tần suất trên của 2 biến Số điểm về mức độ hài lòng về dịch vụ trên chuyến bay và Giới tính ta thấy có 9646 hành khách có Số điểm về mức độ hài lòng về dịch vụ trên chuyến bay thấp (tức dưới 3 điểm) trong đó có 5076 người là nữ, chiếm tỉ lệ 19,54% tổng số hành khách và 4570 hành khách là nam, chiếm 17,59% tổng hành khách. Bên cạnh đó có 16328 hành khách có Số điểm về mức độ hài lòng về dịch vụ trên chuyến bay cao (trên 3 điẻm) trong đó có 8095 hành khách là nữ, chiếm 31,16% tổng số hành khách và 8233 người là nam, chiếm 31,69% tổng số hành khách. Số hành khách trên chuyên bay có Số điểm về mức độ hài lòng về dịch vụ trên chuyến bay thấp chỉ xấp xỉ khoảng 10% Số hành khách trên chuyên bay có Mức độ hài lòng về dịch vụ cao. Qua biểu đồ có thể thấy đối với những hành khách có Số điểm về mức độ hài lòng về dịch vụ trên chuyến bay thấp thì tỷ lệ nữ cao hơn nam nhưng đối với những hành khách có Số điểm về mức độ hài lòng về dịch vụ trên chuyến bay cao thì tỷ lệ nam lại nhiều hơn nữ.

3.4.1.3 Rủi ro tương đối (Risk ratio)

library(epitools)
riskratio(a)
## $data
##         IS
## Gender   Thấp   Cao Total
##   Female 5076  8095 13171
##   Male   4570  8233 12803
##   Total  9646 16328 25974
## 
## $measure
##         risk ratio with 95% C.I.
## Gender   estimate    lower    upper
##   Female 1.000000       NA       NA
##   Male   1.046281 1.026904 1.066023
## 
## $p.value
##         two-sided
## Gender    midp.exact fisher.exact   chi.square
##   Female          NA           NA           NA
##   Male   2.09737e-06 2.143568e-06 2.101154e-06
## 
## $correction
## [1] FALSE
## 
## attr(,"method")
## [1] "Unconditional MLE & normal approximation (Wald) CI"

Theo kết quả trên ta thấy tỉ lệ rủi ro tương đối (risk ratio) của những hành khách có Số điểm về mức độ hài lòng về dịch vụ trên chuyến bay cao theo giới tính là 1,046281 tức là tỉ lệ những hành khách có Số điểm về mức độ hài lòng về dịch vụ trên chuyến bay cao là nam gấp 1,046281 lần tỉ lệ những hành khách có Số điểm về mức độ hài lòng về dịch vụ trên chuyến bay cao là nữ.

Khi thêm tham số rev = “c” thì sẽ thực hiện việc đổi chỗ 2 cột trong bảng ngẫu nhiên:

riskratio(a, rev = "c")
## $data
##         IS
## Gender     Cao Thấp Total
##   Female  8095 5076 13171
##   Male    8233 4570 12803
##   Total  16328 9646 25974
## 
## $measure
##         risk ratio with 95% C.I.
## Gender    estimate     lower     upper
##   Female 1.0000000        NA        NA
##   Male   0.9261932 0.8972824 0.9560356
## 
## $p.value
##         two-sided
## Gender    midp.exact fisher.exact   chi.square
##   Female          NA           NA           NA
##   Male   2.09737e-06 2.143568e-06 2.101154e-06
## 
## $correction
## [1] FALSE
## 
## attr(,"method")
## [1] "Unconditional MLE & normal approximation (Wald) CI"

Theo kết quả trên ta thấy tỉ lệ rủi ro tương đối (risk ratio) của những hành khách có Số điểm về mức độ hài lòng về dịch vụ trên chuyến bay thấp theo giới tính là 0,9261932 tức là tỉ lệ hành khách có Số điểm về mức độ hài lòng về dịch vụ trên chuyến bay thấp là nam ít hơn và xấp xỉ bằng tỉ lệ những hành khách có Số điểm về mức độ hài lòng về dịch vụ trên chuyến bay cao là nữ.

3.4.1.4 Tỷ lệ chênh lệch (odd ratio)

epitab(a, method = "oddsratio")
## $tab
##         IS
## Gender   Thấp        p0  Cao        p1 oddsratio    lower    upper      p.value
##   Female 5076 0.5262285 8095 0.4957741  1.000000       NA       NA           NA
##   Male   4570 0.4737715 8233 0.5042259  1.129657 1.074151 1.188032 2.143568e-06
## 
## $measure
## [1] "wald"
## 
## $conf.level
## [1] 0.95
## 
## $pvalue
## [1] "fisher.exact"

Theo kết quả trên ta thấy tỉ lệ chênh (odd ratio) là 1,129657 tức tỉ lệ những hành khách có Số điểm về mức độ hài lòng về dịch vụ trên chuyến bay cao/những hành khách có Số điểm về mức độ hài lòng về dịch vụ trên chuyến bay thấp ở giới tính nam lớn hơn khoảng 12,97% so với tỉ lệ những hành khách có Số điểm về mức độ hài lòng về dịch vụ trên chuyến bay cao/những hành khách có Số điểm về mức độ hài lòng về dịch vụ trên chuyến bay thấp ở giới tính nữ.

Khi thêm tham số rev = “r” thì sẽ thực hiện việc đổi chỗ 2 dòng trong bảng ngẫu nhiên:

epitab(a, method = "oddsratio", rev = "r")
## $tab
##         IS
## Gender   Thấp        p0  Cao        p1 oddsratio     lower     upper
##   Male   4570 0.4737715 8233 0.5042259 1.0000000        NA        NA
##   Female 5076 0.5262285 8095 0.4957741 0.8852243 0.8417284 0.9309678
##         IS
## Gender        p.value
##   Male             NA
##   Female 2.143568e-06
## 
## $measure
## [1] "wald"
## 
## $conf.level
## [1] 0.95
## 
## $pvalue
## [1] "fisher.exact"

Theo kết quả trên ta thấy tỉ lệ chênh (odd ratio) là 0,8852243 tức tỉ lệ những hành khách có Số điểm về mức độ hài lòng về dịch vụ trên chuyến bay cao/những hành khách có Số điểm về mức độ hài lòng về dịch vụ trên chuyến bay thấp ở giới tính nữ chỉ bằng khoảng 88,52% tỉ lệ những hành khách có Số điểm về mức độ hài lòng về dịch vụ trên chuyến bay cao/những hành khách có Số điểm về mức độ hài lòng về dịch vụ trên chuyến bay thấp ở giới tính nam.

3.4.1.5 Thống kê suy diễn

Kiểm định tính độc lập cho 2 biến (IS) và (Gender):

Phương pháp chi bình phương: Giả thuyết Ho: IS và Gender độc lập

a <- table(DL$Gender, IS);a
##         IS
##          Thấp  Cao
##   Female 5076 8095
##   Male   4570 8233
chisq.test(a)
## 
##  Pearson's Chi-squared test with Yates' continuity correction
## 
## data:  a
## X-squared = 22.379, df = 1, p-value = 2.239e-06

Kết quả kiểm định trên cho thấy giá trị tới hạn P_value = 2.239e-06 < 5% vì vậy chưa có đủ cơ sở để thừa nhận giả thuyết Ho, nói cách khác giữa Số điểm về mức độ hài lòng về dịch vụ trên chuyến bay (IS) và giới tính (Gender) có liên quan tới nhau.

3.4.2 Thống kê mô tả biến phụ thuộc: IS với biến độc lập độ tuổi (Age)

3.4.2.1 Mã hoá biến độ tuổi (Age) từ định lượng sang định tính

Với dữ liệu gốc, biến độ tuổi (Age) là biến định lượng nhận các giá trị từ 7 đến 85 tuổi. Tác giả đặt quy ước về việc mã hoá biến (age) như sau: Tuổi nhóm trung niên (trungnien): độ tuổi từ trên 40 tuổi đến 85 tuổi. Tuổi nhóm thanh niên (thanhnien): độ tuổi từ trên 7 tuổi đến 40 tuổi.

Age <- cut(DL$Age, breaks = c(7,40,85), labels=c("thanhnien","trungnien"))
table(Age)
## Age
## thanhnien trungnien 
##     13189     12664

3.4.2.2 Bảng tần số, tần suất và biểu đồ

Bảng tần số:

b <- table(Age, IS); b
##            IS
## Age         Thấp  Cao
##   thanhnien 4732 8457
##   trungnien 4876 7786

Bảng tần suất:

b1 <- prop.table(b); b1
##            IS
## Age              Thấp       Cao
##   thanhnien 0.1830490 0.3271440
##   trungnien 0.1886194 0.3011876

Phân phối biên:

addmargins(b)
##            IS
## Age          Thấp   Cao   Sum
##   thanhnien  4732  8457 13189
##   trungnien  4876  7786 12662
##   Sum        9608 16243 25851

Biểu đồ cột kết hợp 2 biến:

m <- data.frame(DL$Gender, DL$Travel, DL$Customer, DL$Class, DL$SF, DL$Age, DL$DDIM, DL$IS, IS, Age)
m |> ggplot(aes(x=Age,y=after_stat(count))) + geom_bar(fill="green") + geom_text(aes(label = scales::percent(after_stat(count/sum(count)))), stat = "count", color = "blue", vjust = - .5) + facet_grid(. ~IS) + labs(x = "Độ tuổi",y = "Số người")

Thông qua bảng tần số, tần suất trên của 2 biến Số điểm về mức độ hài lòng về dịch vụ trên chuyến bay (IS) và độ tuổi ta thấy có 9608 hành khách có Số điểm về mức độ hài lòng về dịch vụ trên chuyến bay thấp (tức dưới 3 điểm) trong đó có 4732 hành khách nhóm tuổi thanh niên, chiếm tỉ lệ 18,3% tổng số hành khách và 4876 hành khách nhóm tuổi trung niên, chiếm tỉ lệ 18,86% tổng số hành khách. Bên cạnh đó có 16243 hành khách có Số điểm về mức độ hài lòng về dịch vụ trên chuyến bay cao (trên 3 điểm) trong đó có 8457 hành khách nhóm tuổi thanh niên, chiếm 32,71% tổng số hành khách và 7786 người nhóm tuổi trung niên, chiếm 30,12% tổng số hành khách. Qua biểu đồ có thể thấy đối với những hành khách có Số điểm về mức độ hài lòng về dịch vụ trên chuyến bay thấp thì tỷ lệ người thuộc nhóm tuổi thanh niên ít hơn những người thuộc nhóm tuổi trung niên nhưng đối với những hành khách có Số điểm về mức độ hài lòng về dịch vụ trên chuyến bay cao thì tỷ lệ nhóm tuổi thanh niên lại cao hơn nhóm tuổi trung niên, đối với từng mức độ hài lòng về dịch vụ trên chuyên bay thì mức độ chênh lệch giữa 2 nhóm tuồi này không quá lớn.

3.4.2.3 Rủi ro tương đối (Risk ratio)

epitab(b, method = "riskratio")
## $tab
##            IS
## Age         Thấp        p0  Cao        p1 riskratio     lower     upper
##   thanhnien 4732 0.3587838 8457 0.6412162 1.0000000        NA        NA
##   trungnien 4876 0.3850892 7786 0.6149108 0.9589758 0.9411273 0.9771627
##            IS
## Age              p.value
##   thanhnien           NA
##   trungnien 1.275542e-05
## 
## $measure
## [1] "wald"
## 
## $conf.level
## [1] 0.95
## 
## $pvalue
## [1] "fisher.exact"

Theo kết quả trên ta thấy tỉ lệ rủi ro tương đối (risk ratio) của hành khách có Số điểm về mức độ hài lòng về dịch vụ trên chuyến bay cao theo độ tuổi là 0,9589758 tức là tỉ lệ những hành khách có Số điểm về mức độ hài lòng về dịch vụ trên chuyến bay cao trong nhóm tuổi trung niên ít hơn và xấp xỉ bằng tỉ lệ những hành khách có Số điểm về mức độ hài lòng về dịch vụ trên chuyến bay cao trong nhóm tuổi thanh niên.

Khi thêm tham số rev = “c” thì sẽ thực hiện việc đổi chỗ 2 cột trong bảng ngẫu nhiên:

epitab(b, method = "riskratio", rev = "c")
## $tab
##            IS
## Age          Cao        p0 Thấp        p1 riskratio    lower    upper
##   thanhnien 8457 0.6412162 4732 0.3587838  1.000000       NA       NA
##   trungnien 7786 0.6149108 4876 0.3850892  1.073318 1.039826 1.107889
##            IS
## Age              p.value
##   thanhnien           NA
##   trungnien 1.275542e-05
## 
## $measure
## [1] "wald"
## 
## $conf.level
## [1] 0.95
## 
## $pvalue
## [1] "fisher.exact"

Theo kết quả trên ta thấy tỉ lệ rủi ro tương đối (risk ratio) của những hành khách có Số điểm về mức độ hài lòng về dịch vụ trên chuyến bay thấp theo độ tuổi là 1,073318 tức là tỉ lệ những hành khách có Số điểm về mức độ hài lòng về dịch vụ trên chuyến bay thấp trong nhóm tuổi trung niên gấp 1,073318 tỉ lệ những hành khách có mức độ hài lòng về dịch vụ trên chuyến bay thấp trong nhóm tuổi thanh niên.

3.4.2.4 Tỷ lệ chênh lệch (odd ratio)

epitab(b, method = "oddsratio")
## $tab
##            IS
## Age         Thấp        p0  Cao        p1 oddsratio     lower     upper
##   thanhnien 4732 0.4925062 8457 0.5206551 1.0000000        NA        NA
##   trungnien 4876 0.5074938 7786 0.4793449 0.8934682 0.8494937 0.9397191
##            IS
## Age              p.value
##   thanhnien           NA
##   trungnien 1.275542e-05
## 
## $measure
## [1] "wald"
## 
## $conf.level
## [1] 0.95
## 
## $pvalue
## [1] "fisher.exact"

Theo kết quả trên ta thấy tỉ lệ chênh (odd ratio) là 0.8934682 tức tỉ lệ những hành khách có Số điểm về mức độ hài lòng về dịch vụ trên chuyến bay cao/những hành khách có Số điểm về mức độ hài lòng về dịch vụ trên chuyến bay thấp ở nhóm tuỏi trung niên bằng khoảng 89,34% so với tỉ lệ Số điểm về mức độ hài lòng về dịch vụ trên chuyến bay cao/những hành khách có Số điểm về mức độ hài lòng về dịch vụ trên chuyến bay thấp ở nhóm tuổi thanh niên.

Khi thêm tham số rev = “r” thì sẽ thực hiện việc đổi chỗ 2 dòng trong bảng ngẫu nhiên:

epitab(b, method = "oddsratio", rev = "r")
## $tab
##            IS
## Age         Thấp        p0  Cao        p1 oddsratio    lower    upper
##   trungnien 4876 0.5074938 7786 0.4793449  1.000000       NA       NA
##   thanhnien 4732 0.4925062 8457 0.5206551  1.119234 1.064148 1.177172
##            IS
## Age              p.value
##   trungnien           NA
##   thanhnien 1.275542e-05
## 
## $measure
## [1] "wald"
## 
## $conf.level
## [1] 0.95
## 
## $pvalue
## [1] "fisher.exact"

Theo kết quả trên ta thấy tỉ lệ chênh (odd ratio) là 1,119234 tức tỉ lệ những hành khách có Số điểm về mức độ hài lòng về dịch vụ trên chuyến bay cao/ những hành khách có Số điểm về mức độ hài lòng về dịch vụ trên chuyến bay thấp ở nhóm tuổi thanh niên lớn hơn khoảng 11,92% so với tỉ lệ Số điểm về mức độ hài lòng về dịch vụ trên chuyến bay cao/ những hành khách có Số điểm về mức độ hài lòng về dịch vụ trên chuyến bay thấp ở nhóm tuổi trung niên.

3.4.2.5 Thống kê suy diễn

Kiểm định tính độc lập cho 2 biến (IS) và (Age):

Phương pháp chi bình phương: Giả thuyết Ho: IS và Age độc lập

b <- table(Age, IS);b
##            IS
## Age         Thấp  Cao
##   thanhnien 4732 8457
##   trungnien 4876 7786
chisq.test(b)
## 
##  Pearson's Chi-squared test with Yates' continuity correction
## 
## data:  b
## X-squared = 19.029, df = 1, p-value = 1.287e-05

Kết quả kiểm định trên cho thấy giá trị tới hạn P_value = 1.287e-05 < 5% vì vậy chưa có cơ sở để thừa nhận giả thuyết Ho, nói cách khác giữa Số điểm về mức độ hài lòng về dịch vụ trên chuyến bay và độ tuổi (Age) có liên quan tới nhau.

3.4.3 Thống kê mô tả biến phụ thuộc: IS với biến độc lập Số phút bị trễ khi khởi hành (DDIM)

3.4.3.1 Mã hoá biến Số phút bị trễ khi khởi hành (DDIM) từ định lượng sang định tính

Với dữ liệu gốc, biến Số phút bị trễ khi khởi hành (DDIM) là biến định lượng nhận các giá trị từ 0 đến 1128 phút. Tác giả đặt quy ước về việc mã hoá biến (DDIM) như sau: Nhóm nhỏ (nho): số phút trễ từ trên 0 phút đến 300 phút. Nhóm trễ (lon): số phút trễ từ trên 300 phút đến 1128 phút.

DDIM <- cut(DL$DDIM, breaks = c(0,300,1128), labels=c("nho","lon"))
table(DDIM)
## DDIM
##   nho   lon 
## 11233    55

3.4.3.2 Bảng tần số, tần suất và biểu đồ

Bảng tần số:

d <- table(DDIM, IS); d
##      IS
## DDIM  Thấp  Cao
##   nho 4342 6890
##   lon   30   25

Bảng tần suất:

d1 <- prop.table(d); d1
##      IS
## DDIM         Thấp         Cao
##   nho 0.384690352 0.610436786
##   lon 0.002657925 0.002214938

Phân phối biên:

addmargins(d)
##      IS
## DDIM   Thấp   Cao   Sum
##   nho  4342  6890 11232
##   lon    30    25    55
##   Sum  4372  6915 11287

Biểu đồ cột kết hợp 2 biến:

n <- data.frame(DL$Age, DL$Gender, DL$Travel, DL$Customer, DL$Class, DL$SF, DL$DDIM, DL$IS, IS, DDIM)
m |> ggplot(aes(x=DDIM,y=after_stat(count))) + geom_bar(fill="pink") + geom_text(aes(label = scales::percent(after_stat(count/sum(count)))), stat = "count", color = "blue", vjust = - .5) + facet_grid(. ~IS) + labs(x = "Số phút bị trễ khi khởi hành",y = "Số người")

Thông qua bảng tần số, tần suất trên của 2 biến Số điểm về mức độ hài lòng về dịch vụ trên chuyến bay và Số phút bị trễ khi khởi hành (DDIM) ta thấy có 4372 hành khách có Số điểm về mức độ hài lòng về dịch vụ thấp (tức dưới 3 điểm) trong đó có 4342 hành khách có Số điểm về mức độ hài lòng về dịch vụ thuộc nhóm nhỏ, chiếm tỉ lệ 38,47% tổng số hành khách và 30 hành khách nhóm lớn, chiếm tỉ lệ 0,27% tổng số hành khách. Bên cạnh đó có 6915 hành khách có Số điểm về mức độ hài lòng về dịch vụ ở mức cao (trên 3 điểm) trong đó có 6890 hành khách nhóm nhỏ, chiếm 61,04% tổng số hành khách và 25 người nhóm trễ, chiếm 0,22% tổng số hành khách. Trong tổng số hành khách trên chuyến bay thì tỉ lệ những hành khách có số phút bị trễ khi khởi hành thuộc nhóm nhỏ lớn hơn rất nhiều lần so với những hành khách có số phút bị trễ khi khởi hành thuộc nhóm lớn. Qua biểu đồ có thể thấy đối với những hành khách có số điểm về Mức độ hài lòng về dịch vụ cả cao và thấp thì tỷ lệ những hành khách có số phút bị trễ khi khởi hành thuộc nhóm nhỏ đều nhiều hơn những hành khách có số phút bị trễ khi khởi hành thuộc nhóm lớn , đối với từng mức độ hài lòng về dịch vụ trên chuyên bay thì mức độ chênh lệch giữa 2 nhóm này quá lớn.

3.4.3.3 Rủi ro tương đối (Risk ratio)

epitab(d, method = "riskratio")
## $tab
##      IS
## DDIM  Thấp        p0  Cao        p1 riskratio     lower    upper    p.value
##   nho 4342 0.3865741 6890 0.6134259 1.0000000        NA       NA         NA
##   lon   30 0.5454545   25 0.4545455 0.7409949 0.5545272 0.990165 0.01819294
## 
## $measure
## [1] "wald"
## 
## $conf.level
## [1] 0.95
## 
## $pvalue
## [1] "fisher.exact"

Theo kết quả trên ta thấy tỉ lệ rủi ro tương đối (risk ratio) của hành khách có số điểm về Mức độ hài lòng về dịch vụ cao theo Số phút bị trễ khi khởi hành là 0,7409949 tức là tỉ lệ những hành khách có số điểm về Mức độ hài lòng về dịch vụ cao trong nhóm Số phút bị trễ khi khởi hành lớn chỉ bằng 74,09% tỉ lệ những hành khách có số điểm về Mức độ hài lòng về dịch vụ cao trong nhóm Số phút bị trễ khi khởi hành nhỏ.

Khi thêm tham số rev = “c” thì sẽ thực hiện việc đổi chỗ 2 cột trong bảng ngẫu nhiên:

epitab(d, method = "riskratio", rev = "c")
## $tab
##      IS
## DDIM   Cao        p0 Thấp        p1 riskratio    lower    upper    p.value
##   nho 6890 0.6134259 4342 0.3865741  1.000000       NA       NA         NA
##   lon   25 0.4545455   30 0.5454545  1.410996 1.107294 1.797997 0.01819294
## 
## $measure
## [1] "wald"
## 
## $conf.level
## [1] 0.95
## 
## $pvalue
## [1] "fisher.exact"

Theo kết quả trên ta thấy tỉ lệ rủi ro tương đối (risk ratio) của những hành khách có số điểm về Mức độ hài lòng về dịch vụ thấp theo Số phút bị trễ khi khởi hành là 1,410996 tức là tỉ lệ những hành khách có số điểm về Mức độ hài lòng về dịch vụ thấp trong nhóm Số phút bị trễ khi khởi hành lớn lớn hơn gấp 1,410996 lần tỉ lệ những hành khách có số điểm về Mức độ hài lòng về dịch vụ thấp trong nhóm Số phút bị trễ khi khởi hành nhỏ.

3.4.2.4 Tỷ lệ chênh lệch (odd ratio)

epitab(d, method = "oddsratio")
## $tab
##      IS
## DDIM  Thấp          p0  Cao          p1 oddsratio     lower    upper    p.value
##   nho 4342 0.993138152 6890 0.996384671 1.0000000        NA       NA         NA
##   lon   30 0.006861848   25 0.003615329 0.5251572 0.3084562 0.894098 0.01819294
## 
## $measure
## [1] "wald"
## 
## $conf.level
## [1] 0.95
## 
## $pvalue
## [1] "fisher.exact"

Theo kết quả trên ta thấy tỉ lệ chênh (odd ratio) là 0,5251572 tức tỉ lệ những hành khách có số điểm về Mức độ hài lòng về dịch vụ thấp/những hành khách có số điểm về Mức độ hài lòng về dịch vụ cao ở nhóm lớn bằng khoảng 52,52% so với tỉ lệ số điểm về Mức độ hài lòng về dịch vụ thấp/những hành khách có số điểm về Mức độ hài lòng về dịch vụ cao ở nhóm nhỏ.

Khi thêm tham số rev = “r” thì sẽ thực hiện việc đổi chỗ 2 dòng trong bảng ngẫu nhiên:

epitab(d, method = "oddsratio", rev = "r")
## $tab
##      IS
## DDIM  Thấp          p0  Cao          p1 oddsratio    lower    upper    p.value
##   lon   30 0.006861848   25 0.003615329  1.000000       NA       NA         NA
##   nho 4342 0.993138152 6890 0.996384671  1.904192 1.118446 3.241951 0.01819294
## 
## $measure
## [1] "wald"
## 
## $conf.level
## [1] 0.95
## 
## $pvalue
## [1] "fisher.exact"

Theo kết quả trên ta thấy tỉ lệ chênh (odd ratio) là 1,904192 tức tỉ lệ những hành khách có số điểm về Mức độ hài lòng về dịch vụ cao/ những hành khách có số điểm về Mức độ hài lòng về dịch vụ thấp ở nhóm nhỏ lớn hơn khoảng 90,41% so với tỉ lệ số điểm về Mức độ hài lòng về dịch vụ cao/ những hành khách có số điểm về Mức độ hài lòng về dịch vụ thấp ở nhóm lớn.

3.4.3.5 Thống kê suy diễn

Kiểm định tính độc lập cho 2 biến (IS) và (DDIM):

Phương pháp chi bình phương: Giả thuyết Ho: IS và DDIM độc lập

d <- table(DDIM, IS);d
##      IS
## DDIM  Thấp  Cao
##   nho 4342 6890
##   lon   30   25
chisq.test(d)
## 
##  Pearson's Chi-squared test with Yates' continuity correction
## 
## data:  d
## X-squared = 5.1717, df = 1, p-value = 0.02296

Kết quả kiểm định trên cho thấy giá trị tới hạn P_value = 0.02296 < 5% vì vậy chưa có cơ sở để thừa nhận giả thuyết Ho, nói cách khác giữa số điểm Mức độ hài lòng về dịch vụ (IS) và Số phút bị trễ khi khởi hành (DDIM) có liên quan tới nhau.

3.4.4 Thống kê mô tả biến phụ thuộc: IS với biến độc lập Hạng du lịch trên máy bay của hành khách (Class)

3.4.4.1 Mã hoá biến Hạng du lịch trên máy bay của hành khách (Class) định tính có 2 giá trị

Với dữ liệu gốc, biến Hạng du lịch trên máy bay của hành khách (Class) là biến định tính nhận 3 giá trị: Business: Thương gia, Eco, Eco Plus. Tác giả đã đặt quy ước về việc mã hoá 2 giá trị biến (Class) như sau: Khách hàng thuộc hạng thương gia: Business. Khách hàng thuộc hạng Bình thường: Eco, Eco Plus.

p <- data.frame(DL$Age, DL$Gender, DL$Travel, DL$Customer, DL$Class, DL$SF, DL$DDIM, DL$IS, IS, DDIM, Age, Gender, Travel, Customer, Class, SF)
Class <- p %>% mutate(hang=case_when(DL$Class == "Business" ~ 1, DL$Class =="Eco" ~ 3, DL$Class =="Eco Plus" ~ 3))
Class <- cut(Class$hang, breaks = c(0,1,4), labels = c("thuonggia", "binhthuong"))
table(Class)
## Class
##  thuonggia binhthuong 
##      12495      13481

3.4.4.2 Bảng tần số, tần suất và biểu đồ

Bảng tần số:

v <- table(Class, IS); v
##             IS
## Class        Thấp  Cao
##   thuonggia  3560 8933
##   binhthuong 6086 7395

Bảng tần suất:

v1 <- prop.table(v); v1
##             IS
## Class             Thấp       Cao
##   thuonggia  0.1370601 0.3439208
##   binhthuong 0.2343112 0.2847078

Phân phối biên:

addmargins(v)
##             IS
## Class         Thấp   Cao   Sum
##   thuonggia   3560  8933 12493
##   binhthuong  6086  7395 13481
##   Sum         9646 16328 25974

Biểu đồ cột kết hợp 2 biến:

k <- data.frame(DL$Age, DL$Gender, DL$Travel, DL$Customer, DL$Class, DL$SF, DL$DDIM, DL$IS, IS, Class)
k |> ggplot(aes(x=Class,y=after_stat(count))) + geom_bar(fill="pink") + geom_text(aes(label = scales::percent(after_stat(count/sum(count)))), stat = "count", color = "blue", vjust = - .5) + facet_grid(. ~IS) + labs(x = "Hạng du lịch trên máy bay của hành khách",y = "Số người")

Thông qua bảng tần số, tần suất trên của 2 biến Số điểm về mức độ hài lòng về dịch vụ trên chuyến bay và Hạng du lịch trên máy bay của hành khách (Class) ta thấy có 9646 hành khách có Số điểm về mức độ hài lòng về dịch vụ thấp (tức dưới 3 điểm) trong đó có 6086 hành khách có Số điểm về mức độ hài lòng về dịch vụ thuộc nhóm bình thường (Eco, Eco Plus), chiếm tỉ lệ 23,4% tổng số hành khách và 3560 hành khách nhóm thương gia, chiếm tỉ lệ 13,7% tổng số hành khách. Bên cạnh đó có 16328 hành khách có Số điểm về mức độ hài lòng về dịch vụ ở mức cao (trên 3 điểm) trong đó có 7395 hành khách nhóm bình thường, chiếm 28,5% tổng số hành khách và 8933 người nhóm thương gia, chiếm 34,4% tổng số hành khách. Qua biểu đồ có thể thấy đối với những hành khách có số điểm về Mức độ hài lòng về dịch vụ cả thấp thì tỷ lệ những hành khách có Hạng du lịch trên máy bay thuộc nhóm bình thường nhiều hơn những hành khách có Hạng du lịch trên máy bay thuộc nhóm thương gia nhưng đối với những hành khách có số điểm về Mức độ hài lòng về dịch vụ cao thì tỷ lệ những hành khách có Hạng du lịch trên máy bay thuộc nhóm bình thường ít hơn những hành khách có Hạng du lịch trên máy bay thuộc nhóm thương gia , đối với từng mức độ hài lòng về dịch vụ trên chuyên bay thì mức độ chênh lệch giữa 2 nhóm này không quá lớn.

3.4.4.3 Rủi ro tương đối (Risk ratio)

epitab(v, method = "riskratio")
## $tab
##             IS
## Class        Thấp        p0  Cao        p1 riskratio     lower     upper
##   thuonggia  3560 0.2849596 8933 0.7150404 1.0000000        NA        NA
##   binhthuong 6086 0.4514502 7395 0.5485498 0.7671592 0.7527991 0.7817931
##             IS
## Class              p.value
##   thuonggia             NA
##   binhthuong 7.887711e-171
## 
## $measure
## [1] "wald"
## 
## $conf.level
## [1] 0.95
## 
## $pvalue
## [1] "fisher.exact"

Theo kết quả trên ta thấy tỉ lệ rủi ro tương đối (risk ratio) của hành khách có số điểm về Mức độ hài lòng về dịch vụ cao theo Hạng du lịch trên máy bay là 0.7671592 tức là tỉ lệ những hành khách có số điểm về Mức độ hài lòng về dịch vụ cao trong nhóm bình thường bằng khoảng 76,7% tỉ lệ những hành khách có số điểm về Mức độ hài lòng về dịch vụ cao trong nhóm thương gia.

Khi thêm tham số rev = “c” thì sẽ thực hiện việc đổi chỗ 2 cột trong bảng ngẫu nhiên:

epitab(v, method = "riskratio", rev = "c")
## $tab
##             IS
## Class         Cao        p0 Thấp        p1 riskratio    lower    upper
##   thuonggia  8933 0.7150404 3560 0.2849596   1.00000       NA       NA
##   binhthuong 7395 0.5485498 6086 0.4514502   1.58426 1.532168 1.638124
##             IS
## Class              p.value
##   thuonggia             NA
##   binhthuong 7.887711e-171
## 
## $measure
## [1] "wald"
## 
## $conf.level
## [1] 0.95
## 
## $pvalue
## [1] "fisher.exact"

Theo kết quả trên ta thấy tỉ lệ rủi ro tương đối (risk ratio) của những hành khách có số điểm về Mức độ hài lòng về dịch vụ thấp theo Hạng du lịch trên máy bay là 1.58426 tức là tỉ lệ những hành khách có số điểm về Mức độ hài lòng về dịch vụ thấp trong nhóm bình thường lớn hơn khoảng 58,43% tỉ lệ những hành khách có số điểm về Mức độ hài lòng về dịch vụ thấp trong nhóm thương gia.

3.4.4.4 Tỷ lệ chênh lệch (odd ratio)

epitab(v, method = "oddsratio")
## $tab
##             IS
## Class        Thấp        p0  Cao       p1 oddsratio     lower     upper
##   thuonggia  3560 0.3690649 8933 0.547097  1.000000        NA        NA
##   binhthuong 6086 0.6309351 7395 0.452903  0.484238 0.4598976 0.5098667
##             IS
## Class              p.value
##   thuonggia             NA
##   binhthuong 7.887711e-171
## 
## $measure
## [1] "wald"
## 
## $conf.level
## [1] 0.95
## 
## $pvalue
## [1] "fisher.exact"

Theo kết quả trên ta thấy tỉ lệ chênh (odd ratio) là 0.484238 tức tỉ lệ những hành khách có số điểm về Mức độ hài lòng về dịch vụ cao/những hành khách có số điểm về Mức độ hài lòng về dịch vụ thấp ở nhóm bình thường bằng khoảng 48,42% so với tỉ lệ số điểm về Mức độ hài lòng về dịch vụ cao/những hành khách có số điểm về Mức độ hài lòng về dịch vụ thấp ở nhóm thương gia.

Khi thêm tham số rev = “r” thì sẽ thực hiện việc đổi chỗ 2 dòng trong bảng ngẫu nhiên:

epitab(v, method = "oddsratio", rev = "r")
## $tab
##             IS
## Class        Thấp        p0  Cao       p1 oddsratio    lower    upper
##   binhthuong 6086 0.6309351 7395 0.452903    1.0000       NA       NA
##   thuonggia  3560 0.3690649 8933 0.547097    2.0651 1.961297 2.174397
##             IS
## Class              p.value
##   binhthuong            NA
##   thuonggia  7.887711e-171
## 
## $measure
## [1] "wald"
## 
## $conf.level
## [1] 0.95
## 
## $pvalue
## [1] "fisher.exact"

Theo kết quả trên ta thấy tỉ lệ chênh (odd ratio) là 2.0651 tức tỉ lệ những hành khách có số điểm về Mức độ hài lòng về dịch vụ cao/ những hành khách có số điểm về Mức độ hài lòng về dịch vụ thấp ở nhóm thương gia lớn gấp 2.0651 so với tỉ lệ số điểm về Mức độ hài lòng về dịch vụ cao/ những hành khách có số điểm về Mức độ hài lòng về dịch vụ thấp ở nhóm bình thường.

3.4.4.5 Thống kê suy diễn

Kiểm định tính độc lập cho 2 biến (IS) và (Class):

Phương pháp chi bình phương: Giả thuyết Ho: IS và Class độc lập

v <- table(DL$Class, IS); v
##           IS
##            Thấp  Cao
##   Business 3560 8933
##   Eco      5135 6429
##   Eco Plus  951  966
chisq.test(v)
## 
##  Pearson's Chi-squared test
## 
## data:  v
## X-squared = 788.96, df = 2, p-value < 2.2e-16

Kết quả kiểm định trên cho thấy giá trị tới hạn p-value < 2.2e-16 < 5% vì vậy chưa có cơ sở để thừa nhận giả thuyết Ho, nói cách khác giữa số điểm Mức độ hài lòng về dịch vụ (IS) và Hạng du lịch trên máy bay của hành khách (Class) có liên quan tới nhau.

3.4.5 Thống kê mô tả biến phụ thuộc: IS với biến độc lập (Customer) Loại khách hàng

3.4.5.1 Bảng tần số, tần suất và biểu đồ

Bảng tần số:

t <- table(Customer, IS); t
##                    IS
## Customer             Thấp   Cao
##   disloyal Customer  1668  3131
##   Loyal Customer     7978 13197

Bảng tần suất:

t1 <- prop.table(t); t1
##                    IS
## Customer                  Thấp        Cao
##   disloyal Customer 0.06421806 0.12054362
##   Loyal Customer    0.30715331 0.50808501

Phân phối biên:

addmargins(t)
##                    IS
## Customer             Thấp   Cao   Sum
##   disloyal Customer  1668  3131  4799
##   Loyal Customer     7978 13197 21175
##   Sum                9646 16328 25974

Biểu đồ cột kết hợp 2 biến:

k <- data.frame(DL$Age, DL$Gender, DL$Travel, DL$Customer, DL$Class, DL$SF, DL$DDIM, DL$IS, IS, Class)
k |> ggplot(aes(x=Customer,y=after_stat(count))) + geom_bar(fill="pink") + geom_text(aes(label = scales::percent(after_stat(count/sum(count)))), stat = "count", color = "blue", vjust = - .5) + facet_grid(. ~IS) + labs(x = "Loại khách hàng",y = "Số người")

Thông qua bảng tần số, tần suất trên của 2 biến Số điểm về mức độ hài lòng về dịch vụ trên chuyến bay và Loại khách hàng ta thấy có 9646 hành khách có Số điểm về mức độ hài lòng về dịch vụ thấp (tức dưới 3 điểm) trong đó có 1668 hành khách thuộc loại hành khách disloyal Customer, chiếm tỉ lệ 6,4% tổng số hành khách và 7978 hành khách thuộc loại hành khách Loyal Customer, chiếm tỉ lệ 30,7% tổng số hành khách. Bên cạnh đó có 16328 hành khách có Số điểm về mức độ hài lòng về dịch vụ cao trong đó có 3131 hành khách thuộc loại hành khách disloyal Customer, chiếm tỉ lệ 12,1% tổng số hành khách và 13197 hành khách thuộc loại hành khách Loyal Customer, chiếm tỉ lệ 50,8% tổng số hành khách. Qua biểu đồ có thể thấy đối với những hành khách có số điểm về Mức độ hài lòng về dịch vụ cả thấp và cao thì tỷ lệ những hành khách thuộc loại hành khách Loyal Customer đều lớn hơn nhóm hành khách disloyal Customer và mức chênh lêchj khá lớn.

3.4.5.2 Rủi ro tương đối (Risk ratio)

epitab(t, method = "riskratio")
## $tab
##                    IS
## Customer            Thấp        p0   Cao        p1 riskratio     lower
##   disloyal Customer 1668 0.3475724  3131 0.6524276 1.0000000        NA
##   Loyal Customer    7978 0.3767651 13197 0.6232349 0.9552554 0.9333914
##                    IS
## Customer                upper      p.value
##   disloyal Customer        NA           NA
##   Loyal Customer    0.9776315 0.0001513434
## 
## $measure
## [1] "wald"
## 
## $conf.level
## [1] 0.95
## 
## $pvalue
## [1] "fisher.exact"

Theo kết quả trên ta thấy tỉ lệ rủi ro tương đối (risk ratio) của hành khách có số điểm về Mức độ hài lòng về dịch vụ cao theo Loại hành khách là 0.9552554 tức là tỉ lệ những hành khách có số điểm về Mức độ hài lòng về dịch vụ cao trong nhóm hành khách Loyal Customer gấp 0.9552554 tỉ lệ những hành khách có số điểm về Mức độ hài lòng về dịch vụ cao trong nhóm disloyal Customer.

3.4.5.3 Tỷ lệ chênh lệch (odd ratio)

epitab(t, method = "oddsratio")
## $tab
##                    IS
## Customer            Thấp        p0   Cao        p1 oddsratio     lower
##   disloyal Customer 1668 0.1729214  3131 0.1917565 1.0000000        NA
##   Loyal Customer    7978 0.8270786 13197 0.8082435 0.8812399 0.8252911
##                    IS
## Customer                upper      p.value
##   disloyal Customer        NA           NA
##   Loyal Customer    0.9409817 0.0001513434
## 
## $measure
## [1] "wald"
## 
## $conf.level
## [1] 0.95
## 
## $pvalue
## [1] "fisher.exact"

Theo kết quả trên ta thấy tỉ lệ chênh (odd ratio) là 0.8812399 tức tỉ lệ những hành khách có số điểm về Mức độ hài lòng về dịch vụ cao/những hành khách có số điểm về Mức độ hài lòng về dịch vụ thấp ở nhóm hành khách Loyal Customer bằng khoảng 88,12% so với tỉ lệ số điểm về Mức độ hài lòng về dịch vụ cao/những hành khách có số điểm về Mức độ hài lòng về dịch vụ thấp ở nhóm hành khách disloyal Customer.

3.4.5.4 Thống kê suy diễn

Kiểm định tính độc lập cho 2 biến (IS) và (Customer):

Phương pháp chi bình phương: Giả thuyết Ho: IS và Customer độc lập

t <- table(DL$Customer, IS); t
##                    IS
##                      Thấp   Cao
##   disloyal Customer  1668  3131
##   Loyal Customer     7978 13197
chisq.test(t)
## 
##  Pearson's Chi-squared test with Yates' continuity correction
## 
## data:  t
## X-squared = 14.157, df = 1, p-value = 0.0001682

Kết quả kiểm định trên cho thấy giá trị tới hạn p-value = 0.0001682 < 5% vì vậy chưa có cơ sở để thừa nhận giả thuyết Ho, nói cách khác giữa số điểm Mức độ hài lòng về dịch vụ (IS) và Loại khách hàng có liên quan tới nhau.

3.4.6 Thống kê mô tả biến phụ thuộc: IS với biến độc lập Travel (Mục đích chuyến bay của hành khách)

3.4.6.1 Bảng tần số, tần suất và biểu đồ

Bảng tần số:

q <- table(DL$Travel, IS); q
##                  IS
##                    Thấp   Cao
##   Business travel  6585 11451
##   Personal Travel  3061  4877

Bảng tần suất:

q1 <- prop.table(q); q1
##                  IS
##                        Thấp       Cao
##   Business travel 0.2535228 0.4408639
##   Personal Travel 0.1178486 0.1877647

Phân phối biên:

addmargins(q)
##                  IS
##                    Thấp   Cao   Sum
##   Business travel  6585 11451 18036
##   Personal Travel  3061  4877  7938
##   Sum              9646 16328 25974

Biểu đồ cột kết hợp 2 biến:

k <- data.frame(DL$Age, DL$Gender, DL$Travel, DL$Customer, DL$Class, DL$SF, DL$DDIM, DL$IS, IS, Class)
k |> ggplot(aes(x=Travel,y=after_stat(count))) + geom_bar(fill="pink") + geom_text(aes(label = scales::percent(after_stat(count/sum(count)))), stat = "count", color = "blue", vjust = - .5) + facet_grid(. ~IS) + labs(x = "Mục đích chuyến bay",y = "Số người")

Thông qua bảng tần số, tần suất trên của 2 biến Mức độ hài lòng về dịch vụ trên chuyến bay và Mục đích chuyến bay của hành khách (Travel) ta thấy có 9646 hành khách có Mức độ hài lòng về dịch vụ trên chuyến bay Thấp trong đó có 6585 hành khách có Mục đích chuyến bay thuộc nhóm Business travel, chiếm tỉ lệ 25,4% tổng số hành khách và 3061 hành khách nhóm Personal travel, chiếm tỉ lệ 11,8% tổng số hành khách. Bên cạnh đó có 16328 hành khách có Mức độ hài lòng về dịch vụ trên chuyến bay Cao trong đó có 11451 hành khách nhóm Business travel, chiếm 44,1% tổng số hành khách và 4877 người nhóm Personal travel, chiếm 18,8% tổng số hành khách. Qua biểu đồ có thể thấy đối với những hành khách có Mức độ hài lòng về dịch vụ trên chuyến bay cả cao và thấp thì tỷ lệ những hành khách có Mục đích chuyến bay thuộc nhóm Business travel đều nhiều hơn những hành khách có Mục đích chuyến bay thuộc nhóm Personal travel.

3.4.6.2 Rủi ro tương đối (Risk ratio)

epitab(q, method = "riskratio")
## $tab
##                  IS
##                   Thấp        p0   Cao        p1 riskratio     lower     upper
##   Business travel 6585 0.3651031 11451 0.6348969 1.0000000        NA        NA
##   Personal Travel 3061 0.3856135  4877 0.6143865 0.9676949 0.9479217 0.9878807
##                  IS
##                       p.value
##   Business travel          NA
##   Personal Travel 0.001710852
## 
## $measure
## [1] "wald"
## 
## $conf.level
## [1] 0.95
## 
## $pvalue
## [1] "fisher.exact"

Theo kết quả trên ta thấy tỉ lệ rủi ro tương đối (risk ratio) của hành khách có số điểm về Mức độ hài lòng về dịch vụ trên chuyến bay cao theo Mục đích chuyến bay là 0.9676949 tức là tỉ lệ những hành khách có số điểm về Mức độ hài lòng về dịch vụ cao có mục đích chuyến bay là Personal Travel gấp 0.9676949 lần tỉ lệ những hành khách có số điểm về Mức độ hài lòng về dịch vụ cao có mục đích chuyến bay là Personal Travel.

3.4.6.3 Tỷ lệ chênh lệch (odd ratio)

epitab(q, method = "oddsratio")
## $tab
##                  IS
##                   Thấp        p0   Cao        p1 oddsratio     lower     upper
##   Business travel 6585 0.6826664 11451 0.7013106 1.0000000        NA        NA
##   Personal Travel 3061 0.3173336  4877 0.2986894 0.9162243 0.8676963 0.9674663
##                  IS
##                       p.value
##   Business travel          NA
##   Personal Travel 0.001710852
## 
## $measure
## [1] "wald"
## 
## $conf.level
## [1] 0.95
## 
## $pvalue
## [1] "fisher.exact"

Theo kết quả trên ta thấy tỉ lệ chênh (odd ratio) là 0.9162243 tức tỉ lệ những hành khách có số điểm về Mức độ hài lòng về dịch vụ cao/những hành khách có số điểm về Mức độ hài lòng về dịch vụ thấp có mục đích chuyến bay là Personal Travel bằng khoảng 91,62% so với tỉ lệ số điểm về Mức độ hài lòng về dịch vụ cao/những hành khách có số điểm về Mức độ hài lòng về dịch vụ thấp có mục đích chuyến bay là Business travel.

3.4.6.4 Thống kê suy diễn

Kiểm định tính độc lập cho 2 biến (IS) và (Travel):

Phương pháp chi bình phương: Giả thuyết Ho: IS và Travel độc lập

q <- table(DL$Travel, IS); q
##                  IS
##                    Thấp   Cao
##   Business travel  6585 11451
##   Personal Travel  3061  4877
chisq.test(q)
## 
##  Pearson's Chi-squared test with Yates' continuity correction
## 
## data:  q
## X-squared = 9.8448, df = 1, p-value = 0.001703

Kết quả kiểm định trên cho thấy giá trị tới hạn p-value = 0.001703 < 5% vì vậy chưa có cơ sở để thừa nhận giả thuyết Ho, nói cách khác giữa Mức độ hài lòng về dịch vụ trên chuyến bay (IS) và Mục đích của chuyến bay (Travel) có liên quan tới nhau.

3.4.7 Thống kê mô tả biến phụ thuộc: IS với biến độc lập SF

3.4.7.1 Bảng tần số, tần suất và biểu đồ

Bảng tần số:

w <- table(SF, IS); w
##                          IS
## SF                        Thấp  Cao
##   neutral or dissatisfied 7026 7545
##   satisfied               2620 8783

Bảng tần suất:

w1 <- prop.table(w); w1
##                          IS
## SF                             Thấp       Cao
##   neutral or dissatisfied 0.2705013 0.2904828
##   satisfied               0.1008701 0.3381458

Phân phối biên:

addmargins(w)
##                          IS
## SF                         Thấp   Cao   Sum
##   neutral or dissatisfied  7026  7545 14571
##   satisfied                2620  8783 11403
##   Sum                      9646 16328 25974

Biểu đồ cột kết hợp 2 biến:

m <- data.frame(DL$Gender, DL$Travel, DL$Customer, DL$Class, DL$SF, DL$Age, DL$DDIM, DL$IS, SF, IS)
m |> ggplot(aes(x=SF,y=after_stat(count))) + geom_bar(fill="green") + geom_text(aes(label = scales::percent(after_stat(count/sum(count)))), stat = "count", color = "blue", vjust = - .5) + facet_grid(. ~IS) + labs(x = "Mức độ hài lòng về hãng hàng không",y = "Số người")

Thông qua bảng tần số, tần suất trên của 2 biến Mức độ hài lòng về dịch vụ trên chuyến bay và Mức độ hài lòng của hành khách đối với hãng hàng không (SF) ta thấy có 9646 hành khách có Mức độ hài lòng về dịch vụ trên chuyến bay Thấp trong đó có 7026 hành khách có Mức độ hài lòng của hành khách đối với hãng hàng không thuộc nhóm neutral or dissatisfied, chiếm tỉ lệ 27% tổng số hành khách và 2620 hành khách nhóm satisfied, chiếm tỉ lệ 10,1% tổng số hành khách. Bên cạnh đó có 16328 hành khách có Mức độ hài lòng về dịch vụ trên chuyến bay Cao trong đó có 7545 hành khách có Mức độ hài lòng của hành khách đối với hãng hàng không thuộc nhóm neutral or dissatisfied, chiếm tỉ lệ 29% tổng số hành khách và 8783 hành khách nhóm satisfied, chiếm tỉ lệ 33,8% tổng số hành khách.

3.4.7.2 Rủi ro tương đối (Risk ratio)

epitab(w, method = "riskratio")
## $tab
##                          IS
## SF                        Thấp        p0  Cao        p1 riskratio    lower
##   neutral or dissatisfied 7026 0.4821907 7545 0.5178093  1.000000       NA
##   satisfied               2620 0.2297641 8783 0.7702359  1.487489 1.460076
##                          IS
## SF                           upper p.value
##   neutral or dissatisfied       NA      NA
##   satisfied               1.515417       0
## 
## $measure
## [1] "wald"
## 
## $conf.level
## [1] 0.95
## 
## $pvalue
## [1] "fisher.exact"

Theo kết quả trên ta thấy tỉ lệ rủi ro tương đối (risk ratio) của hành khách có mức độ hài lòng về dịch vụ trên chuyến bay Cao theo Mức độ hài lòng của hành khách đối với hãng hàng không (SF) là 1.487489 tức là tỉ lệ những hành khách có mức độ hài lòng về dịch vụ trên chuyến bay Cao có Mức độ hài lòng đối với hãng hàng không thuộc nhóm satisfied lớn hơn khoảng 48,75% tỉ lệ những hành khách có mức độ hài lòng về dịch vụ trên chuyến bay Cao có Mức độ hài lòng đối với hãng hàng không thuộc nhóm neutral or dissatisfied.

3.4.7.3 Tỷ lệ chênh lệch (odd ratio)

epitab(w, method = "oddsratio")
## $tab
##                          IS
## SF                        Thấp        p0  Cao        p1 oddsratio    lower
##   neutral or dissatisfied 7026 0.7283848 7545 0.4620897  1.000000       NA
##   satisfied               2620 0.2716152 8783 0.5379103  3.121695 2.956408
##                          IS
## SF                           upper p.value
##   neutral or dissatisfied       NA      NA
##   satisfied               3.296223       0
## 
## $measure
## [1] "wald"
## 
## $conf.level
## [1] 0.95
## 
## $pvalue
## [1] "fisher.exact"

Theo kết quả trên ta thấy tỉ lệ chênh (odd ratio) là 3.121695 tức tỉ lệ những hành khách có số điểm về Mức độ hài lòng về dịch vụ cao/những hành khách có số điểm về Mức độ hài lòng về dịch vụ thấp thuộc nhóm satisfied lớn gấp 3.121695 so với tỉ lệ số điểm về Mức độ hài lòng về dịch vụ cao/những hành khách có số điểm về Mức độ hài lòng về dịch vụ thấp có Mức độ hài lòng đối với hãng hàng không thuộc nhóm neutral or dissatisfied.

3.4.7.4 Thống kê suy diễn

Kiểm định tính độc lập cho 2 biến (IS) và (SF):

Phương pháp chi bình phương: Giả thuyết Ho: IS và SF độc lập

w <- table(SF, IS);w
##                          IS
## SF                        Thấp  Cao
##   neutral or dissatisfied 7026 7545
##   satisfied               2620 8783
chisq.test(w)
## 
##  Pearson's Chi-squared test with Yates' continuity correction
## 
## data:  w
## X-squared = 1744.9, df = 1, p-value < 2.2e-16

Kết quả kiểm định trên cho thấy giá trị tới hạn p-value < 2.2e-16 < 5% vì vậy chưa có cơ sở để thừa nhận giả thuyết Ho, nói cách khác giữa mức độ hài lòng về dịch vụ trên chuyến bay (IS) mức độ hài lòng về hãng hàng không (SF) có liên quan tới nhau.

3.4.8 Thống kê mô tả biến phụ thuộc: SF (Mức độ hài lòng của hành khách đối với hãng hàng không) với biến độc lập Gender

3.4.8.1 Bảng tần số, tần suất và biểu đồ

Bảng tần số:

e <- table(DL$Gender, SF); e
##         SF
##          neutral or dissatisfied satisfied
##   Female                    7437      5735
##   Male                      7136      5668

Bảng tần suất:

e1 <- prop.table(e); e1
##         SF
##          neutral or dissatisfied satisfied
##   Female               0.2863027 0.2207807
##   Male                 0.2747151 0.2182014

Phân phối biên:

addmargins(e)
##         SF
##          neutral or dissatisfied satisfied   Sum
##   Female                    7437      5735 13172
##   Male                      7136      5668 12804
##   Sum                      14573     11403 25976

Biểu đồ cột kết hợp 2 biến:

k <- data.frame(DL$Age, DL$Gender, DL$Travel, DL$Customer, DL$Class, DL$SF, DL$DDIM, DL$IS, SF, Gender)
k |> ggplot(aes(x=DL$Gender,y=after_stat(count))) + geom_bar(fill="pink") + geom_text(aes(label = scales::percent(after_stat(count/sum(count)))), stat = "count", color = "blue", vjust = - .5) + facet_grid(. ~SF) + labs(x = "Mức độ hài lòng của hành khách đối với hãng hàng không",y = "Số người")

Thông qua bảng tần số, tần suất trên của 2 biến Mức độ hài lòng của hành khách đối với hãng hàng không (SF) và Giới tính (Gender) ta thấy có 14573 hành khách có Mức độ hài lòng của hành khách đối với hãng hàng không thuộc nhóm neutral or dissatisfied trong đó có 7437 hành khách giới tính nữ, chiếm tỉ lệ 28,63% tổng số hành khách và 7136 hành khách nam, chiếm tỉ lệ 27,47% tổng số hành khách. Bên cạnh đó có 11403 hành khách có Mức độ hài lòng của hành khách đối với hãng hàng không thuộc nhóm satisfied trong đó có 5735 hành khách nữ, chiếm 22,08% tổng số hành khách và 5668 hành khách nam, chiếm 21,82% tổng số hành khách. Qua biểu đồ có thể thấy đối với những hành khách có số điểm về Mức độ hài lòng của hành khách đối với hãng hàng không thuộc nhóm neutral or dissatisfied thì tỷ lệ những hành khách có nữ nhiều hơn những hành khách nam nhưng đối với những hành khách có Mức độ hài lòng của hành khách đối với hãng hàng không thuộc nhóm satisfied thì tỷ lệ những hành khách nữ lại ít hơn những hành khách nam, đối với từng Mức độ hài lòng của hành khách đối với hãng hàng không thì mức độ chênh lệch giữa 2 nhóm này không quá lớn.

3.4.8.2 Rủi ro tương đối (Risk ratio)

epitab(e, method = "riskratio")
## $tab
##         SF
##          neutral or dissatisfied        p0 satisfied        p1 riskratio
##   Female                    7437 0.5646067      5735 0.4353933  1.000000
##   Male                      7136 0.5573258      5668 0.4426742  1.016723
##         SF
##              lower    upper   p.value
##   Female        NA       NA        NA
##   Male   0.9891497 1.045064 0.2398548
## 
## $measure
## [1] "wald"
## 
## $conf.level
## [1] 0.95
## 
## $pvalue
## [1] "fisher.exact"

Theo kết quả trên ta thấy tỉ lệ rủi ro tương đối (risk ratio) của hành khách có Mức độ hài lòng đối với hãng hàng không thuộc nhóm satisfied theo Giới tính là 1,016723 tức là tỉ lệ những hành khách nam có Mức độ hài lòng đối với hãng hàng không thuộc nhóm satisfied lớn hơn khoảng 1,67% tỉ lệ những hành khách nữ có Mức độ hài lòng về hãng hàng không trong nhóm satisfied.

3.4.8.3 Tỷ lệ chênh lệch (odd ratio)

epitab(e, method = "oddsratio")
## $tab
##         SF
##          neutral or dissatisfied        p0 satisfied        p1 oddsratio
##   Female                    7437 0.5103273      5735 0.5029378  1.000000
##   Male                      7136 0.4896727      5668 0.4970622  1.030005
##         SF
##              lower    upper   p.value
##   Female        NA       NA        NA
##   Male   0.9807371 1.081748 0.2398548
## 
## $measure
## [1] "wald"
## 
## $conf.level
## [1] 0.95
## 
## $pvalue
## [1] "fisher.exact"

Theo kết quả trên ta thấy tỉ lệ chênh (odd ratio) là 1,030005 tức tỉ lệ những hành khách có Mức độ hài lòng về hãng hàng không nhóm satisfied/những hành khách có Mức độ hài lòng về hãng hàng không nhóm neutral or dissatisfied ở giới tính nam lớn hơn khoảng 3% so với tỉ lệ Mức độ hài lòng về hãng hàng không nhóm satisfied/những hành khách có Mức độ hài lòng về hãng hàng không nhóm neutral or dissatisfied ở giới tính nữ.

3.4.8.4 Thống kê suy diễn

Kiểm định tính độc lập cho 2 biến (SF) và (Gender):

Phương pháp chi bình phương: Giả thuyết Ho: (FS) và (Gender)

e <- table(DL$Gender, SF); e
##         SF
##          neutral or dissatisfied satisfied
##   Female                    7437      5735
##   Male                      7136      5668
chisq.test(e)
## 
##  Pearson's Chi-squared test with Yates' continuity correction
## 
## data:  e
## X-squared = 1.3682, df = 1, p-value = 0.2421

Kết quả kiểm định trên cho thấy giá trị tới hạn p-value = 0.2421 > 5% vì vậy có cơ sở để thừa nhận giả thuyết Ho, nói cách khác Mức độ hài lòng về hãng hàng không (SF) và giới tính không có liên quan tới nhau.

3.4.9 Thống kê mô tả biến phụ thuộc: SF với biến độc lập Hạng du lịch trên máy bay của hành khách (Class)

3.4.9.1 Mã hoá biến Hạng du lịch trên máy bay của hành khách (Class) định tính có 2 giá trị

Với dữ liệu gốc, biến Hạng du lịch trên máy bay của hành khách (Class) là biến định tính nhận 3 giá trị: Business: Thương gia, Eco, Eco Plus. Tác giả đã đặt quy ước về việc mã hoá 2 giá trị biến (Class) như sau: Khách hàng thuộc hạng thương gia: Business. Khách hàng thuộc hạng Bình thường: Eco, Eco Plus.

f <- table(DL$Class, SF); f
##           SF
##            neutral or dissatisfied satisfied
##   Business                    3809      8686
##   Eco                         9322      2242
##   Eco Plus                    1442       475

3.4.9.2 Bảng tần số, tần suất và biểu đồ

Bảng tần số:

f <- table(Class, SF); f
##             SF
## Class        neutral or dissatisfied satisfied
##   thuonggia                     3809      8686
##   binhthuong                   10764      2717

Bảng tần suất:

f1 <- prop.table(f); f1
##             SF
## Class        neutral or dissatisfied satisfied
##   thuonggia                0.1466354 0.3343856
##   binhthuong               0.4143825 0.1045966

Phân phối biên:

addmargins(f)
##             SF
## Class        neutral or dissatisfied satisfied   Sum
##   thuonggia                     3809      8686 12495
##   binhthuong                   10764      2717 13481
##   Sum                          14573     11403 25976

Biểu đồ cột kết hợp 2 biến:

k <- data.frame(DL$Age, DL$Gender, DL$Travel, DL$Customer, DL$Class, DL$SF, DL$DDIM, DL$IS, SF, Class)
k |> ggplot(aes(x=Class,y=after_stat(count))) + geom_bar(fill="pink") + geom_text(aes(label = scales::percent(after_stat(count/sum(count)))), stat = "count", color = "blue", vjust = - .5) + facet_grid(. ~SF) + labs(x = "Mức độ hài lòng về hãng hàng không",y = "Số người")

Thông qua bảng tần số, tần suất trên của 2 biến Mức độ hài lòng về hãng hàng không và Hạng du lịch trên máy bay của hành khách (Class) ta thấy có 14573 hành khách có Mức độ hài lòng về hãng hàng không thuộc nhóm neutral or dissatisfied trong đó có 10764 hành khách có Mức độ hài lòng về hãng hàng không thuộc nhóm bình thường (Eco, Eco Plus), chiếm tỉ lệ 41,4% tổng số hành khách và 3809 hành khách nhóm thương gia, chiếm tỉ lệ 14,7% tổng số hành khách. Bên cạnh đó có 11403 hành khách có Mức độ hài lòng về hãng hàng không thuộc nhóm satisfied trong đó có 2717 hành khách nhóm bình thường, chiếm 10,5% tổng số hành khách và 8686 người nhóm thương gia, chiếm 33,4% tổng số hành khách. Qua biểu đồ có thể thấy đối với những hành khách có số điểm về Mức độ hài lòng về hãng hàng không thấp thuộc nhóm neutral or dissatisfied thì tỷ lệ những hành khách có Hạng du lịch trên máy bay thuộc nhóm bình thường nhiều hơn những hành khách có Hạng du lịch trên máy bay thuộc nhóm thương gia nhưng đối với những hành khách có Mức độ hài lòng về hãng hàng không thuộc nhóm satisfied thì tỷ lệ những hành khách có Hạng du lịch trên máy bay thuộc nhóm bình thường ít hơn những hành khách có Hạng du lịch trên máy bay thuộc nhóm thương gia , đối với từng mức độ hài lòng về hãng hàng không thì mức độ chênh lệch giữa 2 nhóm này tương đối lớn.

3.4.9.3 Rủi ro tương đối (Risk ratio)

epitab(f, method = "riskratio")
## $tab
##             SF
## Class        neutral or dissatisfied        p0 satisfied        p1 riskratio
##   thuonggia                     3809 0.3048419      8686 0.6951581 1.0000000
##   binhthuong                   10764 0.7984571      2717 0.2015429 0.2899239
##             SF
## Class            lower     upper p.value
##   thuonggia         NA        NA      NA
##   binhthuong 0.2797984 0.3004157       0
## 
## $measure
## [1] "wald"
## 
## $conf.level
## [1] 0.95
## 
## $pvalue
## [1] "fisher.exact"

Theo kết quả trên ta thấy tỉ lệ rủi ro tương đối (risk ratio) của hành khách có Mức độ hài lòng về dịch vụ thuộc nhóm satisfied theo Hạng du lịch trên máy bay là 3,449181 tức là tỉ lệ những hành khách có Mức độ hài lòng về hãng hàng không trong nhóm bình thường lớn gấp 3,449181 tỉ lệ những hành khách có Mức độ hài lòng về hãng hàng không thuộc nhóm satisfied trong nhóm thương gia.

3.4.9.4 Tỷ lệ chênh lệch (odd ratio)

epitab(f, method = "oddsratio")
## $tab
##             SF
## Class        neutral or dissatisfied        p0 satisfied        p1 oddsratio
##   thuonggia                     3809 0.2613738      8686 0.7617294 1.0000000
##   binhthuong                   10764 0.7386262      2717 0.2382706 0.1106897
##             SF
## Class            lower    upper p.value
##   thuonggia         NA       NA      NA
##   binhthuong 0.1045821 0.117154       0
## 
## $measure
## [1] "wald"
## 
## $conf.level
## [1] 0.95
## 
## $pvalue
## [1] "fisher.exact"

Theo kết quả trên ta thấy tỉ lệ chênh (odd ratio) là 9,034267 tức tỉ lệ những hành khách có Mức độ hài lòng về hãng hàng không thuộc nhóm satisfied /những hành khách có Mức độ hài lòng về hãng hàng không thuộc nhóm neutral or dissatisfied ở nhóm bình thường lớn gấp 9,034267 so với tỉ lệ Mức độ hài lòng về hãng hàng không thuộc nhóm satisfied /những hành khách có Mức độ hài lòng về hãng hàng không thuộc nhóm neutral or dissatisfied ở nhóm thương gia.

3.4.9.5 Thống kê suy diễn

Kiểm định tính độc lập cho 2 biến (SF) và (Class):

Phương pháp chi bình phương: Giả thuyết Ho: SF và Class độc lập

f <- table(DL$Class, SF); f
##           SF
##            neutral or dissatisfied satisfied
##   Business                    3809      8686
##   Eco                         9322      2242
##   Eco Plus                    1442       475
chisq.test(f)
## 
##  Pearson's Chi-squared test
## 
## data:  f
## X-squared = 6435, df = 2, p-value < 2.2e-16

Kết quả kiểm định trên cho thấy giá trị tới hạn p-value < 2.2e-16 < 5% vì vậy chưa có cơ sở để thừa nhận giả thuyết Ho, nói cách khác giữa số điểm Mức độ hài lòng về hãng hàng không (SF) và Hạng du lịch trên máy bay của hành khách (Class) có liên quan tới nhau.

3.4.10 Thống kê mô tả biến phụ thuộc: SF với biến độc lập Travel: Mục đích chuyến bay của hành khách

3.4.10.1 Bảng tần số, tần suất và biểu đồ

Bảng tần số:

y <- table(DL$Travel, SF); y
##                  SF
##                   neutral or dissatisfied satisfied
##   Business travel                    7428     10610
##   Personal Travel                    7145       793

Bảng tần suất:

y1 <- prop.table(y); y1
##                  SF
##                   neutral or dissatisfied  satisfied
##   Business travel              0.28595627 0.40845396
##   Personal Travel              0.27506160 0.03052818

Phân phối biên:

addmargins(y)
##                  SF
##                   neutral or dissatisfied satisfied   Sum
##   Business travel                    7428     10610 18038
##   Personal Travel                    7145       793  7938
##   Sum                               14573     11403 25976

Biểu đồ cột kết hợp 2 biến:

k <- data.frame(DL$Age, DL$Gender, DL$Travel, DL$Customer, DL$Class, DL$SF, DL$DDIM, DL$IS, SF, Travel)
k |> ggplot(aes(x=DL$Travel,y=after_stat(count))) + geom_bar(fill="pink") + geom_text(aes(label = scales::percent(after_stat(count/sum(count)))), stat = "count", color = "blue", vjust = - .5) + facet_grid(. ~SF) + labs(x = "Mục đích chuyến bay của hành khách",y = "Số người")

Thông qua bảng tần số, tần suất trên của 2 biến Mức độ hài lòng về hãng hàng không và Mục đích chuyến bay của hành khách (Travel) ta thấy có 14573 hành khách có Mức độ hài lòng về hãng hàng không thuộc nhóm neutral or dissatisfied trong đó có 7428 hành khách có Mục đích chuyến bay thuộc nhóm Business travel, chiếm tỉ lệ 28,6% tổng số hành khách và 7145 hành khách nhóm Personal travel, chiếm tỉ lệ 27,5% tổng số hành khách. Bên cạnh đó có 11403 hành khách có Mức độ hài lòng về hãng hàng không thuộc nhóm satisfied trong đó có 10610 hành khách nhóm Business travel, chiếm 40,8% tổng số hành khách và 793 người nhóm Personal travel, chiếm 3,1% tổng số hành khách. Qua biểu đồ có thể thấy đối với những hành khách có Mức độ hài lòng về hãng hàng không thuộc nhóm neutral or dissatisfied và satisfied thì tỷ lệ những hành khách có Mục đích chuyến bay thuộc nhóm Business travel đều nhiều hơn những hành khách có Mục đích chuyến bay thuộc nhóm Personal travel.

3.4.10.2 Rủi ro tương đối (Risk ratio)

epitab(y, method = "riskratio")
## $tab
##                  SF
##                   neutral or dissatisfied        p0 satisfied         p1
##   Business travel                    7428 0.4117973     10610 0.58820268
##   Personal Travel                    7145 0.9001008       793 0.09989922
##                  SF
##                   riskratio     lower     upper p.value
##   Business travel 1.0000000        NA        NA      NA
##   Personal Travel 0.1698381 0.1588076 0.1816347       0
## 
## $measure
## [1] "wald"
## 
## $conf.level
## [1] 0.95
## 
## $pvalue
## [1] "fisher.exact"

Theo kết quả trên ta thấy tỉ lệ rủi ro tương đối (risk ratio) của hành khách có Mức độ hài lòng về dịch vụ thuộc nhóm satisfied theo Mục đích chuyến bay là 0.1698381 tức là tỉ lệ những hành khách có Mức độ hài lòng về hãng hàng không ở nhóm Personal travel trong nhóm satisfied chỉ bằng 16,9% tỉ lệ những hành khách có Mức độ hài lòng về hãng hàng không thuộc nhóm satisfied trong nhóm Business travel .

3.4.10.3 Tỷ lệ chênh lệch (odd ratio)

epitab(y, method = "oddsratio")
## $tab
##                  SF
##                   neutral or dissatisfied        p0 satisfied        p1
##   Business travel                    7428 0.5097097     10610 0.9304569
##   Personal Travel                    7145 0.4902903       793 0.0695431
##                  SF
##                    oddsratio      lower     upper p.value
##   Business travel 1.00000000         NA        NA      NA
##   Personal Travel 0.07770115 0.07178985 0.0840992       0
## 
## $measure
## [1] "wald"
## 
## $conf.level
## [1] 0.95
## 
## $pvalue
## [1] "fisher.exact"

Theo kết quả trên ta thấy tỉ lệ chênh (odd ratio) là 0.07770115 tức tỉ lệ những hành khách có Mức độ hài lòng về hãng hàng không thuộc nhóm satisfied /những hành khách có Mức độ hài lòng về hãng hàng không thuộc nhóm neutral dissatisfied ở nhóm Personal travel chỉ bằng 7,77% so với tỉ lệ Mức độ hài lòng về hãng hàng không thuộc nhóm satisfied /những hành khách có Mức độ hài lòng về hãng hàng không thuộc nhóm neutral dissatisfied ở nhóm Buiness travel.

3.4.10.4 Thống kê suy diễn

Kiểm định tính độc lập cho 2 biến (SF) và (Travel):

Phương pháp chi bình phương: Giả thuyết Ho: SF và Travel độc lập

y <- table(DL$Travel, SF); y
##                  SF
##                   neutral or dissatisfied satisfied
##   Business travel                    7428     10610
##   Personal Travel                    7145       793
chisq.test(y)
## 
##  Pearson's Chi-squared test with Yates' continuity correction
## 
## data:  y
## X-squared = 5334.8, df = 1, p-value < 2.2e-16

Kết quả kiểm định trên cho thấy giá trị tới hạn p-value < 2.2e-16 < 5% vì vậy chưa có cơ sở để thừa nhận giả thuyết Ho, nói cách khác giữa số điểm Mức độ hài lòng về hãng hàng không (SF) và Mục đích của chuyến bay (Travel) có liên quan tới nhau.

3.4.11 Thống kê mô tả biến phụ thuộc: SF với biến độc lập Customer: Loại khách hàng

3.4.11.1 Bảng tần số, tần suất và biểu đồ

Bảng tần số:

h <- table(DL$Customer, SF); h
##                    SF
##                     neutral or dissatisfied satisfied
##   disloyal Customer                    3591      1208
##   Loyal Customer                      10982     10195

Bảng tần suất:

h1 <- prop.table(h); h1
##                    SF
##                     neutral or dissatisfied  satisfied
##   disloyal Customer              0.13824299 0.04650447
##   Loyal Customer                 0.42277487 0.39247767

Phân phối biên:

addmargins(h)
##                    SF
##                     neutral or dissatisfied satisfied   Sum
##   disloyal Customer                    3591      1208  4799
##   Loyal Customer                      10982     10195 21177
##   Sum                                 14573     11403 25976

Biểu đồ cột kết hợp 2 biến:

k <- data.frame(DL$Age, DL$Gender, DL$Travel, DL$Customer, DL$Class, DL$SF, DL$DDIM, DL$IS, SF, Customer)
k |> ggplot(aes(x=DL$Customer,y=after_stat(count))) + geom_bar(fill="pink") + geom_text(aes(label = scales::percent(after_stat(count/sum(count)))), stat = "count", color = "blue", vjust = - .5) + facet_grid(. ~SF) + labs(x = "Loại khách hàng",y = "Số người")

Thông qua bảng tần số, tần suất trên của 2 biến Mức độ hài lòng của hành khách đối với hãng hàng không (SF) và Loại khách hàng (Customer) ta thấy có 14573 hành khách có Mức độ hài lòng của hành khách đối với hãng hàng không thuộc nhóm neutral or dissatisfied trong đó có 3591 là hành khách disloyal Customer, chiếm tỉ lệ 13,8% tổng số hành khách và 10982 hành khách Loyal Customer, chiếm tỉ lệ 42,3% tổng số hành khách. Bên cạnh đó có 11403 hành khách có Mức độ hài lòng của hành khách đối với hãng hàng không thuộc nhóm satisfied trong đó có 1208 hành khách disloyal Customer, chiếm 4,7% tổng số hành khách và 10195 hành khách Loyal Customer, chiếm 39,2% tổng số hành khách. Qua biểu đồ có thể thấy đối với những hành khách có Mức độ hài lòng của hành khách đối với hãng hàng không thuộc nhóm neutral or dissatisfied và nhóm satisfied thì tỷ lệ những hành khách Loyal Customer đều nhiều hơn những hành khách disloyal Customer, đối với từng Mức độ hài lòng của hành khách đối với hãng hàng không thì mức độ chênh lệch giữa 2 nhóm này tương đối lớn.

3.4.11.2 Rủi ro tương đối (Risk ratio)

epitab(h, method = "riskratio")
## $tab
##                    SF
##                     neutral or dissatisfied        p0 satisfied        p1
##   disloyal Customer                    3591 0.7482809      1208 0.2517191
##   Loyal Customer                      10982 0.5185815     10195 0.4814185
##                    SF
##                     riskratio    lower    upper     p.value
##   disloyal Customer  1.000000       NA       NA          NA
##   Loyal Customer     1.912523 1.817895 2.012076 5.4258e-193
## 
## $measure
## [1] "wald"
## 
## $conf.level
## [1] 0.95
## 
## $pvalue
## [1] "fisher.exact"

Theo kết quả trên ta thấy tỉ lệ rủi ro tương đối (risk ratio) của hành khách có Mức độ hài lòng đối với hãng hàng không thuộc nhóm satisfied theo Loại khách hàng là 1,912523 tức là tỉ lệ những hành khách Loyal Customer có Mức độ hài lòng đối với hãng hàng không thuộc nhóm satisfied lớn hơn khoảng 91,25% tỉ lệ những hành khách disloyal Customer có Mức độ hài lòng về hãng hàng không trong nhóm satisfied.

3.4.11.3 Tỷ lệ chênh lệch (odd ratio)

epitab(h, method = "oddsratio")
## $tab
##                    SF
##                     neutral or dissatisfied        p0 satisfied       p1
##   disloyal Customer                    3591 0.2464146      1208 0.105937
##   Loyal Customer                      10982 0.7535854     10195 0.894063
##                    SF
##                     oddsratio    lower    upper     p.value
##   disloyal Customer  1.000000       NA       NA          NA
##   Loyal Customer     2.759652 2.571685 2.961357 5.4258e-193
## 
## $measure
## [1] "wald"
## 
## $conf.level
## [1] 0.95
## 
## $pvalue
## [1] "fisher.exact"

Theo kết quả trên ta thấy tỉ lệ chênh (odd ratio) là 2,759652 tức tỉ lệ những hành khách có Mức độ hài lòng về hãng hàng không nhóm satisfied/những hành khách có Mức độ hài lòng về hãng hàng không nhóm neutral or dissatisfied ở khách hàng Loyal Customer lớn gấp 2,759652 lần so với tỉ lệ Mức độ hài lòng về hãng hàng không nhóm satisfied/những hành khách có Mức độ hài lòng về hãng hàng không nhóm neutral or dissatisfied ở khách hàng disloyal Customer.

3.4.11.4 Thống kê suy diễn

Kiểm định tính độc lập cho 2 biến (SF) và (Customer):

Phương pháp chi bình phương: Giả thuyết Ho: (SF) và (Customer)

h <- table(DL$Customer, SF); h
##                    SF
##                     neutral or dissatisfied satisfied
##   disloyal Customer                    3591      1208
##   Loyal Customer                      10982     10195
chisq.test(h)
## 
##  Pearson's Chi-squared test with Yates' continuity correction
## 
## data:  h
## X-squared = 837.25, df = 1, p-value < 2.2e-16

Kết quả kiểm định trên cho thấy giá trị tới hạn p-value < 2.2e-16 < 5% vì vậy chưa có cơ sở để thừa nhận giả thuyết Ho, nói cách khác Mức độ hài lòng về hãng hàng không (SF) và Loại khách hàng (Customer) có liên quan tới nhau.

3.4.12 Thống kê mô tả biến phụ thuộc: SF với biến độc lập Age

3.4.12.1 Mã hoá biến độ tuổi (Age) từ định lượng sang định tính

Với dữ liệu gốc, biến độ tuổi (Age) là biến định lượng nhận các giá trị từ 7 đến 85 tuổi. Tác giả đặt quy ước về việc mã hoá biến (age) như sau: Tuổi nhóm trung niên (trungnien): độ tuổi từ trên 40 tuổi đến 85 tuổi. Tuổi nhóm thanh niên (thanhnien): độ tuổi từ trên 7 tuổi đến 40 tuổi.

Age <- cut(DL$Age, breaks = c(7,40,85), labels=c("thanhnien","trungnien"))
table(Age)
## Age
## thanhnien trungnien 
##     13189     12664

3.4.12.2 Bảng tần số, tần suất và biểu đồ

Bảng tần số:

x <- table(Age, SF); x
##            SF
## Age         neutral or dissatisfied satisfied
##   thanhnien                    8334      4855
##   trungnien                    6125      6539

Bảng tần suất:

x1 <- prop.table(x); x1
##            SF
## Age         neutral or dissatisfied satisfied
##   thanhnien               0.3223610 0.1877925
##   trungnien               0.2369164 0.2529300

Phân phối biên:

addmargins(x)
##            SF
## Age         neutral or dissatisfied satisfied   Sum
##   thanhnien                    8334      4855 13189
##   trungnien                    6125      6539 12664
##   Sum                         14459     11394 25853

Biểu đồ cột kết hợp 2 biến:

m <- data.frame(DL$Gender, DL$Travel, DL$Customer, DL$Class, DL$SF, DL$Age, DL$DDIM, DL$IS, SF, Age)
m |> ggplot(aes(x=Age,y=after_stat(count))) + geom_bar(fill="green") + geom_text(aes(label = scales::percent(after_stat(count/sum(count)))), stat = "count", color = "blue", vjust = - .5) + facet_grid(. ~SF) + labs(x = "Độ tuổi",y = "Số người")

Thông qua bảng tần số, tần suất trên của 2 biến Mức độ hài lòng của hành khách đối với hãng hàng không (SF) và Độ tuổi (Age) ta thấy có 14459 hành khách có Mức độ hài lòng của hành khách đối với hãng hàng không thuộc nhóm neutral or dissatisfied trong đó có 8334 hành khách thuộc nhóm thanh niên, chiếm tỉ lệ 32,08% tổng số hành khách và 6125 hành khách trung niên, chiếm tỉ lệ 23,58% tổng số hành khách. Bên cạnh đó có 11394 hành khách có Mức độ hài lòng của hành khách đối với hãng hàng không thuộc nhóm satisfied trong đó có 4855 hành khách thuộc nhóm thanh niên, chiếm 18,69% tổng số hành khách và 6539 hành khách thuộc nhóm trung niên, chiếm 25,17% tổng số hành khách. Qua biểu đồ có thể thấy đối với những hành khách có Mức độ hài lòng của hành khách đối với hãng hàng không thuộc nhóm neutral or dissatisfied thì tỷ lệ những hành khách thanh niên nhiều hơn những hành khách trung niên nhưng đối với những hành khách có Mức độ hài lòng của hành khách đối với hãng hàng không thuộc nhóm satisfied thì tỷ lệ những hành khách thanh niên ít hơn những hành khách trung niên.

3.4.12.3 Rủi ro tương đối (Risk ratio)

epitab(x, method = "riskratio")
## $tab
##            SF
## Age         neutral or dissatisfied        p0 satisfied        p1 riskratio
##   thanhnien                    8334 0.6318902      4855 0.3681098  1.000000
##   trungnien                    6125 0.4836545      6539 0.5163455  1.402694
##            SF
## Age            lower    upper       p.value
##   thanhnien       NA       NA            NA
##   trungnien 1.363961 1.442528 1.381424e-127
## 
## $measure
## [1] "wald"
## 
## $conf.level
## [1] 0.95
## 
## $pvalue
## [1] "fisher.exact"

Theo kết quả trên ta thấy tỉ lệ rủi ro tương đối (risk ratio) của hành khách có mức độ hài lòng về hãng hàng không ở nhóm satisfied theo độ tuổi là 1,402694 tức là tỉ lệ những hành khách có mức độ hài lòng về hãng hàng không ở nhóm satisfied trong nhóm tuổi trung niên lớn hơn 40,27% tỉ lệ những hành khách có mức độ hài lòng về hãng hàng không ở nhóm satisfied trong nhóm tuổi thanh niên.

3.4.12.4 Tỷ lệ chênh lệch (odd ratio)

epitab(x, method = "oddsratio")
## $tab
##            SF
## Age         neutral or dissatisfied        p0 satisfied        p1 oddsratio
##   thanhnien                    8334 0.5763884      4855 0.4261015  1.000000
##   trungnien                    6125 0.4236116      6539 0.5738985  1.832608
##            SF
## Age            lower    upper       p.value
##   thanhnien       NA       NA            NA
##   trungnien 1.743811 1.925926 1.381424e-127
## 
## $measure
## [1] "wald"
## 
## $conf.level
## [1] 0.95
## 
## $pvalue
## [1] "fisher.exact"

Theo kết quả trên ta thấy tỉ lệ chênh (odd ratio) là 1.832608 tức tỉ lệ những hành khách có mức độ hài lòng về hãng hàng không ở nhóm satisfied/những hành khách có mức độ hài lòng về dịch vụ trên chuyến bay ở nhóm neutral or dissatisfied của khách hàng trung niên lớn hơn khoảng 83,26% so với tỉ lệ mức độ hài lòng về hãng hàng không ở nhóm satisfied/những hành khách có mức độ hài lòng về dịch vụ trên chuyến bay ở nhóm neutral or dissatisfied ở nhóm tuổi thanh niên.

3.4.12.5 Thống kê suy diễn

Kiểm định tính độc lập cho 2 biến (SF) và (Age):

Phương pháp chi bình phương: Giả thuyết Ho: SF và Age độc lập

x <- table(Age, SF);x
##            SF
## Age         neutral or dissatisfied satisfied
##   thanhnien                    8334      4855
##   trungnien                    6125      6539
chisq.test(x)
## 
##  Pearson's Chi-squared test with Yates' continuity correction
## 
## data:  x
## X-squared = 575.35, df = 1, p-value < 2.2e-16

Kết quả kiểm định trên cho thấy giá trị tới hạn p-value < 2.2e-16 < 5% vì vậy chưa có cơ sở để thừa nhận giả thuyết Ho, nói cách khác giữa mức độ hài lòng về hãng hàng không (SF) và độ tuổi (Age) có liên quan tới nhau.

3.4.13 Thống kê mô tả biến phụ thuộc: SF với biến độc lập IS

3.4.13.1 Bảng tần số, tần suất và biểu đồ

Bảng tần số:

l <- table(IS, SF); l
##       SF
## IS     neutral or dissatisfied satisfied
##   Thấp                    7026      2620
##   Cao                     7545      8783

Bảng tần suất:

l1 <- prop.table(l); l1
##       SF
## IS     neutral or dissatisfied satisfied
##   Thấp               0.2705013 0.1008701
##   Cao                0.2904828 0.3381458

Phân phối biên:

addmargins(l)
##       SF
## IS     neutral or dissatisfied satisfied   Sum
##   Thấp                    7026      2620  9646
##   Cao                     7545      8783 16328
##   Sum                    14571     11403 25974

Biểu đồ cột kết hợp 2 biến:

m <- data.frame(DL$Gender, DL$Travel, DL$Customer, DL$Class, DL$SF, DL$Age, DL$DDIM, DL$IS, SF, IS)
m |> ggplot(aes(x=IS,y=after_stat(count))) + geom_bar(fill="green") + geom_text(aes(label = scales::percent(after_stat(count/sum(count)))), stat = "count", color = "blue", vjust = - .5) + facet_grid(. ~SF) + labs(x = "Số điểm về mức độ hài lòng về dịch vụ trên chuyến bay",y = "Số người")

Thông qua bảng tần số, tần suất trên của 2 biến Mức độ hài lòng của hành khách đối với hãng hàng không (SF) và Số điểm về mức độ hài lòng về dịch vụ trên chuyến bay (IS) ta thấy có 14571 hành khách có Mức độ hài lòng của hành khách đối với hãng hàng không thuộc nhóm neutral or dissatisfied trong đó có 7026 hành khách có Số điểm về mức độ hài lòng về dịch vụ trên chuyến bay thuộc nhóm thấp (dưới 3 điểm), chiếm tỉ lệ 27% tổng số hành khách và 7545 hành khách có Số điểm về mức độ hài lòng về dịch vụ trên chuyến bay thuộc nhóm cao, chiếm tỉ lệ 29% tổng số hành khách. Bên cạnh đó có 11403 hành khách có Mức độ hài lòng của hành khách đối với hãng hàng không thuộc nhóm satisfied trong đó có 2620 hành khách có Số điểm về mức độ hài lòng về dịch vụ trên chuyến bay thuộc nhóm thấp, chiếm 10,1% tổng số hành khách và 8783 hành khách có Số điểm về mức độ hài lòng về dịch vụ trên chuyến bay thuộc nhóm cao, chiếm 33,8% tổng số hành khách. Qua biểu đồ có thể thấy đối với những hành khách có Mức độ hài lòng của hành khách đối với hãng hàng không thuộc nhóm neutral or dissatisfied và satisfied thì tỷ lệ những hành khách có Số điểm về mức độ hài lòng về dịch vụ trên chuyến bay thuộc nhóm cao nhiều hơn những hành khách có Số điểm về mức độ hài lòng về dịch vụ trên chuyến bay thuộc nhóm thấp.

3.4.13.2 Rủi ro tương đối (Risk ratio)

epitab(l, method = "riskratio")
## $tab
##       SF
## IS     neutral or dissatisfied        p0 satisfied        p1 riskratio    lower
##   Thấp                    7026 0.7283848      2620 0.2716152  1.000000       NA
##   Cao                     7545 0.4620897      8783 0.5379103  1.980413 1.911078
##       SF
## IS        upper p.value
##   Thấp       NA      NA
##   Cao  2.052264       0
## 
## $measure
## [1] "wald"
## 
## $conf.level
## [1] 0.95
## 
## $pvalue
## [1] "fisher.exact"

Theo kết quả trên ta thấy tỉ lệ rủi ro tương đối (risk ratio) của hành khách có mức độ hài lòng về hãng hàng không ở nhóm satisfied theo Số điểm về mức độ hài lòng về dịch vụ trên chuyến bay là 1,980413 tức là tỉ lệ những hành khách có mức độ hài lòng về hãng hàng không ở nhóm satisfied trong nhóm có Số điểm về mức độ hài lòng về dịch vụ trên chuyến bay cao lớn hơn khoảng 98,04% tỉ lệ những hành khách có mức độ hài lòng về hãng hàng không ở nhóm satisfied trong nhóm có Số điểm về mức độ hài lòng về dịch vụ trên chuyến bay thấp.

3.4.13.3 Tỷ lệ chênh lệch (odd ratio)

epitab(l, method = "oddsratio")
## $tab
##       SF
## IS     neutral or dissatisfied        p0 satisfied        p1 oddsratio    lower
##   Thấp                    7026 0.4821907      2620 0.2297641  1.000000       NA
##   Cao                     7545 0.5178093      8783 0.7702359  3.121695 2.956408
##       SF
## IS        upper p.value
##   Thấp       NA      NA
##   Cao  3.296223       0
## 
## $measure
## [1] "wald"
## 
## $conf.level
## [1] 0.95
## 
## $pvalue
## [1] "fisher.exact"

Theo kết quả trên ta thấy tỉ lệ chênh (odd ratio) là 3,121695 tức tỉ lệ những hành khách có mức độ hài lòng về hãng hàng không ở nhóm satisfied/những hành khách có mức độ hài lòng về dịch vụ trên chuyến bay ở nhóm neutral or dissatisfied của khách hàng có Số điểm về mức độ hài lòng về dịch vụ trên chuyến bay cao lớn hơn gấp 3,121695 lần so với tỉ lệ mức độ hài lòng về hãng hàng không ở nhóm satisfied/những hành khách có mức độ hài lòng về dịch vụ trên chuyến bay ở nhóm neutral or dissatisfied của khách hàng có Số điểm về mức độ hài lòng về dịch vụ trên chuyến bay thấp.

3.4.13.4 Thống kê suy diễn

Kiểm định tính độc lập cho 2 biến (SF) và (IS):

Phương pháp chi bình phương: Giả thuyết Ho: SF và IS độc lập

l <- table(IS, SF);l
##       SF
## IS     neutral or dissatisfied satisfied
##   Thấp                    7026      2620
##   Cao                     7545      8783
chisq.test(l)
## 
##  Pearson's Chi-squared test with Yates' continuity correction
## 
## data:  l
## X-squared = 1744.9, df = 1, p-value < 2.2e-16

Kết quả kiểm định trên cho thấy giá trị tới hạn p-value < 2.2e-16 < 5% vì vậy chưa có cơ sở để thừa nhận giả thuyết Ho, nói cách khác giữa mức độ hài lòng về hãng hàng không (SF) và Số điểm về mức độ hài lòng về dịch vụ trên chuyến bay (IS) có liên quan tới nhau.

3.4.14 Thống kê mô tả biến phụ thuộc: SF với biến độc lập Số phút bị trễ khi khởi hành (DDIM)

3.4.14.1 Bảng tần số, tần suất và biểu đồ

Bảng tần số:

o <- table(DDIM, SF); o
##      SF
## DDIM  neutral or dissatisfied satisfied
##   nho                    6711      4522
##   lon                      31        24

Bảng tần suất:

o1 <- prop.table(o); o1
##      SF
## DDIM  neutral or dissatisfied   satisfied
##   nho             0.594525159 0.400602410
##   lon             0.002746279 0.002126152

Phân phối biên:

addmargins(o)
##      SF
## DDIM  neutral or dissatisfied satisfied   Sum
##   nho                    6711      4522 11233
##   lon                      31        24    55
##   Sum                    6742      4546 11288

Thông qua bảng tần số, tần suất trên của 2 biến Mức độ hài lòng của hành khách đối với hãng hàng không và Số phút bị trễ khi khởi hành (DDIM) ta thấy có 6742 hành khách có Mức độ hài lòng của hành khách đối với hãng hàng không thuộc nhóm neutral or satisfied trong đó có 6711 hành khách có Số phút bị trễ khi khởi hành thuộc nhóm nhỏ, chiếm tỉ lệ 59,45% tổng số hành khách và 31 hành khách nhóm lớn, chiếm tỉ lệ 0,27% tổng số hành khách. Bên cạnh đó có 4546 hành khách có Mức độ hài lòng của hành khách đối với hãng hàng không thuộc nhóm satisfied trong đó có 4522 hành khách có Số phút bị trễ khi khởi hành thuộc nhóm nhỏ, chiếm tỉ lệ 40,06% tổng số hành khách và 24 hành khách nhóm lớn, chiếm tỉ lệ 0,21% tổng số hành khách. Trong tổng số hành khách trên chuyến bay thì tỉ lệ những hành khách có số phút bị trễ khi khởi hành thuộc nhóm nhỏ lớn hơn rất nhiều lần so với những hành khách có số phút bị trễ khi khởi hành thuộc nhóm lớn. Qua biểu đồ có thể thấy đối với những hành khách có Mức độ hài lòng của hành khách đối với hãng hàng không thuộc cả nhóm neutral or satisfied và satisfied thì tỷ lệ những hành khách có số phút bị trễ khi khởi hành thuộc nhóm nhỏ đều nhiều hơn những hành khách có số phút bị trễ khi khởi hành thuộc nhóm lớn.

3.4.14.2 Rủi ro tương đối (Risk ratio)

epitab(o, method = "riskratio")
## $tab
##      SF
## DDIM  neutral or dissatisfied        p0 satisfied        p1 riskratio     lower
##   nho                    6711 0.5974361      4522 0.4025639  1.000000        NA
##   lon                      31 0.5636364        24 0.4363636  1.083961 0.8020523
##      SF
## DDIM     upper   p.value
##   nho       NA        NA
##   lon 1.464957 0.6796631
## 
## $measure
## [1] "wald"
## 
## $conf.level
## [1] 0.95
## 
## $pvalue
## [1] "fisher.exact"

Theo kết quả trên ta thấy tỉ lệ rủi ro tương đối (risk ratio) của hành khách có Mức độ hài lòng của hành khách đối với hãng hàng không thuộc nhóm satisfied theo Số phút bị trễ khi khởi hành là 1.083961 tức là tỉ lệ những hành khách có Mức độ hài lòng của hành khách đối với hãng hàng không trong nhóm satisfied có Số phút bị trễ khi khởi hành lớn hơn khoảng 8.39% tỉ lệ những hành khách có số điểm về Mức độ hài lòng về dịch vụ trong nhóm satisfied có Số phút bị trễ khi khởi hành nhỏ.

3.4.14.3 Tỷ lệ chênh lệch (odd ratio)

epitab(o, method = "oddsratio")
## $tab
##      SF
## DDIM  neutral or dissatisfied          p0 satisfied          p1 oddsratio
##   nho                    6711 0.995401958      4522 0.994720634  1.000000
##   lon                      31 0.004598042        24 0.005279366  1.148963
##      SF
## DDIM      lower    upper   p.value
##   nho        NA       NA        NA
##   lon 0.6734316 1.960284 0.6796631
## 
## $measure
## [1] "wald"
## 
## $conf.level
## [1] 0.95
## 
## $pvalue
## [1] "fisher.exact"

Theo kết quả trên ta thấy tỉ lệ chênh (odd ratio) là 1.148963 tức tỉ lệ những hành khách có Mức độ hài lòng của hành khách đối với hãng hàng không thuộc nhóm satisfied/những hành khách có Mức độ hài lòng của hành khách đối với hãng hàng không thuộc nhóm neutral or dissatisfied có Số phút bị trễ khi khởi hành lớn thì lớn hơn khoảng 14,89% so với tỉ lệnhững hành khách có Mức độ hài lòng của hành khách đối với hãng hàng không thuộc nhóm satisfied/những hành khách có Mức độ hài lòng của hành khách đối với hãng hàng không thuộc nhóm neutral or dissatisfied có Số phút bị trễ khi khởi hành nhỏ.

3.4.14.4 Thống kê suy diễn

Kiểm định tính độc lập cho 2 biến (SF) và (DDIM):

Phương pháp chi bình phương: Giả thuyết Ho: SF và DDIM độc lập

o <- table(DDIM, SF);o
##      SF
## DDIM  neutral or dissatisfied satisfied
##   nho                    6711      4522
##   lon                      31        24
chisq.test(o)
## 
##  Pearson's Chi-squared test with Yates' continuity correction
## 
## data:  o
## X-squared = 0.13842, df = 1, p-value = 0.7099

Kết quả kiểm định trên cho thấy giá trị tới hạn P_value = 0.7099 > 5% vì vậy có cơ sở để thừa nhận giả thuyết Ho, nói cách khác giữa Mức độ hài lòng của hành khách đối với hãng hàng không và Số phút bị trễ khi khởi hành (DDIM) không có liên quan tới nhau.

3.5 Khoảng ước lượng cho tỷ lệ

3.5.1 Ước lượng tỷ lệ số người được khảo sát có Mức độ hài lòng về dịch vụ trên chuyến bay (IS) cao lớn hơn 3

Ước lượng tỷ lệ số người được khảo sát có Mức độ hài lòng về dịch vụ trên chuyến bay (IS) cao lớn hơn 3 và đồng thời kiểm định xem tỷ lệ người được khảo sát có Mức độ hài lòng về dịch vụ trên chuyến bay (IS) cao lớn hơn 3 có phải là 50% hay không. Ta kiểm định giả thuyết:

H0: Tỷ lệ số người được khảo sát có Mức độ hài lòng về dịch vụ trên chuyến bay (IS) cao lớn hơn 3 là 50%

H1: Tỷ lệ số người được khảo sát có Mức độ hài lòng về dịch vụ trên chuyến bay (IS) cao lớn hơn 3 không phải là 50%

rm<- DL[DL$IS > 3,]
prop.test(length(rm$IS), length(DL$IS), p = 0.5)
## 
##  1-sample proportions test with continuity correction
## 
## data:  length(rm$IS) out of length(DL$IS), null probability 0.5
## X-squared = 1717.3, df = 1, p-value < 2.2e-16
## alternative hypothesis: true p is not equal to 0.5
## 95 percent confidence interval:
##  0.6226664 0.6344559
## sample estimates:
##         p 
## 0.6285802

Vì p_value < 2.2e-16 < 0.05 nên ta bác bỏ giả thuyết H0. Nghĩa là Tỷ lệ số người được khảo sát có Mức độ hài lòng về dịch vụ trên chuyến bay (IS) cao lớn hơn 3 không phải là 50%

Với độ tin cậy 95%, ước lượng tỷ lệ số người được khảo sát có Mức độ hài lòng về dịch vụ trên chuyến bay (IS) cao lớn hơn 3 nằm trong khoảng từ 0.6226664 đến 0.6344559.

3.5.2 Ước lượng tỷ lệ số người được khảo sát có Mức độ hài lòng về dịch vụ trên chuyến bay (IS) cao lớn hơn 3 giữa giới tính nam và nữ

Giả thuyết:

H0: không có sự khác biệt đáng kể trong tỷ lệ giữa Mức độ hài lòng về dịch vụ trên chuyến bay (IS) cao lớn hơn 3 giữa giới tính nam và nữ.

H1: có sự khác biệt đáng kể trong tỷ lệ giữa Mức độ hài lòng về dịch vụ trên chuyến bay (IS) cao lớn hơn 3 giữa giới tính nam và nữ.

rmm <- DL[DL$Gender == "Male",]
rmf <- DL[DL$Gender == "Female",]

rmm1 <- rmm[rmm$IS > 3,]
rmf1 <- rmf[rmf$IS > 3,]

a <- c(nrow(rmm), nrow(rmf))
b <- c(nrow(rmm1), nrow(rmf1))

prop.test(b,a)
## 
##  2-sample test for equality of proportions with continuity correction
## 
## data:  b out of a
## X-squared = 22.373, df = 1, p-value = 2.244e-06
## alternative hypothesis: two.sided
## 95 percent confidence interval:
##  0.01661870 0.04026329
## sample estimates:
##    prop 1    prop 2 
## 0.6430022 0.6145612

Vì p_value = 2.244e-06 < 0.05 đủ cơ sở để bác bỏ giả thuyết H0. Nghĩa là đủ cơ sở để chứng minh rằng có sự khác biệt trong tỷ lệ giữa Mức độ hài lòng về dịch vụ trên chuyến bay (IS) cao lớn hơn 3 giữa giới tính nam và nữ.

Với độ tin cậy 95%, khoảng chênh lệch giữa Mức độ hài lòng về dịch vụ trên chuyến bay (IS) cao lớn hơn 3 giữa giới tính nam và nữ nằm trong khoảng từ 0.6430022 đến 0.6145612.

CHƯƠNG 4: MÔ HÌNH HỒI QUY

Chạy mô hình hồi quy với biến phụ thuộc Inflight service: Mức độ hài lòng về dịch vụ trên chuyến bay (IS)

4.1. Mô hình logit

IS <- cut(DL$IS, breaks = c(0,3,5), labels=c("Thấp","Cao"))
table(IS)
## IS
##  Thấp   Cao 
##  9646 16328
Age <- cut(DL$Age, breaks = c(7,40,85), labels=c("thanhnien","trungnien"))
table(Age)
## Age
## thanhnien trungnien 
##     13189     12664

Tôi mã hóa biến định lượng Age thành biến định tính 2 giá trị để đưa vào mô hình vì muốn biết cụ thể nhóm độ tuổi của hành khách nào sẽ ảnh hưởng đến Mức độ hài lòng về dịch vụ trên chuyến bay (IS) và mức độ tác động của nó như thế nào.

mh1 <- glm(data = k, formula = factor(IS) ~ Gender + Travel + Customer + DL$Class + Age + DL$DDIM + SF, family = binomial(link = "logit"))
levels(factor(IS))
## [1] "Thấp" "Cao"
summary(mh1)
## 
## Call:
## glm(formula = factor(IS) ~ Gender + Travel + Customer + DL$Class + 
##     Age + DL$DDIM + SF, family = binomial(link = "logit"), data = k)
## 
## Coefficients:
##                          Estimate Std. Error z value Pr(>|z|)    
## (Intercept)             0.8899394  0.0443241  20.078  < 2e-16 ***
## GenderMale              0.1281927  0.0275232   4.658 3.20e-06 ***
## TravelPersonal Travel   1.4345087  0.0445014  32.235  < 2e-16 ***
## CustomerLoyal Customer -1.1147659  0.0465251 -23.961  < 2e-16 ***
## DL$ClassEco            -0.8492843  0.0377027 -22.526  < 2e-16 ***
## DL$ClassEco Plus       -0.8937706  0.0561539 -15.916  < 2e-16 ***
## Agetrungnien           -0.2134418  0.0292548  -7.296 2.97e-13 ***
## DL$DDIM                -0.0019109  0.0003668  -5.210 1.89e-07 ***
## SFsatisfied             1.5678669  0.0369964  42.379  < 2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 34115  on 25850  degrees of freedom
## Residual deviance: 30806  on 25842  degrees of freedom
##   (125 observations deleted due to missingness)
## AIC: 30824
## 
## Number of Fisher Scoring iterations: 4
  • Kiểm định sự phù hợp của mô hình

Cặp giả thuyết - đối thuyết:

H0: Mô hình không phù hợp với dữ liệu điều tra

H1: Mô hình phù hợp với dữ liệu điều tra

lr_test1 <- anova(mh1, test = "Chisq")
p_value1 <- lr_test1$Pr[2]
p_value1
## [1] 1.540252e-06

Kết quả kiểm định cho thấy P_value < 0.05 nên ta bác bỏ giả thuyết H0, cho thấy mô hình 1 là mô hình phù hợp với mức ý nghĩa 5%.

4.2 Mô hình probit

mh2 <- glm(data = k, formula = factor(IS) ~ Gender + Travel + Customer + DL$Class + Age + DL$DDIM + SF, family = binomial(link = "probit"))
levels(factor(IS))
## [1] "Thấp" "Cao"
summary(mh2)
## 
## Call:
## glm(formula = factor(IS) ~ Gender + Travel + Customer + DL$Class + 
##     Age + DL$DDIM + SF, family = binomial(link = "probit"), data = k)
## 
## Coefficients:
##                          Estimate Std. Error z value Pr(>|z|)    
## (Intercept)             0.5419796  0.0266039  20.372  < 2e-16 ***
## GenderMale              0.0760862  0.0165867   4.587 4.49e-06 ***
## TravelPersonal Travel   0.8354764  0.0263614  31.693  < 2e-16 ***
## CustomerLoyal Customer -0.6507978  0.0274623 -23.698  < 2e-16 ***
## DL$ClassEco            -0.5176963  0.0225994 -22.908  < 2e-16 ***
## DL$ClassEco Plus       -0.5454022  0.0341068 -15.991  < 2e-16 ***
## Agetrungnien           -0.1244033  0.0176210  -7.060 1.67e-12 ***
## DL$DDIM                -0.0011571  0.0002215  -5.224 1.75e-07 ***
## SFsatisfied             0.9208065  0.0217075  42.419  < 2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 34115  on 25850  degrees of freedom
## Residual deviance: 30844  on 25842  degrees of freedom
##   (125 observations deleted due to missingness)
## AIC: 30862
## 
## Number of Fisher Scoring iterations: 4
  • Kiểm định sự phù hợp của mô hình

Cặp giả thuyết - đối thuyết:

H0: Mô hình không phù hợp với dữ liệu điều tra

H1: Mô hình phù hợp với dữ liệu điều tra

# Kiểm định sự phù hợp của mô hình bằng cách tính giá trị Prob(LR statistic)
lr_test <- anova(mh2, test = "Chisq")
p_value <- lr_test$Pr[2] 
p_value
## [1] 1.540252e-06

Kết quả kiểm định cho thấy P_value < 0.05 nên ta bác bỏ giả thuyết H0, cho thấy mô hình 2 là mô hình phù hợp với mức ý nghĩa 5%.

4.3 Mô hình cloglog

mh3 <- glm(data = k, formula = factor(IS) ~ Gender + Travel + Customer + DL$Class + Age + DL$DDIM + SF, family = binomial(link = "cloglog"))
levels(factor(IS))
## [1] "Thấp" "Cao"
summary(mh3)
## 
## Call:
## glm(formula = factor(IS) ~ Gender + Travel + Customer + DL$Class + 
##     Age + DL$DDIM + SF, family = binomial(link = "cloglog"), 
##     data = k)
## 
## Coefficients:
##                          Estimate Std. Error z value Pr(>|z|)    
## (Intercept)             0.2214399  0.0266804   8.300  < 2e-16 ***
## GenderMale              0.0604168  0.0168577   3.584 0.000338 ***
## TravelPersonal Travel   0.8132401  0.0286816  28.354  < 2e-16 ***
## CustomerLoyal Customer -0.6389434  0.0279891 -22.828  < 2e-16 ***
## DL$ClassEco            -0.5735425  0.0236342 -24.267  < 2e-16 ***
## DL$ClassEco Plus       -0.6233514  0.0378611 -16.464  < 2e-16 ***
## Agetrungnien           -0.1065397  0.0179583  -5.933 2.98e-09 ***
## DL$DDIM                -0.0013165  0.0002489  -5.288 1.23e-07 ***
## SFsatisfied             0.8734808  0.0221479  39.439  < 2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 34115  on 25850  degrees of freedom
## Residual deviance: 30929  on 25842  degrees of freedom
##   (125 observations deleted due to missingness)
## AIC: 30947
## 
## Number of Fisher Scoring iterations: 8
  • Kiểm định sự phù hợp của mô hình

Cặp giả thuyết - đối thuyết:

H0: Mô hình không phù hợp với dữ liệu điều tra

H1: Mô hình phù hợp với dữ liệu điều tra

# Kiểm định sự phù hợp của mô hình bằng cách tính giá trị Prob(LR statistic)
lr_test <- anova(mh3, test = "Chisq")
p_value <- lr_test$Pr[2] 
p_value
## [1] 1.540252e-06

Kết quả kiểm định cho thấy P_value < 0.05 nên ta bác bỏ giả thuyết H0, cho thấy mô hình 1 là mô hình phù hợp với mức ý nghĩa 5%.

4.4 Lựa chọn mô hình

Để đánh giá các mô hình hồi quy trên, ta sử dụng các tiêu chí sau:

# Tiêu chí AIC - Akaike Information Criterion
aic1 <- AIC(mh1)
aic2 <- AIC(mh2)
aic3 <- AIC(mh3)
AIC <-cbind(aic1,aic2,aic3)
AIC
##          aic1     aic2     aic3
## [1,] 30823.55 30861.94 30947.04
# Tiêu chí Deviance
de1 <- deviance(mh1)
de2 <- deviance(mh2)
de3 <- deviance(mh3)
deviance <- cbind(de1,de2,de3)
deviance
##           de1      de2      de3
## [1,] 30805.55 30843.94 30929.04
# Tiêu chí Brier Score
bs1 <- BrierScore(mh1)
bs2 <- BrierScore(mh2)
bs3 <- BrierScore(mh3)
BrierScore <- cbind(bs1,bs2,bs3)
BrierScore
##            bs1       bs2       bs3
## [1,] 0.2034545 0.2038786 0.2047766

Kết luận: Dựa vào các tiêu chí trên, ta thấy các giá trị AIC, deviance và Brier Score của mô hình logit là nhỏ nhất, tức là mô hình logit là mô hình tốt nhất trong 3 mô hình.

4.5 Chạy mô hình phù hợp

summary(mh1)
## 
## Call:
## glm(formula = factor(IS) ~ Gender + Travel + Customer + DL$Class + 
##     Age + DL$DDIM + SF, family = binomial(link = "logit"), data = k)
## 
## Coefficients:
##                          Estimate Std. Error z value Pr(>|z|)    
## (Intercept)             0.8899394  0.0443241  20.078  < 2e-16 ***
## GenderMale              0.1281927  0.0275232   4.658 3.20e-06 ***
## TravelPersonal Travel   1.4345087  0.0445014  32.235  < 2e-16 ***
## CustomerLoyal Customer -1.1147659  0.0465251 -23.961  < 2e-16 ***
## DL$ClassEco            -0.8492843  0.0377027 -22.526  < 2e-16 ***
## DL$ClassEco Plus       -0.8937706  0.0561539 -15.916  < 2e-16 ***
## Agetrungnien           -0.2134418  0.0292548  -7.296 2.97e-13 ***
## DL$DDIM                -0.0019109  0.0003668  -5.210 1.89e-07 ***
## SFsatisfied             1.5678669  0.0369964  42.379  < 2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 34115  on 25850  degrees of freedom
## Residual deviance: 30806  on 25842  degrees of freedom
##   (125 observations deleted due to missingness)
## AIC: 30824
## 
## Number of Fisher Scoring iterations: 4
  • Giải thích kết quả:

Kết quả phân tích hồi quy logit cho thấy, 7 biến đưa vào mô hình hồi quy để phân tích dều có ý nghĩa

+) Giới tính (Gender) có ảnh hưởng đến Mức độ hài lòng về dịch vụ trên chuyến bay với hệ số mang dấu (+) cho thấy Mức độ hài lòng về dịch vụ trên chuyến bay cao khi giới tính là Nam

+) Mục đích chuyến bay của hành khách (Travel) có ảnh hưởng đến Mức độ hài lòng về dịch vụ trên chuyến bay với hệ số mang dấu (+) cho thấy Mức độ hài lòng về dịch vụ trên chuyến bay cao khi Mục đích du lịch là cá nhân: Personal Travel

+) Loại khách hàng (Customer) có ảnh hưởng đến Mức độ hài lòng về dịch vụ trên chuyến bay với hệ số mang dấu (-) cho thấy Mức độ hài lòng về dịch vụ trên chuyến bay cao khi khách hàng thuộc nhóm disloyal customer

+) Hạng du lịch trên máy bay của hành khách (Class) có ảnh hưởng đến Mức độ hài lòng về dịch vụ trên chuyến bay với hệ số mang dấu (-) cho thấy Mức độ hài lòng về dịch vụ trên chuyến bay cao khi khách hàng có hạng du lịch là Thương gia

+) Tuổi thực tế của hành khách (Age) có ảnh hưởng đến Mức độ hài lòng về dịch vụ trên chuyến bay với hệ số mang dấu (-) cho thấy Mức độ hài lòng về dịch vụ trên chuyến bay cao khi khách hàng có độ tuổi là thanh niên

+) Số phút bị trễ khi khởi hành (DDIM) có ảnh hưởng đến Mức độ hài lòng về dịch vụ trên chuyến bay với hệ số mang dấu (-) cho thấy Mức độ hài lòng về dịch vụ trên chuyến bay cao khi Số phút bị trễ khi khởi hành thấp

+) Mức độ hài lòng của hành khách đối với hãng hàng không (SF) có ảnh hưởng đến Mức độ hài lòng về dịch vụ trên chuyến bay với hệ số mang dấu (+) cho thấy Mức độ hài lòng về dịch vụ trên chuyến bay cao khi khách hàng có Mức độ hài lòng của hành khách đối với hãng hàng không thuộc nhóm satisfied.

MHlogit: logit(π) = log(π/1−π) = 0.8899394 + 0.1281927GenderMale + 1.4345087TravelPersonal Travel - 1.1147659CustomerLoyal Customer - 0.8492843DL\(ClassEco - 0.8937706DL\)ClassEco Plus - 0.2134418Agetrungnien - 0.0019109DL$DDIM + 1.5678669SFsatisfied

CHƯƠNG 5: KẾT LUẬN VÀ KIẾN NGHỊ

5.1 Kết luận

Kết quả nghiên cứu cho thấy thông qua việc phân tích định tính kết hợp định lượng, sử dụng bộ số liệu thu nhập của một hãng hàng không và ước lượng mô hình hồi quy tổng quát cho các biến từ đó kiểm định và lựa chọn mô hình phù hợp để chỉ ra mức độ hài lòng về dịch vụ trên chuyến bay của hành khách phụ thuộc và bị tác động bởi các yếu tố nào. Từ đó đưa ra phương án và giải pháp chiến lược phù hợp cụ thể để chiếm lĩnh thị phần hàng không, gia tăng mức độ hài lòng, thu hút khách hàng.

Nghiên cứu đã chỉ ra các yếu tố đầu vào đều có tác động đến mức độ hài lòng của khách hàng đối với dịch vụ trên chuyến bay và mức độ tác động của mỗi biến là khác nhau. Nghiên cứu đã chỉ ra rằng các yếu tố Travel, Class, Customer, Age, SF có tác động mạnh tới mức độ hài lòng của khách hàng đối với dịch vụ trên chuyến bay còn 2 yếu tố Gender, DDIM cũng tác động mức độ hài lòng của khách hàng đối với dịch vụ trên chuyến bay với mức độ vừa ở mức ý nghĩa 5%.

5.2 Kiến nghị

Dựa trên kết quả phân tích tác động các yếu tố như mục đích du lịch, giới tính,… và một số biến khác có ý nghĩa ảnh hưởng đến mức độ hài lòng của khách hàng đối với dịch vụ trên chuyến bay, nghiên cứu đưa ra một số khuyến nghị, chính sách và chiến lược nhằm đánh vào tâm lý khách hàng, đưa ra giải pháp phù hợp để chiếm lĩnh thị trường, gia tăng mức độ hài lòng, thu hút khách hàng. Chẳng hạn như các hãng hàng không nên làm các cuộc khảo sát về chất lượng, dịch vụ, đào tạo chuyên sâu cho nhân viên,… để hiểu rõ được điểm mạnh điểm yếu về dịch vụ của hãng mình, thấu hiểu tâm lý của những hành khách dễ dàng đưa ra cách xủ lý tình huống phù hợp.

Trong bối cảnh nền kinh tế phát triển, nhu cầu đi lại bằng máy bay tăng cao khiến cho các hãng hàng không tranh nhau về giá cả, dịch vụ, chất lượng để chiếm lĩnh thị trường. Chính vì thế cách để có thể thu hút khách hàng là nâng cao chất lượng dịch vụ trên chuyến bay ngày một tốt hơn. Các hãng hàng không nên chú ý và tập trung vào các yếu tố ảnh hưởng đến chất lượng dịch vụ trên chuyến bay để khách hàng hài lòng và chọn hãng hàng không của mình để di chuyển.

TÀI LIỆU THAM KHẢO

  1. T.K.Thanh, T.M.Tường, V.A.L.Duy, Bài giảng Phân tích dữ liệu định tính.
LS0tDQp0aXRsZTogIlBIw4JOIFTDjUNIIEThu64gTEnhu4ZVIMSQ4buKTkggVMONTkgiDQphdXRob3I6ICJOZ3V54buFbiBUaOG7iyBMYW4gQW5oIg0KZGF0ZTogIjIwMjMtMDctMTciDQpvdXRwdXQ6DQogICBodG1sX2RvY3VtZW50Og0KICAgICB0b2M6IHRydWUNCiAgICAgdG9jX2Zsb2F0OiB0cnVlDQogICAgIGNvZGVfZm9sZGluZzogaGlkZQ0KICAgICBjb2RlX2Rvd25sb2FkOiB0cnVlDQotLS0NCg0KTGluayBi4buZIGThu68gbGnhu4d1OiBodHRwczovL2RvY3MuZ29vZ2xlLmNvbS9zcHJlYWRzaGVldHMvZC8xa2lOMUVPSzRHamEySHliSVFVQUd0aW9BMU93YkVTZXovZWRpdCNnaWQ9ODg1NDgyNjk4DQoNCiMgTOG7nEkgQ+G6ok0gxqBODQoNCsSQ4bqndSB0acOqbiwgZW0geGluIGfhu61pIGzhu51pIGPhuqNtIMahbiBjaMOibiB0aMOgbmggxJHhur9uIFRyxrDhu51uZyDEkOG6oWkgaOG7jWMgVMOgaSBjaMOtbmggLSBNYXJrZXRpbmcgxJHDoyDEkcawYSBtw7RuIGjhu41jIFBow6JuIHTDrWNoIGThu68gbGnhu4d1IMSR4buLbmggdMOtbmggdsOgbyB0csawxqFuZyB0csOsbmggZ2nhuqNuZyBk4bqheS4gxJDhurdjIGJp4buHdCwgZW0geGluIGfhu61pIGzhu51pIGPhuqNtIMahbiBzw6J1IHPhuq9jIMSR4bq/biBnaeG6o25nIHZpw6puIGLhu5kgbcO0biAtIFRo4bqneSBUcuG6p24gTeG6oW5oIFTGsOG7nW5nIMSRw6MgZOG6oXkgZOG7lywgdHJ1eeG7gW4gxJHhuqF0IG5o4buvbmcga2nhur9uIHRo4bupYyBxdcO9IGLDoXUgY2hvIGVtIHRyb25nIHN14buRdCB0aOG7nWkgZ2lhbiBo4buNYyB04bqtcCB24burYSBxdWEuIFRyb25nIHRo4budaSBnaWFuIHRoYW0gZ2lhIGzhu5twIGjhu41jIFBow6JuIHTDrWNoIGThu68gbGnhu4d1IMSR4buLbmggdMOtbmggY+G7p2EgdGjhuqd5LCBlbSDEkcOjIGPDsyB0aMOqbSBjaG8gbcOsbmggbmhp4buBdSBraeG6v24gdGjhu6ljIGLhu5Ugw61jaCwgdGluaCB0aOG6p24gaOG7jWMgdOG6rXAgaGnhu4d1IHF14bqjLCBuZ2hpw6ptIHTDumMuIMSQw6J5IGNo4bqvYyBjaOG6r24gc+G6vSBsw6Agbmjhu69uZyBraeG6v24gdGjhu6ljIHF1w70gYsOhdSwgbMOgIGjDoG5oIHRyYW5nIMSR4buDIGVtIGPDsyB0aOG7gyB24buvbmcgYsaw4bubYyBzYXUgbsOgeS4NCg0KQuG7mSBtw7RuIFBow6JuIHTDrWNoIGThu68gbGnhu4d1IMSR4buLbmggdMOtbmggbMOgIG3DtG4gaOG7jWMgdGjDuiB24buLLCB2w7QgY8O5bmcgYuG7lSDDrWNoIHbDoCBjw7MgdMOtbmggdGjhu7FjIHThur8gY2FvLiDEkOG6o20gYuG6o28gY3VuZyBj4bqlcCDEkeG7pyBraeG6v24gdGjhu6ljLCBn4bqvbiBsaeG7gW4gduG7m2kgbmh1IGPhuqd1IHRo4buxYyB0aeG7hW4gY+G7p2Egc2luaCB2acOqbi4gVHV5IG5oacOqbiwgZG8gduG7kW4ga2nhur9uIHRo4bupYyBjw7JuIG5oaeG7gXUgaOG6oW4gY2jhur8gdsOgIGto4bqjIG7Eg25nIHRp4bq/cCB0aHUgdGjhu7FjIHThur8gY8OybiBuaGnhu4F1IGLhu6Egbmfhu6EuIE3hurdjIGTDuSBlbSDEkcOjIGPhu5EgZ+G6r25nIGjhur90IHPhu6ljIG5oxrBuZyBjaOG6r2MgY2jhuq9uIGLDoGkgdGnhu4N1IGx14bqtbiBraMOzIGPDsyB0aOG7gyB0csOhbmgga2jhu49pIG5o4buvbmcgdGhp4bq/dSBzw7N0IHbDoCBuaGnhu4F1IGNo4buXIGPDsm4gY2jGsGEgY2jDrW5oIHjDoWMsIGvDrW5oIG1vbmcgdGjhuqd5IHhlbSB4w6l0IHbDoCBnw7NwIMO9IMSR4buDIGLDoGkgdGnhu4N1IGx14bqtbiBj4bunYSBlbSDEkcaw4bujYyBob8OgbiB0aGnhu4duIGjGoW4uIA0KDQpFbSB4aW4gY2jDom4gdGjDoG5oIGPhuqNtIMahbi4NCg0KIyBM4bucSSBN4bueIMSQ4bqmVQ0KDQojIyAxLiBMw70gZG8gY2jhu41uIMSR4buBIHTDoGkNCg0KVHJvbmcgYuG7kWkgY+G6o25oIG5nw6B5IG5heSwgdMOsbmggaMOsbmggaG/huqF0IMSR4buZbmcgY+G7p2EgbmfDoG5oIGjDoG5nIGtow7RuZyBWaeG7h3QgcGjDoXQgdHJp4buDbiAgbmhhbmggIHbDoCAgdMSDbmcgIGNhbyAgxJHhu5l0ICBiaeG6v24sICB0aGVvIGLDoW8gIGPDoW8gY+G7p2EgIEhp4buHcCAgaOG7mWkgIHbhuq1uICB04bqjaSAgaMOgbmcgIGtow7RuZyAgcXXhu5FjICB04bq/IChJQVRBKSwgVmnhu4d0IE5hbSDEkcaw4bujYyBnaGkgbmjhuq1uIGzDoCBt4buZdCB0cm9uZyBuaOG7r25nIHRo4buLIHRyxrDhu51uZyBow6BuZyBraMO0bmcgY8OzIHThu5FjIMSR4buZIHTEg25nIHRyxrDhu59uZyBow6BuZyBuxINtIG5oYW5oIG5o4bqldCB0aOG6vyBnaeG7m2ksIGNhbyBoxqFuIHThu5FjIMSR4buZIHRydW5nIGLDrG5oIGPhu6dhIGtodSB24buxYyBjaMOidSDDgSDigJMgVGjDoWkgQsOsbmggRMawxqFuZy4gVOG7tyB0cuG7jW5nIHbhuq1uIHThuqNpIGjDoG5oIGtow6FjaCBxdWEgxJHGsOG7nW5nIGjDoG5nIGtow7RuZyB0xINuZyBn4bqlcCBoxqFuIDIgbOG6p24gdOG7qyBt4bupYyAwLDUlIHRyb25nIG7Eg20gMjAwOSBsw6puIG3hu6ljIDEsMiAlIHRyb25nIG7Eg20gMjAxOS4NCiANCsSQ4buRaSB24bubaSBuZ8OgbmggaMOgbmcga2jDtG5nIFZp4buHdCBOYW0gaGnhu4duIHThuqFpLCB0csOqbiB0aOG7iyB0csaw4budbmcgaMOgbmcga2jDtG5nIFZp4buHdCBOYW0gY8OzIHPhu7EgdGhhbSBnaWEgY3VuZyBj4bqlcCBk4buLY2ggduG7pSB24bqtbiBjaHV54buDbiBow6BuaCBraMOhY2ggY+G7p2EgNSBow6NuZyBow6BuZyAga2jDtG5nICBiYW8gIGfhu5NtICBU4buVbmcgIGPDtG5nICB0eSAgSMOgbmcgIEtow7RuZyAgVmnhu4d0IE5hbSAgKFZpZXRuYW1haXJsaW5lcyksICBU4buVbmcgY8O0bmcgIHR5ICBj4buVICBwaOG6p24gIGjDoG5nIGtow7RuZyBWaWV0amV0IChWaWV0amV0IEFpciksIEPDtG5nIHR5IGPhu5UgcGjhuqduIGjDoG5nIGtow7RuZyBUcmUgVmnhu4d0KEJhbWJvbyBBaXJ3YXlzKSwgQ8O0bmcgdHkgY+G7lSBwaOG6p24gaMOgbmcga2jDtG5nIFBhY2lmaWMgKFBhY2lmaWMgQWlybGluZXMpLCBjw7RuZyB0eSBCYXkgZOG7i2NoduG7pSBow6BuZyBraMO0bmcgVmnhu4d0IE5hbSAoVkFTQ08pIHbhu5tpIG3DtCBow6xuaCBraW5oIGRvYW5oIGtow6FjIG5oYXUgaMaw4bubbmcgxJHhur9uIGPDoWMgxJHhu5FpIHTGsOG7o25nICBraMOhY2ggaMOgbmcga2jDoWMgbmhhdSwgY2jhuqV0IGzGsOG7o25nIGThu4tjaCB24bulIHbhuq1uIGNodXnhu4NuIGjDoG5nIGtow7RuZyBsw6AgxJFhIGThuqFuZyB2w6Aga2jDtG5nIGdp4buRbmcgbmhhdS4gQ2jDrW5oIHbDrCB0aOG6vyDEkcOjIHjhuqN5IHJhIHPhu7EgY+G6oW5oIHRyYW5oIGtow7RuZyBo4buBIG5o4buPIGdp4buvYSBjw6FjIGjDo25nIGjDoG5nIGtow7RuZyBraMO0bmcgduG7gSBnacOhIHbDqSwgZOG7i2NoIHbhu6UuLi4gxJHhu4MgZ2nDoG5oIHRo4buLIHBo4bqnbiB24buBIG3DrG5oLiANCg0KVuG6rXkgxJHhu4MgdOG7k24gdOG6oWksIHPhu5FuZyBzw7N0IHbDoCBnaeG7ryB24buvbmcgaOG7hyBz4buRIGdo4bq/IChsb2FkLWZhY3RvcikgY8WpbmcgbmjGsCB0aOG7iyBwaOG6p24gaMOgbmcga2jDtG5nLCB24bqlbiDEkeG7gSBuZ2hpw6puIGPhu6l1IHbDoCDEkcawYSByYSBjw6FjIGdp4bqjaSBwaMOhcCBsw6BtIHRo4buPYSBtw6NuIHPhu7EgaMOgaSBsw7JuZyBj4bunYSBraMOhY2ggaMOgbmcgbMOgIHLhuqV0IGPhuqVwIGLDoWNoIHbDoCBj4bqnbiB0aGnhur90LiBUw6xtIGhp4buDdSBuaOG7r25nIHnhur91IHThu5EgcXV54bq/dCDEkeG7i25oIMSR4bq/biBz4buxIGjDoGkgbMOybmcgY+G7p2Ega2jDoWNoIGjDoG5nIGNow61uaCBsw6AgY8ahIHPhu58gxJHhu4MgY8OhYyBow6NuZyBow6BuZyBraMO0bmcgcGjDoXQgaHV5IGto4bqjIG7Eg25nIHbhu5FuIGPDsyBj4bunYSBow6NuZywgxJHhu5NuZyB0aOG7nWkgdOG6oW8gcmEgbOG7o2kgdGjhur8gY+G6oW5oIHRyYW5oIHRyw6puIHRo4buLIHRyxrDhu51uZyBow6BuZyBraMO0bmcgxJFhbmcgY+G6oW5oIHRyYW5oIGdheSBn4bqvdCBuaMawIGhp4buHbiBuYXkuIFRow7RuZyBxdWEgxJHDsywgY8OhYyBow6NuZyBow6BuZyBraMO0bmcgc+G6vSBjw7Mgbmjhu69uZyBjaGnhur9uIGzGsOG7o2MgcGjDuSBo4bujcCwgZ8OzcCBwaOG6p24gdGjDumMgxJHhuql5IGhv4bqhdCDEkeG7mW5nIGtpbmggZG9hbmggaGnhu4d1IHF14bqjLg0KDQpOaOG6rW4gdGjhuqV5IMSRxrDhu6NjIHThuqdtIHF1YW4gdHLhu41uZyBuw6B5LCB0w6FjIGdp4bqjIHRp4bq/biBow6BuaCB0aOG7sWMgaGnhu4duIMSR4buBIHTDoGkg4oCcQ8OhYyBuaMOibiB04buRIOG6o25oIGjGsOG7n25nIMSR4bq/biBz4buxIGjDoGkgbMOybmcgY+G7p2Ega2jDoWNoIGjDoG5nIMSR4buRaSB24bubaSBk4buLY2ggduG7pSB0csOqbiBjaHV54bq/biBiYXkg4oCdLiBOZ2hpw6puIGPhu6l1IG7DoHkgc+G6vSBjaOG7iSByYSDEkcaw4bujYyBt4bupYyDEkeG7mSBow6BpIGzDsm5nIGPhu6dhIGtow6FjaCBow6BuZyBraGkgc+G7rSBk4bulbmcgZOG7i2NoIHbhu6UgdHLDqm4gY2h1eeG6v24gYmF5IG5naGnDqm4gY+G7qXUgc+G6vSDEkeG7gSB4deG6pXQgY2hvIGzDo25oIMSR4bqhbyBj4bunYSBow6NuZyBow6BuZyBraMO0bmcgY8OzIHRow6ptIG5o4buvbmcgY2hp4bq/biBsxrDhu6NjIHBow7kgaOG7o3AgY+G7pSB0aOG7gyDEkeG7gyBjaGnhur9tIGzEqW5oIHRo4buLIHBo4bqnbiBow6BuZyBraMO0bmcsIGdpYSB0xINuZyBt4bupYyDEkeG7mSBow6BpIGzDsm5nLCB0aHUgaMO6dCBraMOhY2ggaMOgbmcuDQoNCiMjIDIuIE3hu6VjIHRpw6p1IG5naGnDqm4gY+G7qXUNCg0KICAqIE3hu6VjIHRpw6p1IGNodW5nOiANCg0KICBMw6BtIHLDtSBjxqEgc+G7nyBsw70gbHXhuq1uLCB0aOG7sWMgdGnhu4VuIGPhu6dhIGhv4bqhdCDEkeG7mW5nIG5naGnDqm4gY+G7qXUgY8OhYyB54bq/dSB04buRIOG6o25oIGjGsOG7n25nIMSR4bq/biBz4buxIGjDoGkgbMOybmcgY+G7p2Ega2jDoWNoIGjDoG5nIMSR4buRaSB24bubaSBk4buLY2ggduG7pSB0csOqbiBjaHV54bq/biBiYXkNCg0KICAqIE3hu6VjIHRpw6p1IGPhu6UgdGjhu4MNCg0KICBYw6FjIMSR4buLbmggY8OhYyB54bq/dSB04buRIOG6o25oIGjGsOG7n25nIMSR4bq/biBz4buxIGjDoGkgbMOybmcgY+G7p2Ega2jDoWNoIGjDoG5nIMSR4buRaSB24bubaSBk4buLY2ggduG7pSB0csOqbiBjaHV54bq/biBiYXkuDQoNCiAgxJBvIGzGsOG7nW5nIG3hu6ljIMSR4buZIOG6o25oIGjGsOG7n25nIGPhu6dhIHThu6tuZyB54bq/dSB04buRIMSR4bq/biBz4buxIGjDoGkgbMOybmcgY+G7p2Ega2jDoWNoIGjDoG5nIMSR4buRaSB24bubaSBk4buLY2ggduG7pSB0csOqbiBjaHV54bq/biBiYXkuDQoNCiAgUGjDom4gdMOtY2ggdsOgIMSRw6FuaCBnacOhIHRo4buxYyB0cuG6oW5nLCB0w6xtIHJhIG5o4buvbmcgdGh14bqtbiBs4bujaSB2w6Aga2jDsyBraMSDbiB0cm9uZyBxdcOhIHRyw6xuaCB0aOG7sWMgaGnhu4duIG5naGnDqm4gY+G7qXUgc+G7sSBow6BpIGzDsm5nIGPhu6dhIGtow6FjaCBow6BuZyDEkeG7kWkgduG7m2kgZOG7i2NoIHbhu6UgdHLDqm4gY2h1eeG6v24gYmF5IGTGsOG7m2kgdmFpIHRyw7IgaMOgbmgga2jDoWNoLg0KDQogxJDhu4EgeHXhuqV0IGPDoWMgZ2nhuqNpIHBow6FwIG5o4bqxbSBjaGnhur9tIGzEqW5oIHRo4buLIHBo4bqnbiBow6BuZyBraMO0bmcsIGdpYSB0xINuZyBt4bupYyDEkeG7mSBow6BpIGzDsm5nLCB0aHUgaMO6dCBraMOhY2ggaMOgbmcgY2hvIGjDo25nIGjDoG5nIGtow7RuZy4NCg0KIyMgMy4gxJDhu5FpIHTGsOG7o25nIG5naGnDqm4gY+G7qXUNCg0KQ8OhYyBuaMOibiB04buRIOG6o25oIGjGsOG7n25nIMSR4bq/biBz4buxIGjDoGkgbMOybmcgY+G7p2Ega2jDoWNoIGjDoG5nIMSR4buRaSB24bubaSBk4buLY2ggduG7pSB0csOqbiBjaHV54bq/biBiYXkuDQoNCiMjIDQuIFBoxrDGoW5nIHBow6FwIG5naGnDqm4gY+G7qXUNCg0KUGjGsMahbmcgcGjDoXAgeOG7rSBsw70gc+G7kSBsaeG7h3UgYuG6sW5nIHRo4buRbmcga8OqIHRvw6FuIGjhu41jOiDEkOG7gyBu4bqvbSB24buvbmcgdGjDtG5nIHRpbiB2w6Agc+G7kSBsaeG7h3UgbGnDqm4gcXVhbiDEkeG6v24gc+G7sSBow6BpIGzDsm5nIGPhu6dhIGtow6FjaCBow6BuZyDEkeG7kWkgduG7m2kgaMOjbmcgaMOgbmcga2jDtG5nLCB0w6FjIGdp4bqjIHPhur0gdGnhur9uIGjDoG5oIG3hu5l0IHF1w6EgdHLDrG5oIHBow6JuIHTDrWNoIHPhu5EgbGnhu4d1IGLhurFuZyBwaMawxqFuZyBwaMOhcCB0aOG7kW5nIGvDqiB0b8OhbiBo4buNYy4gQ8OhYyB0aMO0bmcgc+G7kSBsacOqbiBxdWFuIMSR4bq/biB04bqnbiBzdeG6pXQsIHBow6JuIGLhu5EsIMSR4buZIHTGsMahbmcgcXVhbiB2w6AgxJHhu5kgdMawxqFuZyB0w6FjIGdp4buvYSBjw6FjIGJp4bq/biBz4bq9IMSRxrDhu6NjIHTDrW5oIHRvw6FuLiBQaOG6p24gbeG7gW0gUiAtIG3hu5l0IGPDtG5nIGPhu6UgbeG6oW5oIG3hur0gdsOgIHBo4buVIGJp4bq/biB0cm9uZyBsxKluaCB24buxYyB0aOG7kW5nIGvDqiB2w6AgeOG7rSBsw70gZOG7ryBsaeG7h3UgLSBz4bq9IGjhu5cgdHLhu6MgcXXDoSB0csOsbmggbsOgeS4gVmnhu4djIHPhu60gZOG7pW5nIHBo4bqnbiBt4buBbSBSIHPhur0gxJHhuqNtIGLhuqNvIHTDrW5oIGNow61uaCB4w6FjIHbDoCDEkcOhbmcgdGluIGPhuq15IHRyb25nIHZp4buHYyBwaMOibiB0w61jaCBz4buRIGxp4buHdS4NCg0KUGjGsMahbmcgcGjDoXAgZOG7ryBsaeG7h3UgxJHhu4tuaCB0w61uaA0KDQojIyA1LiDDnSBuZ2jEqWEgY+G7p2EgxJHhu4EgdMOgaTogDQoNCsOdIG5naMSpYSBraG9hIGjhu41jOiBCw6BpIG5naGnDqm4gY+G7qXUgZ8OzcCBwaOG6p24gYuG7lSBzdW5nIHRow6ptIGLhurFuZyBjaOG7qW5nIHRo4buxYyBuZ2hp4buHbSB24buBIGPDoWMgeeG6v3UgdOG7kSDhuqNuaCBoxrDhu59uZyDEkeG6v24gc+G7sSBow6BpIGzDsm5nIGPhu6dhIGtow6FjaCBow6BuZyDEkeG7kWkgduG7m2kgZOG7i2NoIHbhu6UgdHLDqm4gY2h1eeG6v24gYmF5Lg0KDQrDnSBuZ2jEqWEgdGjhu7FjIHRp4buFbjogS+G6v3QgbHXhuq1uIGdpw7pwIGNobyBjw6FjIGjDo25nIGjDoG5nIGtow7RuZyBjw7MgY8OhaSBuaMOsbiBjaGnhur9uIGzGsOG7o2MgaMahbiBraGkgcGjDom4gdMOtY2ggdOG7qyDEkcOzIMSR4buBIHh14bqldCBjw6FjIGdp4bqjaSBwaMOhcCBuaOG6sW0gY2hp4bq/bSBsxKluaCB0aOG7iyBwaOG6p24gaMOgbmcga2jDtG5nLCBnaWEgdMSDbmcgbeG7qWMgxJHhu5kgaMOgaSBsw7JuZywgdGh1IGjDunQga2jDoWNoIGjDoG5nIG5nw6B5IGPDoG5nIG3hu5l0IGzhu5tuIG3huqFuaCB2w6AgdMOsbSBraeG6v20gxJHGsOG7o2MgbOG7o2kgbmh14bqtbi4gxJDhu4EgdMOgaSBuw6B5IGPFqW5nIGPDsyB0aOG7gyBsw6AgdMOgaSBsaeG7h3UgdGhhbSBraOG6o28gY2hvIGPDoWMgbmdoacOqbiBj4bupdSB0cm9uZyB0xrDGoW5nIGxhaSB24buBIGPDoWMgeeG6v3UgdOG7kSDhuqNuaCBoxrDhu59uZyDEkeG6v24gc+G7sSBow6BpIGzDsm5nIGPhu6dhIGtow6FjaCBow6BuZyDEkeG7kWkgduG7m2kgZOG7i2NoIHbhu6UgdHLDqm4gY2h1eeG6v24gYmF5Lg0KDQojIyA2LiBL4bq/dCBj4bqldSDEkeG7gSB0w6BpDQoNClBo4bqnbiBt4bufIMSR4bqndQ0KDQpDaMawxqFuZyAxLiBU4buVbmcgcXVhbiBsw70gdGh1eeG6v3QNCg0KQ2jGsMahbmcgMi4gUGjGsMahbmcgcGjDoXAgbmdoacOqbiBj4bupdQ0KDQpDaMawxqFuZyAzLiBUaOG7kW5nIGvDqiBtw7QgdOG6oyBjaG8gY8OhYyBiacOqbg0KDQpDaMawxqFuZyA0LiBNw7QgaMOsbmggaOG7k2kgcXV5DQoNCkNoxrDGoW5nIDU6IEvhur90IGx14bqtbiB2w6Aga2nhur9uIG5naOG7iw0KDQpgYGB7cn0NCmxpYnJhcnkoZ2dwbG90MikNCmxpYnJhcnkoc2NhbGVzKQ0KbGlicmFyeShkcGx5cikNCmxpYnJhcnkodGlkeXZlcnNlKQ0KbGlicmFyeSh0aWR5c2VsZWN0KQ0KbGlicmFyeShlcGl0b29scykNCmxpYnJhcnkoRGVzY1Rvb2xzKQ0KbGlicmFyeShjYVRvb2xzKQ0KbGlicmFyeSh0aWR5dGV4dCkNCmBgYA0KDQpgYGB7cn0NCmxpYnJhcnkocmVhZHhsKQ0KREwgPC0gcmVhZF9leGNlbCgiQzovVXNlcnMvQWJjL0Rvd25sb2Fkcy9ETC54bHN4IikNClZpZXcoREwpDQpgYGANCg0KYGBge3J9DQpETA0KYGBgDQoNCmBgYHtyfQ0KR2VuZGVyPC1ETCRHZW5kZXINClRyYXZlbDwtREwkVHJhdmVsDQpDdXN0b21lcjwtREwkQ3VzdG9tZXINCkNsYXNzPC1ETCRDbGFzcw0KU0Y8LURMJFNGDQpBZ2U8LURMJEFnZQ0KSVM8LURMJElTDQpERElNPC1ETCRERElNDQpgYGANCg0KIyBDSMavxqBORyAxOiBU4buUTkcgUVVBTiBMw50gVEhVWeG6vlQNCg0KIyMgMS4xIEtow6FpIG5p4buHbSB24buBIGThu4tjaCB24bulDQoNCkPDsyBy4bqldCBuaGnhu4F1IMSR4buLbmggbmdoxKlhIHbhu4EgZOG7i2NoIHbhu6UgaGnhu4duIG5heSwgdHV5IG5oacOqbiB0aGVvIHTDoWMgZ2nhuqMgY8OzIHRo4buDIGhp4buDdSBz4bqjbiBwaOG6qW0gZOG7i2NoIHbhu6UgbMOgIG3hu5l0IGxv4bqhaSBz4bqjbiBwaOG6qW0ga2luaCB04bq/IMSR4bq3YyBiaeG7h3QsIGPDsyB0w61uaCBwaGkgduG6rXQgY2jhuqV0LCB2w7QgaMOsbmguIFRyw6FpIG5nxrDhu6NjIOG7m2kgbsOzIGzDoCBz4bqjbiBwaOG6qW0gaMOgbmcgaMOzYSBsw6Agc+G6o24gcGjhuqltIG3DoCBjaMO6bmcgdGEgY8OzIHRo4buDIGNo4bqhbSB2w6BvLCBz4budIHbDoG8gdHLhu7FjIHRp4bq/cCDEkcaw4bujYy4NCg0KUGhpbGlwIEtvdGxlciDEkcOjIMSR4buLbmggbmdoxKlhIGThu4tjaCB24bulOiDigJxE4buLY2ggduG7pSBsw6AgbeG7mXQgaG/huqF0IMSR4buZbmcgaGF5IGzhu6NpIMOtY2ggY3VuZyDhu6luZyBuaOG6sW0gxJHhu4MgdHJhbyDEkeG7lWksIGNo4bunIHnhur91IGzDoCB2w7QgaMOsbmggdsOgIGtow7RuZyBk4bqrbiDEkeG6v24gdmnhu4djIGNodXnhu4NuIHF1eeG7gW4gc+G7nyBo4buvdS4gVmnhu4djIHRo4buxYyBoaeG7h24gZOG7i2NoIHbhu6UgdGjhu4MgZ+G6r24gbGnhu4FuIGhv4bq3YyBraMO0bmcgZ+G6r24gbGnhu4FuIHbhu5tpIHPhuqNuIHBo4bqpbSB24bqtdCBjaOG6pXTigJ0uDQoNClRoZW8gQy5Nw6FjIGNobyBy4bqxbmc6ICJE4buLY2ggduG7pSBsw6AgY29uIMSR4bq7IGPhu6dhIG7hu4FuIGtpbmggdOG6vyBz4bqjbiB4deG6pXQgaMOgbmcgaMOzYSwga2hpIG3DoCBraW5oIHThur8gaMOgbmcgaMOzYSBwaMOhdCB0cmnhu4NuIG3huqFuaCwgxJHDsmkgaOG7j2kgbeG7mXQgc+G7sSBsxrB1IHRow7RuZyB0aMO0bmcgc3Xhu5F0LCB0csO0aSBjaOG6o3ksIGxpw6puIHThu6VjIMSR4buDdGhv4bqjIG3Do24gbmh1IGPhuqd1IG5nw6B5IGPDoG5nIGNhbyDEkcOzIGPhu6dhIGNvbiBuZ8aw4budaSB0aMOsIGThu4tjaCB24bulIG5nw6B5IGPDoG5nIHBow6F0IHRyaeG7g24iLg0KDQpN4buZdCBz4buRIMSR4buLbmggbmdoxKlhIGtow6FjIHbhu4EgZOG7i2NoIHbhu6U6IOKAnEThu4tjaCB24bulIGzDoCBob+G6oXQgxJHhu5luZyBob+G6t2Mga+G6v3QgcXXhuqMgxJHGsOG7o2MgbeG7mXQgYsOqbnRo4buxYyBoaeG7h24gaG/hurdjIGN1bmcgY+G6pXAgY2hvIG3hu5l0IGLDqm4ga2jDoWMuIE3hurdjIGTDuSBxdcOhIHRyw6xuaCBjw7MgdGjhu4MgbMOgIHBo4bqjaSBn4bqvbiBsaeG7gW4gduG7m2kgbeG7mXRz4bqjbiBwaOG6qW0gaOG7r3UgaMOsbmgsIGvhur90IHF14bqjIHRo4buxYyBoaeG7h24gY2jhu4kgZGnhu4VuIHJhIHRyb25nIG3hu5l0IGtob+G6o25nIHRo4budaSBnaWFuIG5o4bqldCDEkeG7i25oLCB2w7Row6xuaCB2w6AgdGjGsOG7nW5nIGtow7RuZyB04bqhbyByYSBz4buxIHRoYXkgxJHhu5VpIG7DoG8gduG7gSBz4buxIHPhu58gaOG7r3UgY8OhYyB54bq/dSB04buRIHPhuqNuIHh14bqldOKAnS4NCg0KROG7i2NoIHbhu6UgbMOgIGhv4bqhdCDEkeG7mW5nIGtpbmggdOG6vyBtw6AgdOG6oW8gcmEgZ2nDoSB0cuG7iyB2w6AgY3VuZyBj4bqlcCBjw6FjIGzhu6NpIMOtY2ggY2hvIGPDoWMga2jDoWNoIGjDoG5nIG3hu5l0IHRo4budaSBnaWFuIMSR4buLYSAgxJFp4buDbSBj4bulIHRo4buDIGLhurFuZyBjw6FjaCDEkWVtIHThu5tpIHPhu7EgdGhheSDEkeG7lWkgxJHGsOG7o2MgbW9uZyDEkeG7o2kg4bufIG5nxrDhu51pIHRp4bq/cCBuaOG6rW4gZOG7i2NoIHbhu6UgaG/hurdjIGLDqm4gxJHhuqFpIGRp4buHbiBjaG8gbmfGsOG7nWkgdGnhur9wIG5o4bqtbiBk4buLY2ggduG7pQ0KDQpOaMawIHbhuq15LCBjw7MgdGjhu4MgaGnhu4N1IGThu4tjaCB24bulIGzDoCBob+G6oXQgxJHhu5luZyB04bqhbyByYSBnacOhIHRy4buLIG5o4bqxbSB0aOG7j2EgbcOjbiBuaHUgY+G6p3UgY+G7p2Ega2jDoWNoIGjDoG5nLCBraMOhYyB24bubaSB2aeG7h2MgdOG6oW8gcmEgc+G6o24gcGjhuqltIHbhuq10IGNo4bqldCAoY8OzIHTDrW5oIGjhu691IGjDrG5oKSwgZOG7i2NoIHbhu6UgdOG6oW8gcmEgY8OhYyBnacOhIHRy4buLcCDhu6luZyBuaHUgY+G6p3UgY+G7p2Ega2jDoWNoIGjDoG5nIMSRw7NuZyBnw7NwIGNobyBz4buxIHBow6F0IHRyaeG7g24gY+G7p2EgeMOjIGjhu5lpLg0KDQojIyAxLjIgROG7i2NoIHbhu6UgdHLDqm4gY2h1eeG6v24gYmF5IGNobyBow6BuaCBraMOhY2ggY+G7p2EgaMOjbmcgaMOgbmcga2jDtG5nDQoNCkzDoCBk4buLY2ggIHbhu6UgIG3DoCAga2jDoWNoICBow6BuZyAgxJHGsOG7o2MgdOG6rW4gIGjGsOG7n25nLCAgdHLhuqNpICBuZ2hp4buHbSAga2hpICBjaHV54bq/biBiYXkgIMSRYW5nICBiYXkuVMOtbmggdOG7qyB0aOG7nWkgxJFp4buDbSBj4butYSByYSBtw6F5IGJheSDEkcaw4bujYyDEkcOzbmcgbOG6oWkgdOG6oWkgc8OibiBiYXkgxJFpIMSR4bq/biB0aOG7nWkgxJFp4buDbSBj4butYSByYSBtw6F5IGJhecSRxrDhu6NjIG3hu58gcmEgdOG6oWkgc8OibiBiYXkgxJHhur9uLiBE4buLY2ggduG7pSB0csOqbiBjaHV54bq/biBiYXkgc+G6vSBiYW8gZ+G7k20gbmhp4buBdSB0aMOgbmggcGjhuqduIGfhu5NtIGPDszoNCg0KMS4gVGnhu4duIG5naGkgdHLDqm4gbcOheSBiYXk6IHPhu7EgdGhv4bqjaSBtw6FpLCBy4buZbmcgcsOjaSwgc+G6oWNoIHPhur0gY+G7p2EgZ2jhur8gbmfhu5NpLCBjw6FjIHRyYW5nIHRoaeG6v3QgYuG7i2dp4bqjaSB0csOtIHRyw6puIGdo4bq/IG5n4buTaSwgc+G7sSBy4buZbmcgcsOjaSBj4bunYSBjaOG7lyDEkeG7gyBjaMOibiwga2jDtG5nIGtow60gdGhvw6FuZyBtw6F0LCB0aMahbSB0aG8gdHJvbmcga2hvYW5nIGjDoG5oIGtow6FjaCwgc+G6oWNoIHPhur0sIHRoxqFtIHRobyBj4bunYSBideG7k25nIHbhu4cgc2luaC4gQ8OhYyBjaMawxqFuZ3Ryw6xuaCBnaeG6o2kgdHLDrSBuaMawIHhlbSBwaGltIHRyw6puIEZQVCBQTEFZIHbhu5tpIGtobyBwaGltIGPDoWMgdGjhu4MgbG/huqFpLCBo4buHIHRo4buRbmcga+G6v3QgbuG7kWlpbnRlcm5ldCBraMO0bmcgZMOieSB0csOqbiBtw6F5IGJheSAoV0lGRSkgKFdpcmVsZXNzIGluZmxpZ2h0IGVudGVydGFpbm1lbnQgc3lzdGVtKS4gQ8OzIG3DoG4gaMOsbmggdHLDrG5oIGNoaeG6v3UgY8OhYyBjaMawxqFuZyB0csOsbmggcGhpbSBnacO6cCBraMOhY2ggaMOgbmcgdGjGsCBnacOjbiwgY8OzIG3DoG4gaMOsbmh0aMO0bmcgYsOhbyBow6BuaCB0csOsbmggY+G7p2EgdMOgdSBiYXkgxJHhu4Mga2jDoWNoIGjDoG5nIG7huq9tIMSRxrDhu6NjIHTDoHUgYmF5IMSRYW5nIOG7nyDEkcOidS4gQ8OzdHJhbmcgYuG7iyBtw6BuIGjDrG5oIGNoxqFpIGdhbWUsIGtow6FjaCBjw7MgdGjhu4MgY2jGoWkgxJFp4buHbiB04butIHRyb25nIHN14buRdCBow6BuaCB0csOsbmggYmF5Lg0KDQoyLiDEkOG6o20gYuG6o28gY8OhYyB0acOqdSBjaHXhuqluIGFuIHRvw6BuIHRyb25nIHBow7JuZyBjaOG7kW5nIGThu4tjaCBDb3ZpZDogQ8OzIHRo4bqjbSDEkeG7gyBraMOhY2ggY2jDuWkgc8OhdCBraHXhuqluIHRyxrDhu5tjIGtoaSB2w6BvIG3DoXkgYmF5LCBjw7MgdHJhbmcgYuG7iyBuxrDhu5tjIHLhu61hIHRheSBraMO0IMSR4buDIGtow6FjaCBy4butYSB0YXkga2hpIHbDoG8gbcOheSBiYXksIHRyYW5nIGLhu4sgaOG7hyB0aOG7kW5nIG3DoG4gbOG7jWMga2jDtG5nIGtow60gaGnhu4d1IHN14bqldCBjYW8gKEhFUEEg4oCTSGlnaCBFZmZpY2llbmN5IFBhcnRpY3VsYXRlIEFpcikgKHThuqVtIGzhu41jIEhFUEEgY8OzIHRo4buDIGNo4bq3biBi4bulaSwgcGjhuqVuIGhvYSB04bq/IGLDoG8gZGFuZ8aw4budaSwgdmlydXMgdsOgIHZpIGtodeG6qW4gdOG7kXQgaMahbiBuaGnhu4F1IHNvIHbhu5tpIHThuqVtIGzhu41jIG3hu49uZyB0aMO0bmcgdGjGsOG7nW5nKSwgdHJhbmcgYuG7i2toxINuIGdp4bqleSDGsOG7m3QgdOG6qW0gY+G7k24gOTAgxJHhu5kgxJHhu4Mgc8OhdCBraHXhuqluIHRheSBjaG8gaMOgbmgga2jDoWNoLCBz4butIGThu6VuZyBuxrDhu5tjIHXhu5FuZyDEkcOzbmcgY2hhaSB0aGF5IHbDrCBwaMOhdCBuxrDhu5tjIHXhu5FuZyB0cuG7sWMgdGnhur9wIHRyb25nIGPhu5FjIGNobyBraMOhY2guDQoNCjMuIFRow6FpIMSR4buZIGPhu6dhIHRp4bq/cCB2acOqbiBow6BuZyBraMO0bmc6IHTDrW5oIG5naGnDqm0gdMO6YyB2w6AgY2h1ecOqbiBuZ2hp4buHcCBraGkgcGjhu6VjIHbhu6UsIHRow6FpIMSR4buZIHRow6JuIHRoaeG7h24gdsOgIGNow6JuIHRow6BuaCwgc+G7sSBuaMOjIG5o4bq3biB2w6AgbOG7i2NoIHPhu7EsIHPhu7Egbmhp4buHdCB0w6xuaCBjaHUgxJHDoW8sIGRp4buHbiBt4bqhbyB4aW5oIHjhuq9uIHRyYW5nIHBo4bulYyBn4buNbiBnw6BuZyBz4bqhY2ggc+G6vSDEkcO6bmcgcXV5IGNodeG6qW4gY+G7p2EgaMOjbmcsIHnhur91IHThu5Egbmhp4buHdCB0w6xuaCB2w6AgdMOtbmggc8OjbiBzw6BuZyBraGkga2jDoWNoIGjDoG5nIGPDsyBuaHUgY+G6p3UuDQoNCjQuIE5naGnhu4dwIHbhu6UgcGjhu6VjIHbhu6UgY+G7p2EgdGnhur9wIHZpw6puIGjDoG5nIGtow7RuZyB2w6AgdOG7lSBsw6FpOiBjw6FjaCBwaMOhdCDDom0sIHPhu7EgdHLDtGkgY2jhuqN5LCBz4buxIHLDtSByw6BuZywgZOG7hSBoaeG7g3Uga2hpIHRp4bq/cCB2acOqbiDEkeG7jWMgY8OhYyB0aMO0bmcgYsOhbyB2w6AgdGjDtG5nIHRpbiBjaHV54bq/biBiYXkgxJHhur9uIGjDoG5oIGtow6FjaC4gQ3VuZyBj4bqlcCDEkeG6p3kgxJHhu6cgdGjDtG5nIHRpbiB2w6AgY8OzIHPhu7EgY2hpYSBz4bq7IGvhur90IG7hu5FpIHbhu5tpIGtow6FjaCBow6BuZywgVOG7lSBsw6FpIMSRaeG7gXUga2hp4buDbiBtw6F5IGJheSBj4bqlcCBjw6FjIHRow7RuZyB0aW4gdGjDqm0gduG7gSBjaHV54bq/biBiYXkgKG5oaeG7h3QgxJHhu5kgdOG6oWkgc8OibiBiYXkgxJHhur9uLMSR4buZIGNhbywNCg0KNS4gVGnDqnUgY2h14bqpbiBk4buLY2ggduG7pSB0csOqbiBraMO0bmc6IEjDo25nIGjDoG5nIGtow7RuZyBwaOG6o2kgxJHhuqNtIGLhuqNvIGPDoWMgZOG7i2NoIHbhu6UgdGhlbyDEkcO6bmcgbmjGsCBo4bujcCDEkeG7k25nIGdoaSB0csOqbiB2w6kgKGJhbyBn4buTbSBjw6FjIHN14bqldCDEg24gdHLDqm4gdMOgdSBiYXksIG7GsOG7m2MgdeG7kW5nIHRyw6puIHTDoHUgYmF5KS5Dw6FjIGThu4tjaCB24bulIMSDbiB14buRbmcgdHLDqm4gdMOgdSBiYXksIGLDoW4gaMOgbmcgbMawdSBuaeG7h20gKG3Ds2Mga2jDs2EsIHThuqFwIGNow60sIMOhbyB0aHVu4oCmKS5MacOqbiBxdWFuIMSR4bq/biBjaOG6pXQgbMaw4bujbmcgY8OhYyBsb+G6oWkgxJHhu5MgdeG7kW5nIHbDoCBtw7NuIMSDbiwgc+G7sSBwaG9uZyBwaMO6IHbDoCDEkWEgZOG6oW5nIHbhu4Fjw6FjIGxv4bqhaSDEkeG7kyB14buRbmcgdsOgIG3Ds24gxINuDQoNCjYuIFRpw6p1IGNodeG6qW4gduG7gSBzw6FjaCBiw6FvIHThuqFwIGNow606IEJhbyBn4buTbSBjw6FjIGxv4bqhaSB04bqhcCBjaMOtIHPDoWNoIGLDoW8gZ2nhuqV5IG5oxrAgYsOhbyBUaGFuaE5pw6puLCBUdeG7lWkgVHLhurssIHThuqFwIGNow60gSGVyaXRhZ2UsIHThuqFwIGNow60gZHUgbOG7i2NoLiBLaMOhY2ggY8OzIHRo4buDIGzhuqV5IHbhu4EgY2jhu5cgbcOsbmggxJHhu4MgxJHhu41jdHJvbmcgbMO6YyBtw6F5IGJheSBiYXkgYuG6sW5nDQoNCiMjIDEuMyBLaMOhaSBuaeG7h20gduG7gSBz4buxIGjDoGkgbMOybmcNCg0KUXVhIHF1w6EgdHLDrG5oIHTDrG0gaGnhu4N1ICB2w6AgbmdoacOqbiBj4bupdSwgY8OzIGtow6Egbmhp4buBdSAgxJHhu4tuaCAgbmdoxKlhIHbhu4Egc+G7sSBow6BpIGzDsm5nIGPhu6dhIGtow6FjaCBow6BuZywgY8WpbmcgbmjGsCDEkeG7i25oIG5naMSpYSB24buBIGNo4bqldCBsxrDhu6NuZyBk4buLY2ggduG7pSwgbmhp4buBdSBjaHV5w6puIGdpYSB0cm9uZyB2w6Agbmdv4bqhaW7GsOG7m2MgY8WpbmcgY8OzIMSR4buLbmggbmdoxKlhIGtow6FjIG5oYXUgduG7gSBz4buxIGjDoGkgbMOybmcuVGhlbyBIYW5zZW1hcmsgdsOgIEFsYmluc3NvbiAoMjAwNCksIOKAnFPhu7EgaMOgaSBsw7JuZyBj4bunYSBraMOhY2ggaMOgbmcgbMOgIG3hu5l0IHRow6FpIMSR4buZIHThu5VuZyB0aOG7gyBj4bunYSBraMOhY2ggaMOgbmcgxJHhu5FpIHbhu5tpIG3hu5l0IG5ow6AgY3VuZyBj4bqlcCBk4buLY2ggduG7pSwgaG/hurdjIG3hu5l0IGPhuqNtIHjDumMgcGjhuqNuIOG7qW5nIHbhu5tpIHPhu7Ega2jDoWMgYmnhu4d0IGdp4buvYSBuaOG7r25nIGfDrCBraMOhY2ggaMOgbmcgZOG7sSDEkW/DoW4gdHLGsOG7m2MgdsOgIG5o4buvbmcgZ8OsIGjhu40gdGnhur9wIG5o4bqtbiwgxJHhu5FpIHbhu5tpIHPhu7EgxJHDoXAg4bupbmcgbeG7mXQgc+G7kSBuaHUgY+G6p3UsIG3hu6VjIHRpw6p1IGhheSBtb25nIG114buRbuKAnS5UaGVvIFBoaWxpcCBLb3RsZXIsIOKAnFPhu7EgaMOgaSBsw7JuZyBj4bunYSBraMOhY2ggaMOgbmcgKEN1c3RvbWVyIHNhdGlzZmFjdGlvbikgbMOgIG3hu6ljIMSR4buZIHRy4bqhbmcgdGjDoWkgY+G6o20gZ2nDoWMgY+G7p2EgbeG7mXQgbmfGsOG7nWkgYuG6r3Qgbmd14buTbiB04burIHZp4buHYyBzbyBzw6FuaCBr4bq/dCBxdeG6oyB0aHUgxJHGsOG7o2MgdOG7qyB2aeG7h2MgdGnDqnUgZMO5bmcgc+G6o24gcGjhuqltL2Thu4tjaCB24bulIHbhu5tpIG5o4buvbmcga+G7syB24buNbmcgY+G7p2EgY2jDrW5oIGjhu40uIE3hu6ljIMSR4buZIGjDoGkgbMOybmcgcGjhu6UgdGh14buZYyBz4buxIGtow6FjIGJp4buHdCBnaeG7r2Ega+G6v3QgcXXhuqMgbmjhuq1uIMSRxrDhu6NjIHbDoCBz4buxIGvhu7MgduG7jW5nLCBu4bq/dSBr4bq/dCBxdeG6oyB0aOG7sWMgdOG6vyB0aOG6pXAgaMahbiBz4buxIGvhu7MgduG7jW5nIHRow6wga2jDoWNoIGjDoG5nIGtow7RuZyBow6BpIGzDsm5nLCBu4bq/dSBr4bq/dCBxdeG6oyB0aOG7sWMgdOG6vyB0xrDGoW5nIHjhu6luZyB24bubaSBz4buxIGvhu7MgduG7jW5nIHRow6wga2jDoWNoIGjDoG5nIHPhur0gaMOgaSBsw7JuZywgbuG6v3Uga+G6v3QgcXXhuqMgdGjhu7FjIHThur8gY2FvIGjGoW4gc+G7sSBr4buzIHbhu41uZyB0aMOsIGtow6FjaCBow6BuZyBy4bqldCBow6BpIGzDsm5n4oCdLg0KDQpUcm9uZyBjdeG7kW4gc8OhY2gg4oCcTWFya2V0aW5nIE1ldHJpY3PigJ0gY+G7p2EgbcOsbmgsIFBhdWwgRmFycmlzICgyMDEwKSDEkcOjIMSR4buLbmggbmdoxKlhIHPhu7EgaMOgaSBsw7JuZyBj4bunYSBraMOhY2ggaMOgbmcgbmjGsCBzYXU6IOKAnG3hu5l0IHPhu5EgbMaw4bujbmcga2jDoWNoIGjDoG5nIGhheSB04bu3IGzhu4cgcGjhuqduIHRyxINtIHRyw6puIHThu5VuZyBz4buRIGtow6FjaCBow6BuZyBjw7MgdHLhuqNpIG5naGnhu4dtIMSR4buRaSB24bubaSBz4bqjbiBwaOG6qW0vZOG7i2NoIHbhu6Ugdsaw4bujdCB0cuG7mWkgc28gduG7m2kgY2jhu4kgdGnDqnUgaMOgaSBsw7JuZyDEkcaw4bujYyDEkeG6t3QgcmEgdHJvbmcgYsOhbyBjw6FvIGPhu6dhIGRvYW5oIG5naGnhu4dw4oCdLiBUaGVvIFplaXRoYW1sICYgQml0bmVyICgyMDAwKSwgc+G7sSBow6BpIGzDsm5nIGPhu6dhIGtow6FjaCBow6BuZyBsw6Agc+G7sSDEkcOhbmggZ2nDoSBj4bunYSBraMOhY2ggaMOgbmcgduG7gSBt4buZdCBz4bqjbiBwaOG6qW0gaGF5IG3hu5l0IGThu4tjaCB24bulIMSRw6MgxJHDoXAg4bupbmcgxJHGsOG7o2Mgbmh1IGPhuqd1IHbDoCBtb25nIMSR4bujaSBj4bunYSBo4buNLlbhuq15IHTDs20gbOG6oWksIHPhu7EgaMOgaSBsw7JuZyBj4bunYSBraMOhY2ggaMOgbmcgxJHhu5FpIHbhu5tpIHPhuqNuIHBo4bqpbSBk4buLY2ggduG7pSBjw7MgdGjhu4MgaGnhu4N1IMSRw7MgbMOgIGPhuqNtIGdpw6FjIGNo4bunIHF1YW4gY+G7p2Ega2jDoWNoIGjDoG5nIGtoaSDEkcOhbmggZ2nDoSB24buBIG3hu5l0IHPhuqNuIHBo4bqpbSBk4buLY2ggduG7pSBtw6Aga2jDoWNoIGjDoG5nxJHGsOG7o2MgdHLhuqNpIG5naGnhu4dtLCBz4buxIGjDoGkgbMOybmcgbsOgeSBi4buLIGNoaSBwaOG7kWkgYuG7n2kgc+G7sSBr4buzIHbhu41uZyB2w6Aga+G6v3QgcXXhuqMgbmjhuq1uIMSRxrDhu6NjIHThu6sgZOG7i2NoduG7pSwgbuG6v3Uga2jDoWNoIGjDoG5nIGvhu7MgduG7jW5nIHF1w6EgY2FvIHNvIHbhu5tpIGThu4tjaCB24bulIGtow6FjaCB0aOG7sWMgbmjhuq1uIHRow6wga2jDoWNoIHPhur0gcuG6pXQga2jDtG5naMOgaSBsw7JuZyBob+G6t2MgbmfGsOG7o2MgbOG6oWkuIFRow6ptIG7hu69hLCBz4buxIGvhu7MgduG7jW5nIGPhu6dhIGtow6FjaCBow6BuZyBjaOG7i3Ugc+G7sSB0w6FjIMSR4buZbmcgY2hpIHBo4buRaSBj4bunYXPhu7EgcXXhuqNuZyBjw6FvLCBz4buxIHRydXnhu4FuIG1p4buHbmcgdOG7qyBraMOhY2ggaMOgbmcga2jDoWMgxJHDoyB0cuG6o2kgbmdoaeG7h20sIGtpbmggbmdoaeG7h20gdMOtY2ggbMWpeSBj4bunYSBow6FjaCBow6BuZyB24buBIG5o4buvbmcgc+G6o24gcGjhuqltIHTGsMahbmcgdOG7sS4gS2jDoWNoIGjDoG5nIHPhur0gxJHhurd0IHJhIGNobyBtw6xuaCBt4buZdCBr4buzIHbhu41uZyBuaOG6pXTEkeG7i25oIHRyxrDhu5tjIGtoaSBz4butIGThu6VuZyBz4bqjbiBwaOG6qW0gdsOgIMSRZW0gbsOzIHNvIHPDoW5oIHbhu5tpIG5o4buvbmcgdHLhuqNpIG5naGnhu4dtIHbDoCBnacOhIHRy4buLIHRo4buxYyB04bq/IG3DoCBo4buNIG5o4bqtbiDEkcaw4bujYy4gVOG7qyDEkcOzIHPhur0gY8OzIG5o4buvbmcgY+G6o20gbmjhuq1uIG1hbmcgdMOtbmggY2jhu6cgcXVhbiwgdGjDrWNoIGhheSBraMO0bmcgdGjDrWNoLCBow6BpIGzDsm5nIGhheSBraMO0bmcgaMOgaSBsw7JuZy4NCg0KIyMgMS40IFF1YW4gaOG7hyBnaeG7r2EgY2jhuqV0IGzGsOG7o25nIGThu4tjaCB24bulIHbhuq1uIHThuqNpIGjDoG5oIGtow6FjaCBow6NuZyBow6BuZyBraMO0bmcgdsOgIHPhu7EgdGjhu49hIG3Do24gY+G7p2Ega2jDoWNoIGjDoG5nIA0KDQpDw6FjIG5naGnDqm4gY+G7qXUgY+G7p2EgQ2hvdyAmIEx1aywgMjAwNTsgQWhtYWQgJiBTYW1yZWVuLCAyMDExLCBjw6FjIHTDoWMgZ2nhuqMgxJHDoyBjaOG7iSByYSBy4bqxbmcgbeG7kWkgcXVhbiBo4buHIGdp4buvYSBjaOG6pXQgbMaw4bujbmcgZOG7i2NoIHbhu6UgdsOgIHPhu7EgdGjhu49hIG3Do24gY+G7p2Ega2jDoWNoIGjDoG5nIGzDoCBt4buRaSBxdWFuIGjhu4cgdOG7tyBs4buHIHRodeG6rW4uIMSQ4bq3YyBiaeG7h3QgxJHhu5FpIHbhu5tpIG5nw6BuaCBk4buLY2ggduG7pSB24bqtbiB04bqjaSBow6BuZyBraMO0bmcsIGNo4bqldGzGsOG7o25nIGThu4tjaCB24bulIGPDoG5nIGNhbywga2jDoWNoIGjDoG5nIGPDoG5nIGPhuqNtIHRo4bqleSBow6BpIGzDsm5nIHRo4buPYSBtw6NuLg0KDQpUaGVvIFNreXRyYXggKHThu5UgY2jhu6ljIMSRw6FuaCBnacOhIHbDoCB44bq/cCBo4bqhbmcgY8OhYyBow6NuZyBow6BuZyBraMO0bmcpIMSRw6MgY2jhu4kgcmEgcuG6sW5nIGNo4bqldCBsxrDhu6NuZyBk4buLY2ggduG7pSB24bqtbiB04bqjaSBow6BuaCBraMOhY2ggaMOgbmcga2jDtG5nIGzDoCB54bq/dSB04buRIHRpw6puIHF1eeG6v3QgxJHhu4MgbMOgbSBjaG8ga2jDoWNoIGjDoG5nIGPhuqNtIHRo4bqleSB0aOG7j2EgbcOjbi4gVOG7lSBjaOG7qWMgbsOgeSBjxaluZyDEkcawYSByYSBuaOG7r25nIGLhuqNuZyDEkcOhbmggZ2nDoSBj4bulIHRo4buDIMSR4buDIHBow6JuIGxv4bqhaSBjw6FjIGjDo25nIGjDoG5nIGtow7RuZyDEkWFuZyBob+G6oXQgxJHhu5luZyB0csOqbiB0aOG6vyBnaeG7m2kgdGjDoG5oIGPDoWMgaMOjbmcgaMOgbmcga2jDtG5nIHThu6sgbeG7mXQgxJHhur9uIG7Eg20gc2FvLiBN4bulYyB0acOqdSBj4bunYSB2aeG7h2MgxJHDoW5oIGdpw6EgeOG6v3AgaOG6oW5nIGzDoCDEkcawYSB04bqldCBj4bqjIGPDoWMgaMOjbmcgaMOgbmcga2jDtG5nIHbhu4EgbeG7mXQgdGjGsOG7m2MgxJFvIHF1eSBjaHXhuqluLCB04burIMSRw7MgxJHGsGEgcmEgY8OhYyBjaOG7iSBk4bqrbiDEkeG7gyBjw6FjIGjDo25nIGjDoG5nIGtow7RuZyB0aGF5IMSR4buVaSB2w6AgbsOibmcgY2FvIGNo4bqldCBsxrDhu6NuZyBk4buLY2ggduG7pS4NCg0KIyBDSMavxqBORyAyOiBQSMavxqBORyBQSMOBUCBOR0hJw4pOIEPhu6hVDQoNCiMjIDIuMSBE4buvIGxp4buHdSBuZ2hpw6puIGPhu6l1DQoNCsSQw6J5IGzDoCBi4buZIGThu68gbGnhu4d1IHbhu4EgbeG7mXQgY3Xhu5ljIGto4bqjbyBzw6F0IHbhu4Egc+G7sSBow6BpIGzDsm5nIGPhu6dhIGjDoG5oIGtow6FjaCDEkeG7kWkgduG7m2kgaMOjbmcgaMOgbmcga2jDtG5nLg0KQuG7mSBk4buvIGxp4buHdSDEkcaw4bujYyBs4bqleSB04burIHdlYnNpdGU6IGh0dHBzOi8vd3d3LmthZ2dsZS5jb20vZGF0YXNldHMvdGVlam1haGFsMjAvYWlybGluZS1wYXNzZW5nZXItc2F0aXNmYWN0aW9uDQoNCkLhu5kgZOG7ryBsaeG7h3UgbmdoacOqbiBj4bupdSBiYW8gZ+G7k20gMjU5NzcgcXVhbiBzw6F0IHbhu5tpIDggYmnhur9uIGJhbyBn4buTbSAyIGJp4bq/biDEkeG7i25oIGzGsOG7o25nIHbDoCA2IGJp4bq/biDEkeG7i25oIHTDrW5oLg0KDQpUcm9uZyDEkcOzOg0KDQogICspIEdlbmRlcjogR2nhu5tpIHTDrW5oIGPhu6dhIGjDoG5oIGtow6FjaCAoRmVtYWxlLCBNYWxlKQ0KDQogICspIEN1c3RvbWVyOiBMb+G6oWkga2jDoWNoIGjDoG5nIChMb3lhbCBjdXN0b21lcjpLaMOhY2ggaMOgbmcgdHJ1bmcgdGjDoG5oLCBkaXNsb3lhbCBjdXN0b21lcjoga2jDoWNoIGjDoG5nIGtow7RuZyB0cnVuZyB0aMOgbmgpDQoNCiAgKykgQWdlOiBUdeG7lWkgdGjhu7FjIHThur8gY+G7p2EgaMOgbmgga2jDoWNoDQoNCiAgKykgVHJhdmVsOiBN4bulYyDEkcOtY2ggY2h1eeG6v24gYmF5IGPhu6dhIGjDoG5oIGtow6FjaCAoUGVyc29uYWwgVHJhdmVsOiBEdSBs4buLY2ggQ8OhIG5ow6JuLCBCdXNpbmVzcyBUcmF2ZWw6IER1IGzhu4tjaCBDw7RuZyB0w6FjKQ0KDQogICspIENsYXNzOiBI4bqhbmcgZHUgbOG7i2NoIHRyw6puIG3DoXkgYmF5IGPhu6dhIGjDoG5oIGtow6FjaCAoQnVzaW5lc3M6IFRoxrDGoW5nIGdpYSwgRWNvLCBFY28gUGx1cykNCg0KICArKSBJUzogSW5mbGlnaHQgc2VydmljZTogTeG7qWMgxJHhu5kgaMOgaSBsw7JuZyB24buBIGThu4tjaCB24bulIHRyw6puIGNodXnhur9uIGJheQ0KDQogICspIERESU06IERlcGFydHVyZSBEZWxheSBNaW51dGVzOiBT4buRIHBow7p0IGLhu4sgdHLhu4Uga2hpIGto4bufaSBow6BuaA0KDQogICspIFNGOiBTYXRpc2ZhY3Rpb246IE3hu6ljIMSR4buZIGjDoGkgbMOybmcgY+G7p2EgaMOgbmgga2jDoWNoIMSR4buRaSB24bubaSBow6NuZyBow6BuZyBraMO0bmcgKHNhdGlzZmllZCA6SMOgaSBsw7JuZywgbmV1dHJhbCBvciBkaXNzYXRpc2ZpZWQ6IGLDrG5oIHRoxrDhu51uZyBob+G6t2Mga2jDtG5nIGjDoGkgbMOybmcpDQoNCmBgYHtyfQ0KbGlicmFyeShyZWFkeGwpDQpETCA8LSByZWFkX2V4Y2VsKCJDOi9Vc2Vycy9BYmMvRG93bmxvYWRzL0RMLnhsc3giKQ0KVmlldyhETCkNCmBgYA0KDQpgYGB7cn0NCkRMDQpgYGANCg0KIyMgMi4yIFBoxrDGoW5nIHBow6FwIG5naGnDqm4gY+G7qXUNCg0KIyMjIDIuMi4xIE3DtCBow6xuaCBuZ2hpw6puIGPhu6l1IA0KDQoqIE3DtCBow6xuaCBo4buTaSBxdXkgduG7m2kgaMOgbSBsb2dpdA0KDQpNw7QgaMOsbmggaOG7k2kgcXV5IGxvZ2lzdGljIGzDoCB0csaw4budbmcgaOG7o3AgxJHhurdjIGJp4buHdCBj4bunYSBHTE0uIFRow6BuaCBwaOG6p24gbmfhuqt1IG5oacOqbiAodGjDoG5oIGPDtG5nLCB0aOG6rXQgYuG6oWkpIGzDoCBuaOG7iyBwaMOibi4gSMOgbSBsacOqbiBrw6p0IGxvZ2l0IGPhu6dhIM+AIGzDoCBwaMOpcCBiacOqbiDEkeG7lWkgbG9nIFsoz4AvIDEtz4ApXS4ga8O9IGhp4buHdSBi4bufaSBsb2dpdCjPgCkuIEPDoWMgbcO0IGjDrG5oIGjhu5NpIHF1eSBsb2dpc3RpYyB0aMaw4budbmcgxJHGsOG7o2MgZ+G7jWkgbMOgIG3DtCBow6xuaCBsb2dpdC4gTG9naXQgbMOgIHRoYW0gc+G7kSB04buxIG5oacOqbiBj4bunYSBwaMOibiBwaOG7kWkgbmjhu4sgdGjhu6ljLiBUcm9uZyDEkcOzIM+AIGLhu4sgZ2nhu5tpIGjhuqFuIHRyb25nIHBo4bqhbSB2aSAoMCwgMSksIGxvZ2l0IGPDsyB0aMOqIGzDoCBzw7QgdGjhu7FjIGLDonQga+G7sy4gVOG6rXAgc8O0IHRo4buxYyBjxaluZw0KbMOgIGtob+G6o25nIGdpw6EgdHLhu4sgY8OzIHRow6ogY8OzIGNobyBjw6FjIGThu7EgYsOhbyB0dXnDqm4gdMOtbmggKCDDuCArIM+AeCksIGRvIMSRw7MsIG3DtCBow6xuaCBuw6B5IGtow7RuZyBjw7MgduG6pW4gxJHhu4EgY+G6p3UgdHLDumMgbcOgIG3DtCBow6xuaCB4w6FjIHN14bqldCB0dXnhur9uIHTDrW5oIG3huq9jIHBo4bqjaS4NCg0KTcO0IGjDrG5oIGxvZ2lzdGljIG3DtCB04bqjIHPhu7EgcGjhu6UgdGh14buZYyBj4bunYSBiaeG6v24gxJHDoXAg4bupbmcgdGjDtG5nIHF1YSB4w6FjIHN14bqldCDigJxUaMOgbmggY8O0bmfigJ0gz4AoeCk9UChZPTF8WD14KQ0K4bupbmcgduG7m2kgbeG7qWMgeD0oeDEseDIsLi4uLHhtKSBj4bunYSBjw6FjIGJp4bq/biBnaeG6o2kgdGjDrWNoIHBo4bulIHRodeG7mWMgdsOgbyB4PSh4MSx4MiwuLi4seG0pIGTGsOG7m2kgZOG6oW5nOg0KDQogICAgICAgICAgICAgICAgbG9nKM+AKHgpLygxLc+AKHgpKSA9IM6yMCvOsjEueDErzrIyLngyKy4uLivOsm0ueG0NCiAgDQoqIE3DtCBow6xuaCBo4buTaSBxdXkgduG7m2kgaMOgbSBwcm9iaXQNCg0KSOG7k2kgcXV5IFByb2JpdCwgxJHDtGkga2hpIGPDsm4gxJHGsOG7o2MgZ+G7jWkgbMOgIG3DtCBow6xuaCBQcm9iaXQsIMSRxrDhu6NjIHPhu60gZOG7pW5nLiDEkeG7gSDGsOG7m2MgbMaw4bujbmcgbcO0IGjDrG5oIGPDsyBiaeG6v24gcGjhu6UgdGh14buZYyBk4bqhbmcgbmjhu4sgcGjDom4uIFRyb25nIGjhu5NpIHF1eSBQcm9iaXQsIHhlbSBow6BtIHjDoWMgc3XhuqV0IM+AKHgpIGhv4bq3YyAxIOKAlCDPgCh4KSkgbMOgIGjDoG0gcGjDom4gcGjhu5FpIHjDoWMgc3XhuqV0IGPhu6dhIG3hu5l0IGJp4bq/biBuZ+G6q3Ugbmhpw6puIFggY8OzIHBow6JuIHBo4buRaSBjaHXhuqluLCB04bupYyBsw6AgeMOhYyBzdeG6pXQg4oCcVGjDoG5oIGPDtG5n4oCdLg0KDQpNw7QgaMOsbmggUHJvYml0IMSRxrDhu6NjIHZp4bq/dCBkxrDhu5tpIGThuqFuZzoNCg0KICAgICAgICAgICAgICAgIM+AKHgxLHgyLC4uLix4bSk9zqYozrIwK86yMXgxK86yMngyKy4uLivOsm14bQ0KDQpoYXk6ICAgICAgICAgICAgUHJvYmkoz4AoeDEseDIsLi4uLHhtKSk9zrIwK86yMXgxK86yMngyKy4uLivOsm14bQ0KDQp0cm9uZyDEkcOzIM+VIGzDoCBow6BtIHBow6JuIHBo4buRaSBjaHXhuqluIGNow61uaCB04bqvYzoNCg0KKiBNw7QgaMOsbmggaOG7k2kgcXV5IHbhu5tpIGjDoG0gY2xvZ2xvZw0KDQpUcm9uZyB0csaw4budbmcgaOG7o3AgdOG7tyBs4buHIGPGsOG7o2MgcGjhu6UgdGh14buZYyB2w6BvIGPDoWMgYmnhur9uIGdp4bqjaSB0aMOtY2ggZMaw4bubaSBk4bqhbmcgaMOgbSBsxal5IHRo4burYToNCiAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICBPZGRzKHgpID0gz4AoeCkvKDEtz4AoeCkgDQoNCnRhIG5o4bqtbiDEkcaw4bujYyBtw7QgaMOsbmggbG9naXN0aWMgY8OzIGPDoWMgYmnhur9uIGThu7EgYsOhbyDhu58gZOG6oW5nIGxvZywgZ+G7jWkgbMOgIG3DtCBow6xuaCBsb2dpc3RpYyBk4bqhbmcgbG9nLWxvZw0KDQogICAgICAgICAgICAgICAgbG9nKM+AKHgpLygxLc+AKHgpKSA9IM6yMCvOsjEubG9neDErzrIyLmxvZ3gyKy4uLivOsm0ubG9neG0NCg0KIyMjIDIuMi4yIEPDoWMgdGnDqnUgY2jDrSDEkcOhbmggZ2nDoSBtw7QgaMOsbmgNCg0KKiBDaOG7iSBz4buRIEFJQyAoQWthaWtlIEluZm9ybWF0aW9uIENyaXRlcmlhbikNCg0KQUlDIMSRxrDhu6NjIMSR4buBIHh14bqldCBi4bufaSBBa2Fpa2UgSGlyb3R1Z3UsIG3hu5l0IG5ow6AgdGjhu5FuZyBrw6ogaOG7jWMgbmfGsOG7nWkgTmjhuq10LiBBSUMgbMOgIG3hu5l0IHRpw6p1IGNow60gxJHGsOG7o2Mgc+G7rSBk4bulbmcgbeG7mXQgY8OhY2ggcGjhu5UgYmnhur9uIMSR4buDIMSRw6FuaCBnacOhIG3hu5l0IG3DtCBow6xuaCBo4buTaSBxdXkgxJHGsOG7o2MgxrDhu5tjIGzGsOG7o25nIGLhu59pIHBoxrDGoW5nIHBow6FwIE1heGltdW0gTGlrZWtpaG9vZCAoTUwpLiBN4buZdCBjw6FjaCBjaHVuZyBjaHVuZyBnacOhIHRy4buLIGPhu6dhIEFJQyBjw6BuZyBuaOG7jyB0aMOsIG3DtCBow6xuaCBjw6BuZyB04buRdC4gQUlDIMSRxrDhu6NjIHTDrW5oIGLhurFuZyBjw7RuZyB0aOG7qWMgc2F1Og0KDQogICAgICAgICAgICAgICAgQUlDPeKIkjJsbihMKSsyaw0KDQpW4bubaSBMIGzDoCBnacOhIHRy4buLIGPhu7FjIMSR4bqhaSBj4bunYSBow6BtIGjhu6NwIGzDvSAobGlrZWxpaG9vZCBmdW5jdGlvbikgdsOgIGsgbMOgIHPhu5EgdGhhbSBz4buRIGPhu6dhIG3DtCBow6xuaC4NCg0KKiBDaOG7iSBz4buRIERldmlhbmNlDQoNCkRldmlhbmNlIGPFqW5nIGzDoCBt4buZdCB0acOqdSBjaMOtIHLhuqV0IHBo4buVIGJp4bq/biDEkcaw4bujYyBz4butIGThu6VuZyDEkeG7gyDEkcOhbmggZ2nDoSBt4buZdCBtw7QgaMOsbmggaOG7k2kgcXV5IMSRxrDhu6NjIMaw4bubYyBsxrDhu6NuZyBi4bufaSBwaMawxqFuZyBwaMOhcCBI4bujcCBsw70gY+G7sWMgxJHhuqFpIChNTCkuIE3hu5l0IGPDoWNoIHThu5VuZyBxdcOhLCBjxaluZyBnaeG7kW5nIG5oxrAgY2jhu4kgdGnDqnUgQUlDLCBnacOhIHRy4buLIGPhu6dhIERldmlhbmNlIGPDoG5nIG5o4buPIHRow6wgbcO0IGjDrG5oIGPDoG5nIHThu5F0Lg0KDQoqIENo4buJIHPhu5EgQnJpZXINCg0KQ2jhu4kgc+G7kSBCcmllciB0aOG7sWMgY2jhuqV0IGzDoCB0cnVuZyBi4buJbmggY+G7p2EgdOG7lW5nIGLDrG5oIHBoxrDGoW5nIGPDoWMgxJHhu5kgbOG7h2NoIGdp4buvYSBnacOhIHRy4buLIGPhu6dhIGJp4bq/biBwaOG7pSB0aHXhu5ljIFkgdsOgIGdpw6EgdHLhu4sgxrDhu5tjIGzGsOG7o25nIGPhu6dhIG7Dsy4gVsOsIHbhuq15IGNo4buJIHPhu5EgQiBjw6BuZyBiw6kgdGjDrCBtw7QgaMOsbmggY2hvIMaw4bubYyBsxrDhu6NuZyBjw6BuZyBjaMOtbmggeMOhYywgdOG7qWMgbMOgIGPDoG5nIHBow7kgaOG7o3AgduG7m2kgZOG7ryBsaeG7h3UgcXVhbiBzw6F0Lg0KDQoqICBNYSB0cuG6rW4gbmjhuqdtIGzhuqtuIChDb25mdXNpb24gbWF0cml4KQ0KDQpMw6AgbeG7mXQgcGjGsMahbmcgcGjDoXAgxJHDoW5oIGdpw6Ega+G6v3QgcXXhuqMgY+G7p2Egbmjhu69uZyBiw6BpIHRvw6FuIHBow6JuIGxv4bqhaSB24bubaSB2aeG7h2MgeGVtIHjDqXQgY+G6oyBuaOG7r25nIGNo4buJIHPhu5EgduG7gSDEkeG7mSBjaMOtbmggeMOhYyB2w6AgxJHhu5kgYmFvIHF1w6F0IGPhu6dhIGPDoWMgZOG7sSDEkW/DoW4gY2hvIHThu6tuZyBs4bubcC4gTeG7mXQgY29uZnVzaW9uIG1hdHJpeCBn4buTbSA0IGNo4buJIHPhu5Egc2F1IMSR4buRaSB24bubaSBt4buXaSBs4bubcCBwaMOibiBsb+G6oWk6DQoNClRQIChUcnVlIFBvc2l0aXZlKTogU+G7kSBsxrDhu6NuZyBk4buxIMSRb8OhbiBjaMOtbmggeMOhYw0KDQpUTiAoVHJ1ZSBOZWdhdGl2ZSk6IFPhu5EgbMawxqFuZyBk4buxIMSRb8OhbiBjaMOtbmggeMOhYyBt4buZdCBjw6FjaCBnacOhbiB0aeG6v3ANCg0KRlAgKEZhbHNlIFBvc2l0aXZlIC0gVHlwZSAxIEVycm9yKTogU+G7kSBsxrDhu6NuZyBjw6FjIGThu7EgxJFvw6FuIHNhaSBs4buHY2gNCg0KRk4gKEZhbHNlIE5lZ2F0aXZlIC0gVHlwZSAyIEVycm9yKTogU+G7kSBsxrDhu6NuZyBjw6FjIGThu7EgxJFvw6FuIHNhaSBs4buHY2ggbeG7mXQgY8OhY2ggZ2nDoW4gdGnhur9wDQoNClRyb25nIG1hIHRy4bqtbiBuaOG6p20gbOG6q24gbmfGsOG7nWkgdGEgeMOpdCBjw6FjIGNo4buJIHPhu5E6DQoNCispxJDhu5kgY2jDrW5oIHjDoWMgdG/DoG4gdGjhu4MgKHThu7cgbOG7hyBk4buxIGLDoW8gxJHDum5nIHRyw6puIHRvw6BuIGLhu5kgbeG6q3UpDQoNCispU2FpIHPhu5EgdG/DoG4gdGjhu4MgKHThu7cgbOG7hyBk4buxIGLDoW8gc2FpIHRyw6puIG3huqt1KQ0KDQorKcSQ4buZIG5o4bqheSAoU2Vuc2l0aXZpdHkpICh04bu3IGzhu4cgZOG7sSBiw6FvIMSRw7puZyB0csOqbiB04buVbmcgc+G7kSBjw6FjIHRow6BuaCBjw7RuZyDEkcaw4bujYyBxdWFuIHPDoXQpLiDEkOG7mSBuaOG6oXkgY8OgbmcgbOG7m24gY8OgbmcgdOG7kXQuDQoNCispU2FpIHPhu5Egw6JtIHTDrW5oIGdp4bqjIChGYWxlIG5lZ2F0aXZlIGVycm9yKQ0KDQorKcSQ4buZIMSR4bq3YyBoaeG7h3UgKFNwZWNpZmljaXR5KSDEkOG7mSDEkeG6t2MgaGnhu4d1IGPDoG5nIGzhu5tuIGPDoG5nIHThu5F0LiBN4buZdCBtw7QgaMOsbmggdOG7kXQgbMOgIG3hu5l0IG3DtCBow6xuaCBjw7MgxJHhu5kgbmjhuqF5IGzhu5tuIHbDoCDEkeG7mSDEkeG6t2MgaGnhu4d1IGzhu5tuLg0KDQorKVNhaSBz4buRIGTGsMahbmcgdMOtbmggZ2nhuqMgDQoNCiMgQ0jGr8agTkcgMzogVEjhu5BORyBLw4ogTcOUIFThuqIgQ0hPIEPDgUMgQknhur5ODQoNCiMjIDMuMiBUaOG7kW5nIGvDqiBtw7QgdOG6oyBjaG8gdOG7q25nIGJp4bq/biDEkeG7i25oIHTDrW5oDQoNCiMjIyAzLjIuMSBCaeG6v24gVHJhdmVsIChN4bulYyDEkcOtY2ggY2h1eeG6v24gYmF5IGPhu6dhIGjDoG5oIGtow6FjaCkNCg0KVHJhdmVsIGzDoCBiaeG6v24gdGjhu4MgaGnhu4duIE3hu6VjIMSRw61jaCBjaHV54bq/biBiYXkgY+G7p2EgaMOgbmgga2jDoWNoLCBn4buTbSAyIGJp4buDdSBoaeG7h24NCg0KYGBge3J9DQp0YWJsZShETCRUcmF2ZWwpDQpgYGAgDQogIA0KYGBge3J9DQp0YWJsZShETCRUcmF2ZWwpL3N1bSh0YWJsZShETCRUcmF2ZWwpKQ0KYGBgDQoNCmBgYHtyfSAgDQpnZ3Bsb3QobWFwID0gYWVzKHg9VHJhdmVsLCB5PSBhZnRlcl9zdGF0KGNvdW50KSkpK2dlb21fYmFyKGZpbGwgPSAnYnJvd24nKStnZW9tX3RleHQoYWVzKGxhYmVsPXBlcmNlbnQoYWZ0ZXJfc3RhdChjb3VudC9zdW0oY291bnQpKSxhY2N1cmFjeSA9IC4wMSkpLCBzdGF0ID0gJ2NvdW50JywgY29sb3IgPSAnd2hpdGUnLHZqdXN0ID0gNCkgKyBsYWJzKHRpbHRsZSA9ICfEkOG7mSB0aOG7iyB0aOG7gyBoaeG7h24gc+G7kSBsxrDhu6NuZyBow6BuaCBraMOhY2ggY2hpYSB0aGVvIG3hu6VjIMSRw61jaCBjaHV54bq/biBiYXkgJywgeCA9ICdN4bulYyDEkcOtY2ggY2h1eeG6v24gYmF5IGPhu6dhIGjDoG5oIGtow6FjaCcsIHkgPSAnc+G7kSBsxrDhu6NuZyBow6BuaCBraMOhY2gnKQ0KYGBgDQoNCk5o4bqtbiB4w6l0OiBUcm9uZyAyNTk3NiBow6BuaCBraMOhY2ggIMSRxrDhu6NjIGto4bqjbyBzw6F0IGPDszoNCg0KMTgwMzggaMOgbmgga2jDoWNoIMSRaSBjaHV54bq/biBiYXkgduG7m2kgbeG7pWMgxJHDrWNoIEJ1c2luZXNzIFRyYXZlbDogRHUgbOG7i2NoIEPDtG5nIHTDoWMgLCBjaGnhur9tIDY5LjQ0JS4NCg0KNzkzOCBow6BuaCBraMOhY2ggxJFpIGNodXnhur9uIGJheSB24bubaSBt4bulYyDEkcOtY2ggUGVyc29uYWwgVHJhdmVsOiBEdSBs4buLY2ggQ8OhIG5ow6JuLCwgY2hp4bq/bSAzMC41NiUNCg0KxJDhu5MgdGjhu4sgY+G7mXQgdGjhu4MgaGnhu4duIHPhu5EgaMOgbmgga2jDoWNoIMSRxrDhu6NjIGNoaWEgdGhlbyBt4bulYyDEkcOtY2ggY2h1eeG6v24gYmF5LCBjw7MgdGjhu4MgdGjhuqV5IGPDsyBz4buxIGNow6puaCBs4buHY2gga2jDoSANCmzhu5tuIHbDoG8ga2hv4bqjbmcgMzAlIGdp4buvYSBt4bulYyDEkcOtY2ggY2h1eeG6v24gYmF5IGPhu6dhIGjDoG5oIGtow6FjaCBjw6EgbmjDom4gdsOgIGPDtG5nIHTDoWMuIA0KDQojIyMgMy4yLjIgQmnhur9uIEdlbmRlciAoZ2nhu5tpIHTDrW5oKQ0KDQpgYGB7cn0NCnRhYmxlKERMJEdlbmRlcikNCmBgYCANCiAgDQpgYGB7cn0NCnRhYmxlKERMJEdlbmRlcikvc3VtKHRhYmxlKERMJEdlbmRlcikpDQpgYGANCg0KYGBge3J9ICANCmdncGxvdChtYXAgPSBhZXMoeCA9IEdlbmRlciwgeSA9IGFmdGVyX3N0YXQoY291bnQpKSkgKyBnZW9tX2JhcihmaWxsID0gJ2xpZ2h0c2xhdGVncmF5JykgKyBnZW9tX3RleHQoYWVzKGxhYmVsID0gc2NhbGVzOjpwZXJjZW50KGFmdGVyX3N0YXQoY291bnQvc3VtKGNvdW50KSksIGFjY3VyYWN5ID0gMC4wMSkpLCBzdGF0ID0gJ2NvdW50Jywgdmp1c3QgPSA1LCBjb2xvciA9ICdwaW5rJykrIGxhYnModGl0bGUgPSAnQmnhu4N1IMSR4buTIGPhu5l0IHRo4buDIGhp4buHbiBz4buRIGzGsOG7o25nIGjDoG5oIGtow6FjaCB0aGVvIGdp4bubaSB0w61uaCcsIHlsYWIgPSAnU+G7kSBsxrDhu6NuZyBow6BuaCBraMOhY2gnLCB4bGFiID0gJ0dp4bubaSB0w61uaCcpDQpgYGANCg0KTmjhuq1uIHjDqXQ6IFRyb25nIDI1OTc2IGjDoG5oIGtow6FjaCDEkcaw4bujYyBraOG6o28gc8OhdCBjw7M6DQoNCjEyODA0IGjDoG5oIGtow6FjaCB0aHXhu5ljIGdp4bubaSB0w61uaCBuYW0gKDQ5LDI5JSkNCg0KMTMxNzIgaMOgbmgga2jDoWNoIHRodeG7mWMgZ2nhu5tpIHTDrW5oIG7hu68gKCBjaGnhur9tIDUwLDcxJSkNCg0KTmjGsCB24bqteSB0cm9uZyB04buVbmcgc+G7kSBow6BuaCBraMOhY2ggxJHGsOG7o2Mga2jhuqNvIHPDoXQgc+G7kSBow6BuaCBraMOhY2ggY8OzIGdp4bubaSB0w61uaCBu4buvIG5oaeG7gXUgaMahbiBz4buRIGjhu41jIHNpbmggY8OzIGdp4bubaSB0w61uaCBuYW0gMzY4IG5nxrDhu51pIChraG/huqNuZyAxLDQyJSBzbyB24bubaSB04buVbmcgaMOgbmgga2jDoWNoKS4NCg0KIyMjIDMuMi4zIEJp4bq/biBDdXN0b21lciAoTG/huqFpIGtow6FjaCBow6BuZykNCg0KYGBge3J9DQp0YWJsZShETCRDdXN0b21lcikNCmBgYCANCiAgDQpgYGB7cn0NCnRhYmxlKERMJEN1c3RvbWVyKS9zdW0odGFibGUoREwkQ3VzdG9tZXIpKQ0KYGBgDQoNCmBgYHtyfSAgDQpnZ3Bsb3QobWFwID0gYWVzKHggPSBDdXN0b21lciwgeSA9IGFmdGVyX3N0YXQoY291bnQpKSkgKyBnZW9tX2JhcihmaWxsID0gJ2xpZ2h0cGluaycpICsgZ2VvbV90ZXh0KGFlcyhsYWJlbCA9IHNjYWxlczo6cGVyY2VudChhZnRlcl9zdGF0KGNvdW50L3N1bShjb3VudCkpLCBhY2N1cmFjeSA9IDAuMDEpKSwgc3RhdCA9ICdjb3VudCcsIHZqdXN0ID0gNSwgY29sb3IgPSAnZGFya2JsdWUnKSsgbGFicyh0aXRsZSA9ICdCaeG7g3UgxJHhu5MgY+G7mXQgdGjhu4MgaGnhu4duIHPhu5EgbMaw4bujbmcgaMOgbmgga2jDoWNoIHRoZW8gbG/huqFpIGtow6FjaCBow6BuZycsIHlsYWIgPSAnU+G7kSBsxrDhu6NuZyBow6BuaCBraMOhY2gnLCB4bGFiID0gJ0xv4bqhaSBraMOhY2ggaMOgbmcnKQ0KYGBgDQoNCk5o4bqtbiB4w6l0OiBUcm9uZyAyNTk3NiBow6BuaCBraMOhY2ggxJHGsOG7o2Mga2jhuqNvIHPDoXQgY8OzOg0KDQo0Nzk5IGjDoG5oIGtow6FjaCB0aHXhu5ljIGxv4bqhaSBkaXNsb3lhbCBjdXN0b21lcjoga2jDoWNoIGjDoG5nIGtow7RuZyB0cnVuZyB0aMOgbmggKDE4LDQ3JSkNCg0KMjExNzcgaMOgbmgga2jDoWNoIHRodeG7mWMgbG/huqFpbG/huqFpIExveWFsIGN1c3RvbWVyOktow6FjaCBow6BuZyB0cnVuZyB0aMOgbmggKCBjaGnhur9tIDgxLDUzJSkNCg0KTmjGsCB24bqteSB0cm9uZyB04buVbmcgc+G7kSBow6BuaCBraMOhY2ggxJHGsOG7o2Mga2jhuqNvIHPDoXQgc+G7kSBow6BuaCBraMOhY2ggdHJ1bmcgdGjDoG5oIG5oaeG7gXUgaMahbiBz4buRIGjDoG5oIGtow6FjaCBraMO0bmcgdHJ1bmcgdGjDoG5oIDE2Mzc4IG5nxrDhu51pIChraG/huqNuZyA2MywwNSUgc28gduG7m2kgdOG7lW5nIGjDoG5oIGtow6FjaCkuDQoNCiMjIyAzLjIuNCBCaeG6v24gQ2xhc3MgKEjhuqFuZyBkdSBs4buLY2ggdHLDqm4gbcOheSBiYXkgY+G7p2EgaMOgbmgga2jDoWNoICkNCg0KYGBge3J9DQp0YWJsZShETCRDbGFzcykNCmBgYCANCiAgDQpgYGB7cn0NCnRhYmxlKERMJENsYXNzKS9zdW0odGFibGUoREwkQ2xhc3MpKQ0KYGBgDQoNCmBgYHtyfSAgDQpnZ3Bsb3QobWFwID0gYWVzKHggPSBDbGFzcywgeSA9IGFmdGVyX3N0YXQoY291bnQpKSkgKyBnZW9tX2JhcihmaWxsID0gJ3NhbG1vbicpICsgZ2VvbV90ZXh0KGFlcyhsYWJlbCA9IHNjYWxlczo6cGVyY2VudChhZnRlcl9zdGF0KGNvdW50L3N1bShjb3VudCkpLCBhY2N1cmFjeSA9IDAuMDEpKSwgc3RhdCA9ICdjb3VudCcsIHZqdXN0ID0gNSwgY29sb3IgPSAnZGFya2JsdWUnKSsgbGFicyh0aXRsZSA9ICdCaeG7g3UgxJHhu5MgY+G7mXQgdGjhu4MgaGnhu4duIHPhu5EgbMaw4bujbmcgaMOgbmgga2jDoWNoIHRoZW8gaOG6oW5nIGR1IGzhu4tjaCB0csOqbiBtw6F5IGJheScsIHlsYWIgPSAnU+G7kSBsxrDhu6NuZyBow6BuaCBraMOhY2gnLCB4bGFiID0gJ0jhuqFuZyBkdSBs4buLY2ggdHLDqm4gbcOheSBiYXknKQ0KYGBgDQoNCk5o4bqtbiB4w6l0OiBUcm9uZyAyNTk3NiBow6BuaCBraMOhY2ggxJHGsOG7o2Mga2jhuqNvIHPDoXQgY8OzOg0KDQoxMjQ5NSBow6BuaCBraMOhY2ggdGh14buZYyBo4bqhbmcgQnVzaW5lc3M6IFRoxrDGoW5nIGdpYSB0csOqbiBtw6F5IGJheSAoNDgsMTAlKQ0KDQoxMTU2NCBow6BuaCBraMOhY2ggdGh14buZYyBo4bqhbmcgRWNvIChjaGnhur9tIDQ0LDUyJSkNCg0KMTkxNyBow6BuaCBraMOhY2ggdGh14buZYyBo4bqhbmcgRWNvIFBsdXMgKGNoaeG6v20gNywzOCUpDQoNCk5oxrAgduG6rXkgdHJvbmcgdOG7lW5nIHPhu5EgaMOgbmgga2jDoWNoIMSRxrDhu6NjIGto4bqjbyBzw6F0IHPhu5EgaMOgbmgga2jDoWNoIHRydW5nIHRow6BuaCBuaGnhu4F1IGjGoW4gc+G7kSBow6BuaCBraMOhY2gga2jDtG5nIHRydW5nIHRow6BuaCAxNjM3OCBuZ8aw4budaSAoa2hv4bqjbmcgNjMsMDUlIHNvIHbhu5tpIHThu5VuZyBow6BuaCBraMOhY2gpLg0KDQpOaMOsbiB2w6BvIMSR4buTIHRo4buLLCB0YSBjw7Mga+G6v3QgbHXhuq1uLCB0cm9uZyB04buVbmcgc+G7kSAyNTk3NiBow6BuaCBraMOhY2ggxJHGsOG7o2Mga2jhuqNvIHPDoXQsIG5ow7NtIGjDoG5oIGtow6FjaCB0aHXhu5ljIGjhuqFuZyBCdXNpbmVzczogVGjGsMahbmcgZ2lhIHRyw6puIG3DoXkgYmF5IGzDoCBuaGnhu4F1IG5o4bqldCAoMTI0OTUgbmfGsOG7nWksIGNoaeG6v20gNDgsMTAlKSwgdGhlbyBzw6F0IGzDoCBuaMOzbSBow6BuaCBraMOhY2ggdGh14buZYyBo4bqhbmcgRWNvIHbhu5tpIDExNTY0IGjDoG5oIGtow6FjaCBjaGnhur9tIDQ0LDUyJSwgdGjhuqVwIG5o4bqldCBsw6AgbmjDs20gaMOgbmgga2jDoWNoIHRodeG7mWMgaOG6oW5nIEVjbyBQbHVzcyAoMTkxNyBuZ8aw4budaSwgY2hp4bq/bSA3LDM4JSkuIE5oxrAgduG6rXkgdGEgdGjhuqV5IGPDsyBz4buxIGNow6puaCBs4buHY2ggbOG7m24gZ2nhu69hIHPhu5EgbmfGsOG7nWkgdGh14buZYyBo4bqhbmcgQnVzaW5lc3Mgc28gduG7m2kgbmjDs20gdGh14buZYyBo4bqhbmcgRWNvIFBsdXNzLg0KDQojIyMgMy4yLjUgQmnhur9uIFNGOiBTYXRpc2ZhY3Rpb24gKE3hu6ljIMSR4buZIGjDoGkgbMOybmcgY+G7p2EgaMOgbmgga2jDoWNoIMSR4buRaSB24bubaSBow6NuZyBow6BuZyBraMO0bmcpIChIw6BpIGzDsm5nLCBiw6xuaCB0aMaw4budbmcgaG/hurdjIGtow7RuZyBow6BpIGzDsm5nKSANCg0KYGBge3J9DQp0YWJsZShETCRTRikNCmBgYCANCiAgDQpgYGB7cn0NCnRhYmxlKERMJFNGKS9zdW0odGFibGUoREwkU0YpKQ0KYGBgDQoNCmBgYHtyfSAgDQpnZ3Bsb3QobWFwID0gYWVzKHggPSBTRiwgeSA9IGFmdGVyX3N0YXQoY291bnQpKSkgKyBnZW9tX2JhcihmaWxsID0gJ3NsYXRlZ3JheScpICsgZ2VvbV90ZXh0KGFlcyhsYWJlbCA9IHNjYWxlczo6cGVyY2VudChhZnRlcl9zdGF0KGNvdW50L3N1bShjb3VudCkpLCBhY2N1cmFjeSA9IDAuMDEpKSwgc3RhdCA9ICdjb3VudCcsIHZqdXN0ID0gNSwgY29sb3IgPSAnZGFya2JsdWUnKSsgbGFicyh0aXRsZSA9ICdCaeG7g3UgxJHhu5MgY+G7mXQgdGjhu4MgaGnhu4duIHPhu5EgbMaw4bujbmcgaMOgbmgga2jDoWNoIHRoZW8gbeG7qWMgxJHhu5kgaMOgaSBsw7JuZyB24bubaSBow6NuZyBow6BuZyBraMO0bmcnLCB5bGFiID0gJ1Phu5EgbMaw4bujbmcgaMOgbmgga2jDoWNoJywgeGxhYiA9ICdN4bupYyDEkeG7mSBow6BpIGzDsm5nJykNCmBgYA0KDQpOaOG6rW4geMOpdDogVHJvbmcgMjU5NzYgaMOgbmgga2jDoWNoIMSRxrDhu6NjIGto4bqjbyBzw6F0IGPDszoNCg0KMTQ1NzMgaMOgbmgga2jDoWNoIG5ldXRyYWwgb3IgZGlzc2F0aXNmaWVkOiBiw6xuaCB0aMaw4budbmcgaG/hurdjIGtow7RuZyBow6BpIGzDsm5nICg1NiwxMCUpDQoNCjExNDAzIGjDoG5oIGtow6FjaCBzYXRpc2ZpZWQ6IGjDoGkgbMOybmcgKCBjaGnhur9tIDQzLDklKQ0KDQpOaMawIHbhuq15IHRyb25nIHThu5VuZyBz4buRIGjDoG5oIGtow6FjaCDEkcaw4bujYyBraOG6o28gc8OhdCBz4buRIGjDoG5oIGtow6FjaCBjw7MgbeG7qWMgxJHhu5kgYsOsbmggdGjGsOG7nW5nIGhv4bq3YyBraMO0bmcgaMOgaSBsw7JuZyBuaGnhu4F1IGjGoW4gc+G7kSBow6BuaCBraMOhY2ggaMOgaSBsw7JuZyAzMTcwIG5nxrDhu51pIChraG/huqNuZyAxMiwyJSBzbyB24bubaSB04buVbmcgaMOgbmgga2jDoWNoKS4NCg0KIyMjIDMuMi42IEJp4bq/biBJUyAoTeG7qWMgxJHhu5kgaMOgaSBsw7JuZyB24buBIGThu4tjaCB24bulIHRyw6puIGNodXnhur9uIGJheSkNCg0KYGBge3J9DQp0YWJsZShJUykNCmBgYCANCiAgDQpgYGB7cn0NCnRhYmxlKERMJElTKS9zdW0odGFibGUoREwkSVMpKQ0KYGBgDQoNCmBgYHtyfSAgDQpnZ3Bsb3QobWFwID0gYWVzKHggPSBETCRJUywgeSA9IGFmdGVyX3N0YXQoY291bnQpKSkgKyBnZW9tX2JhcihmaWxsID0gJ3NsYXRlZ3JheScpICsgZ2VvbV90ZXh0KGFlcyhsYWJlbCA9IHNjYWxlczo6cGVyY2VudChhZnRlcl9zdGF0KGNvdW50L3N1bShjb3VudCkpLCBhY2N1cmFjeSA9IDAuMDEpKSwgc3RhdCA9ICdjb3VudCcsIHZqdXN0ID0gNSwgY29sb3IgPSAnZGFya2JsdWUnKSsgbGFicyh0aXRsZSA9ICdCaeG7g3UgxJHhu5MgY+G7mXQgdGjhu4MgaGnhu4duIHPhu5EgbMaw4bujbmcgaMOgbmgga2jDoWNoIHRoZW8gbeG7qWMgxJHhu5kgaMOgaSBsw7JuZyB24bubaSBk4buLY2ggduG7pSB0csOqbiBjaHV54bq/biBiYXknLCB5bGFiID0gJ1Phu5EgbMaw4bujbmcgaMOgbmgga2jDoWNoJywgeGxhYiA9ICdN4bupYyDEkeG7mSBow6BpIGzDsm5nJykNCmBgYA0KDQpOaOG6rW4geMOpdDogVHJvbmcgMjU5NzYgaMOgbmgga2jDoWNoIMSRxrDhu6NjIGto4bqjbyBzw6F0IGPDszoNCg0KMiBow6BuaCBraMOhY2ggY8OzIG3hu6ljIMSR4buZIGjDoGkgbMOybmcgduG7gSBk4buLY2ggduG7pSB0csOqbiBjaHV54bq/biBiYXkgbMOgIDANCg0KMTc3OCBow6BuaCBraMOhY2ggY8OzIG3hu6ljIMSR4buZIGjDoGkgbMOybmcgduG7gSBk4buLY2ggduG7pSB0csOqbiBjaHV54bq/biBiYXkgbMOgIDEgKDYsODQlKQ0KDQoyODUxIGjDoG5oIGtow6FjaCBjw7MgbeG7qWMgxJHhu5kgaMOgaSBsw7JuZyB24buBIGThu4tjaCB24bulIHRyw6puIGNodXnhur9uIGJheSBsw6AgMiAoMTAsOTglKQ0KDQo1MDE3IGjDoG5oIGtow6FjaCBjw7MgbeG7qWMgxJHhu5kgaMOgaSBsw7JuZyB24buBIGThu4tjaCB24bulIHRyw6puIGNodXnhur9uIGJheSBsw6AgMyAoMTksMzElKQ0KDQo5Mzc4IGjDoG5oIGtow6FjaCBjw7MgbeG7qWMgxJHhu5kgaMOgaSBsw7JuZyB24buBIGThu4tjaCB24bulIHRyw6puIGNodXnhur9uIGJheSBsw6AgNCAoMzYsMSUpDQoNCjY5NTAgaMOgbmgga2jDoWNoIGPDsyBt4bupYyDEkeG7mSBow6BpIGzDsm5nIHbhu4EgZOG7i2NoIHbhu6UgdHLDqm4gY2h1eeG6v24gYmF5IGzDoCA0ICgyNiw3NiUpDQoNCiMjIDMuMyBUaMO0bmcga8OqIG3DtCB04bqjIG5ow7NtIGJp4bq/biDEkeG7i25oIGzGsOG7o25nDQoNCiMjIyAzLjMuMSBCaeG6v24gQWdlIChUdeG7lWkgdGjhu7FjIHThur8gY+G7p2EgaMOgbmgga2jDoWNoKQ0KDQpgYGB7cn0NCnN1bW1hcnkoREwkQWdlKQ0KYGBgDQoNCkJp4bq/biDEkeG7mSB0deG7lWkgKGFnZSkgbMOgIGJp4bq/biDEkeG7i25oIGzGsOG7o25nIGNobyBiaeG6v3QgxJHhu5kgdHXhu5VpIGPhu6dhIGjDoG5oIGtow6FjaCB0csOqbiBjaHV54bq/biBiYXkuIFRow7RuZyBxdWEga+G6v3QgcXXhuqMgdHLDqm4gdGEgdGjhuqV5IMSR4buZIHR14buVaSBjw6FjIGjDoG5oIGtow6FjaCB0csOqbiBjaHV54bq/biBiYXkgbmjhu48gbmjhuqV0IGzDoCA3IHR14buVaSwgbOG7m24gbmjhuqV0IGzDoCA4NSB0deG7lWkgdsOgIMSR4buZIHR14buVaSB0cnVuZyBiw6xuaCBj4bunYSBjw6FjIGLhu4duaCBuaMOibiBraG/huqNuZyAzOSB0deG7lWkuIFThu6kgcGjDom4gduG7izogbMOgIGJhIMSRaeG7g20gY+G6r3Qgc+G6vSBjaGlhIHThuq1wIGThu68gbGnhu4d1IHRow6BuaCA0IG5ow7NtIGPDsyBrw61jaCB0aMaw4bubYyBi4bqxbmcgbmhhdSwgY+G7pSB0aOG7gzogVOG7qSBwaMOibiB24buLIHRo4bupIG5o4bqldCAoMXN0IFF1LikgPSAyNyBOZ2jEqWEgbMOgIGTGsOG7m2kgMjUlIGjDoG5oIGtow6FjaCB0csOqbiBjaHV54bq/biBiYXkgY8OzIMSR4buZIHR14buVaSBuaOG7jyBoxqFuIDI3IHR14buVaSBoYXkgdHLDqm4gNzUlIHPhu5EgbmfGsOG7nWkgbmjhuq1wIHZp4buHbiBjw7MgxJHhu5kgdHXhu5VpIGzhu5tuIGjGoW4gMjcgdHXhu5VpLg0KDQpU4bupIHBow6JuIHbhu4sgdGjhu6kgaGFpICh0cnVuZyB24buLOiBNZWRpYW4pID0gNDAgTmdoxKlhIGzDoCBkxrDhu5tpIDUwJSBz4buRIGjDoG5oIGtow6FjaCBjw7Mgc+G7kSB0deG7lWkgbmjhu48gaMahbiA0MCBoYXkgdHLDqm4gNTAlIHPhu5EgaMOgbmgga2jDoWNoIGPDsyDEkeG7mSB0deG7lWkgbOG7m24gaMahbiA0MCB0deG7lWkuDQoNClThu6kgcGjDom4gduG7iyB0aOG7qSBiYSAoM3JkIFF1LikgPSA1MSBOZ2jEqWEgbMOgIGTGsOG7m2kgNzUlIHThu5VuZyBz4buRIG5nxrDhu51pIG5o4bqtcCB2aeG7h24gY8OzIMSR4buZIHR14buVaSBuaOG7jyBoxqFuIDUxIGhheSB0csOqbiAyNSUgc+G7kSBuZ8aw4budaSBuaOG6rXAgdmnhu4duIGzhu5tuIGjGoW4gNTEgdHXhu5VpLg0KDQpgYGB7cn0NCkFnZSA8LSBETCRBZ2UNCnRhYmxlKGN1dChBZ2UsMykpDQpgYGAgIA0KQuG6o25nIHThuqduIHPhu5EgdHLDqm4gY2hvIHRo4bqleSBjw7MgOTM2NCBow6BuaCBraMOhY2ggdHLDqm4gY2h1eeG6v24gYmF5IGPDsyDEkeG7mSB0deG7lWkgdHJvbmcga2hv4bqjbmcgdOG7qyA3IMSR4bq/biAzMyB0deG7lWk7IGPDsyAgMTQxMTYgaMOgbmgga2jDoWNoIHRyw6puIGNodXnhur9uIGJheSBjw7MgdHXhu5VpIHRyb25nIGtob+G6o25nIHThu6sgMzMgxJHhur9uIDU5IHR14buVaSB2w6AgY8OzIDI0OTYgaMOgbmgga2jDoWNoIHRyw6puIGNodXnhur9uIGJheSBjw7Mgc+G7kSB0deG7lWkgbuG6sW0gdHJvbmcga2hv4bqjbmcgdOG7qyA1OSDEkeG6v24gODUgdHXhu5VpLg0KICANCmBgYHtyfQ0KaGlzdChETCRBZ2UsIG1haW4gPSAiQmnhu4N1IMSR4buTIHThuqduIHPhu5EgY+G7p2EgxJHhu5kgdHXhu5VpIChhZ2UpIix4bGFiID0gIsSQ4buZIHR14buVaSIsIHlsYWIgPSAiU+G7kSBuZ8aw4budaSIsIGNvbCA9ICJsaWdodGJsdWUiKQ0KYGBgIA0KDQpE4buxYSB2w6BvIGJp4buDdSDEkeG7kyB04bqnbiBz4buRIGPhu6dhIGJp4bq/biDEkeG7mSB0deG7lWkgKGFnZSkgY2hvIHRo4bqleSBraMO0bmcgY8OzIHF1w6Egbmhp4buBdSBz4buxIGNow6puaCBs4buHY2ggduG7gSBz4buRIGzGsOG7o25nIGjDoG5oIGtow6FjaCB0csOqbiBjaHV54bq/biBiYXkg4bupbmcgduG7m2kgbmjhu69uZyDEkeG7mSB0deG7lWkga2jDoWMgbmhhdS4gVHJvbmcgxJHDsyBz4buRIGzGsOG7o25nIGjDoG5oIGtow6FjaCB0csOqbiBjaHV54bq/biBiYXkgdOG7qyAyMCB0deG7lWkgxJHhur9uIDYwIGzDoCBuaGnhu4F1IG5o4bqldCB2w6Agc+G7kSBsxrDhu6NuZyBow6BuaCBraMOhY2ggdHLDqm4gY2h1eeG6v24gYmF5IHRyw6puIDYwIHR14buVaSBsw6Agw610IG5o4bqldC4NCg0KIyMjIDMuMy4yIEJp4bq/biBERElNIChEZXBhcnR1cmUgRGVsYXkgTWludXRlcyk6IFPhu5EgcGjDunQgYuG7iyB0cuG7hSBraGkga2jhu59pIGjDoG5oDQoNCmBgYHtyfQ0Kc3VtbWFyeShETCRERElNKQ0KYGBgDQoNCkJp4bq/biBERElNIChEZXBhcnR1cmUgRGVsYXkgTWludXRlcykgbMOgIGJp4bq/biDEkeG7i25oIGzGsOG7o25nIGNobyBiaeG6v3QgU+G7kSBwaMO6dCBi4buLIHRy4buFIGtoaSBraOG7n2kgaMOgbmggY2h1eeG6v24gYmF5LiBUaMO0bmcgcXVhIGvhur90IHF14bqjIHRyw6puIHRhIHRo4bqleSBT4buRIHBow7p0IGLhu4sgdHLhu4Uga2hpIGto4bufaSBow6BuaCB0csOqbiBjaHV54bq/biBiYXkgY+G7p2EgaMOgbmgga2jDoWNoIG5o4buPIG5o4bqldCBsw6AgMCBwaMO6dCwgbOG7m24gbmjhuqV0IGzDoCAxMTI4IHBow7p0IHbDoCB0cnVuZyBiw6xuaCBT4buRIHBow7p0IGLhu4sgdHLhu4Uga2hpIGto4bufaSBow6BuaCB0csOqbiBjaHV54bq/biBiYXkgY+G7p2EgaMOgbmgga2jDoWNoIGtob+G6o25nIDE0LjMxIHBow7p0LiBU4bupIHBow6JuIHbhu4s6IGzDoCBiYSDEkWnhu4NtIGPhuq90IHPhur0gY2hpYSB04bqtcCBk4buvIGxp4buHdSB0aMOgbmggNCBuaMOzbSBjw7Mga8OtY2ggdGjGsOG7m2MgYuG6sW5nIG5oYXUsIGPhu6UgdGjhu4M6IFThu6kgcGjDom4gduG7iyB0aOG7qSBuaOG6pXQgKDFzdCBRdS4pID0gMCBOZ2jEqWEgbMOgIGTGsOG7m2kgMjUlIGjDoG5oIGtow6FjaCB0csOqbiBjaHV54bq/biBiYXkgY8OzIFPhu5EgcGjDunQgYuG7iyB0cuG7hSBraGkga2jhu59pIGjDoG5oIG5o4buPIGjGoW4gMCBoYXkgdHLDqm4gNzUlIGjDoG5oIGtow6FjaCB0csOqbiBjaHV54bq/biBiYXkgY8OzIFPhu5EgcGjDunQgYuG7iyB0cuG7hSBraGkga2jhu59pIGjDoG5oIGzhu5tuIGjGoW4gMC4NCg0KVOG7qSBwaMOibiB24buLIHRo4bupIGhhaSAodHJ1bmcgduG7izogTWVkaWFuKSA9IDAgTmdoxKlhIGTGsOG7m2kgNTAlIGjDoG5oIGtow6FjaCB0csOqbiBjaHV54bq/biBiYXkgY8OzIFPhu5EgcGjDunQgYuG7iyB0cuG7hSBraGkga2jhu59pIGjDoG5oIG5o4buPIGjGoW4gMCBoYXkgdHLDqm4gNTAlIGjDoG5oIGtow6FjaCB0csOqbiBjaHV54bq/biBiYXkgY8OzIFPhu5EgcGjDunQgYuG7iyB0cuG7hSBraGkga2jhu59pIGjDoG5oIGzhu5tuIGjGoW4gMC4NCg0KVOG7qSBwaMOibiB24buLIHRo4bupIGJhICgzcmQgUXUuKSA9IDEyIE5naMSpYSBkxrDhu5tpIDc1JSBow6BuaCBraMOhY2ggdHLDqm4gY2h1eeG6v24gYmF5IGPDsyBT4buRIHBow7p0IGLhu4sgdHLhu4Uga2hpIGto4bufaSBow6BuaCBuaOG7jyBoxqFuIDEyIGhheSB0csOqbiAyNSUgaMOgbmgga2jDoWNoIHRyw6puIGNodXnhur9uIGJheSBjw7MgU+G7kSBwaMO6dCBi4buLIHRy4buFIGtoaSBraOG7n2kgaMOgbmggbOG7m24gaMahbiAxMg0KICANCmBgYHtyfQ0KaGlzdChETCRERElNLCBtYWluID0gIkJp4buDdSDEkeG7kyB04bqnbiBz4buRIGPhu6dhIERESU0gKFPhu5EgcGjDunQgYuG7iyB0cuG7hSBraGkga2jhu59pIGjDoG5oKSIseGxhYiA9ICJT4buRIHBow7p0IGLhu4sgdHLhu4Uga2hpIGto4bufaSBow6BuaCIsIHlsYWIgPSAiU+G7kSBow6BuaCBraMOhY2giLCBjb2wgPSAiYmx1ZSIpDQpgYGAgDQoNClRow7RuZyBxdWEgYmnhu4N1IMSR4buTIHThuqduIHPhu5EgdHLDqm4gY8OzIHRo4buDIHRo4bqleSBy4bqxbmcgU+G7kSBwaMO6dCBi4buLIHRy4buFIGtoaSBraOG7n2kgaMOgbmggY+G7p2EgaMOgbmgga2jDoWNoIHRyw6puIGNodXnhur9uIGJheSBuaGnhu4F1IG5o4bqldCBsw6AgdsOgbyBraG/huqNuZyB04burIDAgLSAxMDAgcGjDunQgdsOgIMOtdCBuaOG6pXQgbMOgIHThu6sgMjAwIHBow7p0IHRy4bufIGzDqm4uDQoNCiMjIDMuNCBUaOG7kW5nIGvDqiBtw7QgdOG6oyBjaG8gdOG7q25nIGPhurdwIGJp4bq/biANCg0KIyMjIDMuNC4xIFRo4buRbmcga8OqIG3DtCB04bqjIGJp4bq/biBwaOG7pSB0aHXhu5ljOiBJUyB2w6AgR2nhu5tpIHTDrW5oIChHZW5kZXIpDQoNCiMjIyMgMy40LjEuMSBNw6MgaG/DoSBiaeG6v24gxJHhu4tuaCB0w61uaCAoSVM6IEluZmxpZ2h0IHNlcnZpY2UpIGPDsyAyIGdpw6EgdHLhu4sgDQoNClbhu5tpIGThu68gbGnhu4d1IGfhu5FjLCBiaeG6v24gU+G7kSDEkWnhu4NtIHbhu4EgbeG7qWMgxJHhu5kgaMOgaSBsw7JuZyB24buBIGThu4tjaCB24bulIHRyw6puIGNodXnhur9uIGJheSAoSVM6IEluZmxpZ2h0IHNlcnZpY2UpIGzDoCBiaeG6v24gxJHhu4tuaCB0w61uaCBuaOG6rW4gY8OhYyBnacOhIHRy4buLIHThu6sgMCDEkeG6v24gNSDEkWnhu4NtIG7Dqm4gdMOhYyBnaeG6oyDEkcOjIMSR4bq3dCBxdXkgxrDhu5tjIHbhu4Egdmnhu4djIG3DoyBob8OhIGJp4bq/biAoSVM6IEluZmxpZ2h0IHNlcnZpY2UpIG5oxrAgc2F1OiBT4buRIMSRaeG7g20gdGjhuqVwIChUaOG6pXApOiBT4buRIMSRaeG7g20gdGjhuqVwIHThu6sgdHLDqm4gMCDEkeG6v24gMy4gU+G7kSDEkWnhu4NtIGNhbyAoQ2FvKTogU+G7kSDEkWnhu4NtIHThu6sgMyDEkeG6v24gNS4NCg0KYGBge3J9DQpJUyA8LSBjdXQoREwkSVMsIGJyZWFrcyA9IGMoMCwzLDUpLCBsYWJlbHM9YygiVGjhuqVwIiwiQ2FvIikpDQp0YWJsZShJUykNCmBgYA0KDQoNCiMjIyMgMy40LjEuMiBC4bqjbmcgdOG6p24gc+G7kSwgdOG6p24gc3XhuqV0IHbDoCBiaeG7g3UgxJHhu5MNCg0KYGBge3J9DQpHZW5kZXIgPC0gREwkR2VuZGVyDQp0YWJsZShHZW5kZXIpDQpgYGANCkLhuqNuZyB04bqnbiBz4buROg0KDQpgYGB7cn0NCmEgPC0gdGFibGUoR2VuZGVyLCBJUyk7YQ0KYGBgDQoNCkLhuqNuZyB04bqnbiBzdeG6pXQ6DQoNCmBgYHtyfQ0KYTEgPC0gcHJvcC50YWJsZShhKTthMQ0KYGBgDQoNClBow6JuIHBo4buRaSBiacOqbjoNCg0KYGBge3J9DQphZGRtYXJnaW5zKGEpDQpgYGANCg0KQmnhu4N1IMSR4buTIGPhu5l0IGvhur90IGjhu6NwIDIgYmnhur9uOg0KDQpgYGB7cn0NCmxpYnJhcnkoZGF0YS50YWJsZSkNCmsgPC0gZGF0YS5mcmFtZShETCRHZW5kZXIsIERMJFRyYXZlbCwgREwkQ3VzdG9tZXIsIERMJENsYXNzLCBETCRTRiwgREwkQWdlLERMJERESU0sIERMJElTLCBJUywgR2VuZGVyKQ0KayB8PiBnZ3Bsb3QoYWVzKHg9R2VuZGVyLHk9YWZ0ZXJfc3RhdChjb3VudCkpKSArIGdlb21fYmFyKGZpbGw9ImJsdWUiKSArIGdlb21fdGV4dChhZXMobGFiZWwgPSBzY2FsZXM6OnBlcmNlbnQoYWZ0ZXJfc3RhdChjb3VudC9zdW0oY291bnQpKSkpLCBzdGF0ID0gImNvdW50IiwgY29sb3IgPSAicmVkIiwgdmp1c3QgPSAtIC41KSArIGZhY2V0X2dyaWQoLiB+SVMpICsgbGFicyh4ID0gIkdp4bubaSB0w61uaCIseSA9ICJT4buRIG5nxrDhu51pIikNCmBgYA0KDQpUaMO0bmcgcXVhIGLhuqNuZyB04bqnbiBz4buRLCB04bqnbiBzdeG6pXQgdHLDqm4gY+G7p2EgMiBiaeG6v24gU+G7kSDEkWnhu4NtIHbhu4EgbeG7qWMgxJHhu5kgaMOgaSBsw7JuZyB24buBIGThu4tjaCB24bulIHRyw6puIGNodXnhur9uIGJheSB2w6AgR2nhu5tpIHTDrW5oIHRhIHRo4bqleSBjw7MgOTY0NiBow6BuaCBraMOhY2ggY8OzIFPhu5EgxJFp4buDbSB24buBIG3hu6ljIMSR4buZIGjDoGkgbMOybmcgduG7gSBk4buLY2ggduG7pSB0csOqbiBjaHV54bq/biBiYXkgdGjhuqVwICh04bupYyBkxrDhu5tpIDMgxJFp4buDbSkgdHJvbmcgxJHDsyBjw7MgNTA3NiBuZ8aw4budaSBsw6AgbuG7rywgY2hp4bq/bSB04buJIGzhu4cgMTksNTQlIHThu5VuZyBz4buRIGjDoG5oIGtow6FjaCB2w6AgNDU3MCBow6BuaCBraMOhY2ggbMOgIG5hbSwgY2hp4bq/bSAxNyw1OSUgdOG7lW5nIGjDoG5oIGtow6FjaC4gQsOqbiBj4bqhbmggxJHDsyBjw7MgMTYzMjggaMOgbmgga2jDoWNoIGPDsyBT4buRIMSRaeG7g20gduG7gSBt4bupYyDEkeG7mSBow6BpIGzDsm5nIHbhu4EgZOG7i2NoIHbhu6UgdHLDqm4gY2h1eeG6v24gYmF5IGNhbyAodHLDqm4gMyDEkWnhurttKSB0cm9uZyDEkcOzIGPDsyA4MDk1IGjDoG5oIGtow6FjaCBsw6AgbuG7rywgY2hp4bq/bSAzMSwxNiUgdOG7lW5nIHPhu5EgaMOgbmgga2jDoWNoIHbDoCA4MjMzIG5nxrDhu51pIGzDoCBuYW0sIGNoaeG6v20gMzEsNjklIHThu5VuZyBz4buRIGjDoG5oIGtow6FjaC4gU+G7kSBow6BuaCBraMOhY2ggdHLDqm4gY2h1ecOqbiBiYXkgY8OzIFPhu5EgxJFp4buDbSB24buBIG3hu6ljIMSR4buZIGjDoGkgbMOybmcgduG7gSBk4buLY2ggduG7pSB0csOqbiBjaHV54bq/biBiYXkgdGjhuqVwIGNo4buJIHjhuqVwIHjhu4kga2hv4bqjbmcgMTAlIFPhu5EgaMOgbmgga2jDoWNoIHRyw6puIGNodXnDqm4gYmF5IGPDsyBN4bupYyDEkeG7mSBow6BpIGzDsm5nIHbhu4EgZOG7i2NoIHbhu6UgY2FvLiBRdWEgYmnhu4N1IMSR4buTIGPDsyB0aOG7gyB0aOG6pXkgxJHhu5FpIHbhu5tpIG5o4buvbmcgaMOgbmgga2jDoWNoIGPDsyBT4buRIMSRaeG7g20gduG7gSBt4bupYyDEkeG7mSBow6BpIGzDsm5nIHbhu4EgZOG7i2NoIHbhu6UgdHLDqm4gY2h1eeG6v24gYmF5IHRo4bqlcCB0aMOsIHThu7cgbOG7hyBu4buvIGNhbyBoxqFuIG5hbSBuaMawbmcgxJHhu5FpIHbhu5tpIG5o4buvbmcgaMOgbmgga2jDoWNoIGPDsyBT4buRIMSRaeG7g20gduG7gSBt4bupYyDEkeG7mSBow6BpIGzDsm5nIHbhu4EgZOG7i2NoIHbhu6UgdHLDqm4gY2h1eeG6v24gYmF5IGNhbyB0aMOsIHThu7cgbOG7hyBuYW0gbOG6oWkgbmhp4buBdSBoxqFuIG7hu68uDQoNCiMjIyMgMy40LjEuMyBS4bunaSBybyB0xrDGoW5nIMSR4buRaSAoUmlzayByYXRpbykNCg0KYGBge3J9DQpsaWJyYXJ5KGVwaXRvb2xzKQ0Kcmlza3JhdGlvKGEpDQpgYGANCg0KVGhlbyBr4bq/dCBxdeG6oyB0csOqbiB0YSB0aOG6pXkgdOG7iSBs4buHIHLhu6dpIHJvIHTGsMahbmcgxJHhu5FpIChyaXNrIHJhdGlvKSBj4bunYSBuaOG7r25nIGjDoG5oIGtow6FjaCBjw7MgU+G7kSDEkWnhu4NtIHbhu4EgbeG7qWMgxJHhu5kgaMOgaSBsw7JuZyB24buBIGThu4tjaCB24bulIHRyw6puIGNodXnhur9uIGJheSBjYW8gdGhlbyBnaeG7m2kgdMOtbmggbMOgIDEsMDQ2MjgxIHThu6ljIGzDoCB04buJIGzhu4cgbmjhu69uZyBow6BuaCBraMOhY2ggY8OzIFPhu5EgxJFp4buDbSB24buBIG3hu6ljIMSR4buZIGjDoGkgbMOybmcgduG7gSBk4buLY2ggduG7pSB0csOqbiBjaHV54bq/biBiYXkgY2FvIGzDoCBuYW0gZ+G6pXAgMSwwNDYyODEgbOG6p24gdOG7iSBs4buHIG5o4buvbmcgaMOgbmgga2jDoWNoIGPDsyBT4buRIMSRaeG7g20gduG7gSBt4bupYyDEkeG7mSBow6BpIGzDsm5nIHbhu4EgZOG7i2NoIHbhu6UgdHLDqm4gY2h1eeG6v24gYmF5IGNhbyBsw6AgbuG7ry4NCg0KS2hpIHRow6ptIHRoYW0gc+G7kSByZXYgPSDigJxj4oCdIHRow6wgc+G6vSB0aOG7sWMgaGnhu4duIHZp4buHYyDEkeG7lWkgY2jhu5cgMiBj4buZdCB0cm9uZyBi4bqjbmcgbmfhuqt1IG5oacOqbjoNCg0KYGBge3J9DQpyaXNrcmF0aW8oYSwgcmV2ID0gImMiKQ0KYGBgDQoNClRoZW8ga+G6v3QgcXXhuqMgdHLDqm4gdGEgdGjhuqV5IHThu4kgbOG7hyBy4bunaSBybyB0xrDGoW5nIMSR4buRaSAocmlzayByYXRpbykgY+G7p2Egbmjhu69uZyBow6BuaCBraMOhY2ggY8OzIFPhu5EgxJFp4buDbSB24buBIG3hu6ljIMSR4buZIGjDoGkgbMOybmcgduG7gSBk4buLY2ggduG7pSB0csOqbiBjaHV54bq/biBiYXkgdGjhuqVwIHRoZW8gZ2nhu5tpIHTDrW5oIGzDoCAwLDkyNjE5MzIgdOG7qWMgbMOgIHThu4kgbOG7hyBow6BuaCBraMOhY2ggY8OzIFPhu5EgxJFp4buDbSB24buBIG3hu6ljIMSR4buZIGjDoGkgbMOybmcgduG7gSBk4buLY2ggduG7pSB0csOqbiBjaHV54bq/biBiYXkgdGjhuqVwIGzDoCBuYW0gw610IGjGoW4gdsOgIHjhuqVwIHjhu4kgYuG6sW5nIHThu4kgbOG7hyBuaOG7r25nIGjDoG5oIGtow6FjaCBjw7MgU+G7kSDEkWnhu4NtIHbhu4EgbeG7qWMgxJHhu5kgaMOgaSBsw7JuZyB24buBIGThu4tjaCB24bulIHRyw6puIGNodXnhur9uIGJheSBjYW8gbMOgIG7hu68uDQoNCiMjIyMgMy40LjEuNCBU4bu3IGzhu4cgY2jDqm5oIGzhu4djaCAob2RkIHJhdGlvKQ0KDQpgYGB7cn0NCmVwaXRhYihhLCBtZXRob2QgPSAib2Rkc3JhdGlvIikNCmBgYA0KDQpUaGVvIGvhur90IHF14bqjIHRyw6puIHRhIHRo4bqleSB04buJIGzhu4cgY2jDqm5oIChvZGQgcmF0aW8pIGzDoCAxLDEyOTY1NyB04bupYyB04buJIGzhu4cgbmjhu69uZyBow6BuaCBraMOhY2ggY8OzIFPhu5EgxJFp4buDbSB24buBIG3hu6ljIMSR4buZIGjDoGkgbMOybmcgduG7gSBk4buLY2ggduG7pSB0csOqbiBjaHV54bq/biBiYXkgY2FvL25o4buvbmcgaMOgbmgga2jDoWNoIGPDsyBT4buRIMSRaeG7g20gduG7gSBt4bupYyDEkeG7mSBow6BpIGzDsm5nIHbhu4EgZOG7i2NoIHbhu6UgdHLDqm4gY2h1eeG6v24gYmF5IHRo4bqlcCDhu58gZ2nhu5tpIHTDrW5oIG5hbSBs4bubbiBoxqFuIGtob+G6o25nIDEyLDk3JSBzbyB24bubaSB04buJIGzhu4cgbmjhu69uZyBow6BuaCBraMOhY2ggY8OzIFPhu5EgxJFp4buDbSB24buBIG3hu6ljIMSR4buZIGjDoGkgbMOybmcgduG7gSBk4buLY2ggduG7pSB0csOqbiBjaHV54bq/biBiYXkgY2FvL25o4buvbmcgaMOgbmgga2jDoWNoIGPDsyBT4buRIMSRaeG7g20gduG7gSBt4bupYyDEkeG7mSBow6BpIGzDsm5nIHbhu4EgZOG7i2NoIHbhu6UgdHLDqm4gY2h1eeG6v24gYmF5IHRo4bqlcCDhu58gZ2nhu5tpIHTDrW5oIG7hu68uDQoNCktoaSB0aMOqbSB0aGFtIHPhu5EgcmV2ID0g4oCccuKAnSB0aMOsIHPhur0gdGjhu7FjIGhp4buHbiB2aeG7h2MgxJHhu5VpIGNo4buXIDIgZMOybmcgdHJvbmcgYuG6o25nIG5n4bqrdSBuaGnDqm46DQoNCmBgYHtyfQ0KZXBpdGFiKGEsIG1ldGhvZCA9ICJvZGRzcmF0aW8iLCByZXYgPSAiciIpDQpgYGANCg0KVGhlbyBr4bq/dCBxdeG6oyB0csOqbiB0YSB0aOG6pXkgdOG7iSBs4buHIGNow6puaCAob2RkIHJhdGlvKSBsw6AgMCw4ODUyMjQzIHThu6ljIHThu4kgbOG7hyBuaOG7r25nIGjDoG5oIGtow6FjaCBjw7MgU+G7kSDEkWnhu4NtIHbhu4EgbeG7qWMgxJHhu5kgaMOgaSBsw7JuZyB24buBIGThu4tjaCB24bulIHRyw6puIGNodXnhur9uIGJheSBjYW8vbmjhu69uZyBow6BuaCBraMOhY2ggY8OzIFPhu5EgxJFp4buDbSB24buBIG3hu6ljIMSR4buZIGjDoGkgbMOybmcgduG7gSBk4buLY2ggduG7pSB0csOqbiBjaHV54bq/biBiYXkgdGjhuqVwIOG7nyBnaeG7m2kgdMOtbmggbuG7ryBjaOG7iSBi4bqxbmcga2hv4bqjbmcgODgsNTIlIHThu4kgbOG7hyBuaOG7r25nIGjDoG5oIGtow6FjaCBjw7MgU+G7kSDEkWnhu4NtIHbhu4EgbeG7qWMgxJHhu5kgaMOgaSBsw7JuZyB24buBIGThu4tjaCB24bulIHRyw6puIGNodXnhur9uIGJheSBjYW8vbmjhu69uZyBow6BuaCBraMOhY2ggY8OzIFPhu5EgxJFp4buDbSB24buBIG3hu6ljIMSR4buZIGjDoGkgbMOybmcgduG7gSBk4buLY2ggduG7pSB0csOqbiBjaHV54bq/biBiYXkgdGjhuqVwIOG7nyBnaeG7m2kgdMOtbmggbmFtLg0KDQojIyMjIDMuNC4xLjUgVGjhu5FuZyBrw6ogc3V5IGRp4buFbg0KDQpLaeG7g20gxJHhu4tuaCB0w61uaCDEkeG7mWMgbOG6rXAgY2hvIDIgYmnhur9uIChJUykgdsOgIChHZW5kZXIpOg0KDQpQaMawxqFuZyBwaMOhcCBjaGkgYsOsbmggcGjGsMahbmc6IEdp4bqjIHRodXnhur90IEhvOiBJUyB2w6AgR2VuZGVyIMSR4buZYyBs4bqtcA0KDQpgYGB7cn0NCmEgPC0gdGFibGUoREwkR2VuZGVyLCBJUyk7YQ0KYGBgDQoNCmBgYHtyfQ0KY2hpc3EudGVzdChhKQ0KYGBgDQpL4bq/dCBxdeG6oyBraeG7g20gxJHhu4tuaCB0csOqbiBjaG8gdGjhuqV5IGdpw6EgdHLhu4sgdOG7m2kgaOG6oW4gUF92YWx1ZSA9IDIuMjM5ZS0wNiA8IDUlIHbDrCB24bqteSBjaMawYSBjw7MgxJHhu6cgY8ahIHPhu58gxJHhu4MgdGjhu6thIG5o4bqtbiBnaeG6oyB0aHV54bq/dCBIbywgbsOzaSBjw6FjaCBraMOhYyBnaeG7r2EgU+G7kSDEkWnhu4NtIHbhu4EgbeG7qWMgxJHhu5kgaMOgaSBsw7JuZyB24buBIGThu4tjaCB24bulIHRyw6puIGNodXnhur9uIGJheSAoSVMpIHbDoCBnaeG7m2kgdMOtbmggKEdlbmRlcikgY8OzIGxpw6puIHF1YW4gdOG7m2kgbmhhdS4NCg0KIyMjIDMuNC4yIFRo4buRbmcga8OqIG3DtCB04bqjIGJp4bq/biBwaOG7pSB0aHXhu5ljOiBJUyB24bubaSBiaeG6v24gxJHhu5ljIGzhuq1wIMSR4buZIHR14buVaSAoQWdlKQ0KDQojIyMjIDMuNC4yLjEgTcOjIGhvw6EgYmnhur9uIMSR4buZIHR14buVaSAoQWdlKSB04burIMSR4buLbmggbMaw4bujbmcgc2FuZyDEkeG7i25oIHTDrW5oIA0KDQpW4bubaSBk4buvIGxp4buHdSBn4buRYywgYmnhur9uIMSR4buZIHR14buVaSAoQWdlKSBsw6AgYmnhur9uIMSR4buLbmggbMaw4bujbmcgbmjhuq1uIGPDoWMgZ2nDoSB0cuG7iyB04burIDcgxJHhur9uIDg1IHR14buVaS4gVMOhYyBnaeG6oyDEkeG6t3QgcXV5IMaw4bubYyB24buBIHZp4buHYyBtw6MgaG/DoSBiaeG6v24gKGFnZSkgbmjGsCBzYXU6IFR14buVaSBuaMOzbSB0cnVuZyBuacOqbiAodHJ1bmduaWVuKTogxJHhu5kgdHXhu5VpIHThu6sgdHLDqm4gNDAgdHXhu5VpIMSR4bq/biA4NSB0deG7lWkuIFR14buVaSBuaMOzbSB0aGFuaCBuacOqbiAodGhhbmhuaWVuKTogxJHhu5kgdHXhu5VpIHThu6sgdHLDqm4gNyB0deG7lWkgxJHhur9uIDQwIHR14buVaS4NCg0KYGBge3J9DQpBZ2UgPC0gY3V0KERMJEFnZSwgYnJlYWtzID0gYyg3LDQwLDg1KSwgbGFiZWxzPWMoInRoYW5obmllbiIsInRydW5nbmllbiIpKQ0KdGFibGUoQWdlKQ0KYGBgDQoNCiMjIyMgMy40LjIuMiBC4bqjbmcgdOG6p24gc+G7kSwgdOG6p24gc3XhuqV0IHbDoCBiaeG7g3UgxJHhu5MNCg0KQuG6o25nIHThuqduIHPhu5E6DQoNCmBgYHtyfQ0KYiA8LSB0YWJsZShBZ2UsIElTKTsgYg0KYGBgDQoNCkLhuqNuZyB04bqnbiBzdeG6pXQ6DQoNCmBgYHtyfQ0KYjEgPC0gcHJvcC50YWJsZShiKTsgYjENCmBgYA0KDQpQaMOibiBwaOG7kWkgYmnDqm46DQoNCmBgYHtyfQ0KYWRkbWFyZ2lucyhiKQ0KYGBgDQoNCkJp4buDdSDEkeG7kyBj4buZdCBr4bq/dCBo4bujcCAyIGJp4bq/bjoNCg0KYGBge3J9DQptIDwtIGRhdGEuZnJhbWUoREwkR2VuZGVyLCBETCRUcmF2ZWwsIERMJEN1c3RvbWVyLCBETCRDbGFzcywgREwkU0YsIERMJEFnZSwgREwkRERJTSwgREwkSVMsIElTLCBBZ2UpDQptIHw+IGdncGxvdChhZXMoeD1BZ2UseT1hZnRlcl9zdGF0KGNvdW50KSkpICsgZ2VvbV9iYXIoZmlsbD0iZ3JlZW4iKSArIGdlb21fdGV4dChhZXMobGFiZWwgPSBzY2FsZXM6OnBlcmNlbnQoYWZ0ZXJfc3RhdChjb3VudC9zdW0oY291bnQpKSkpLCBzdGF0ID0gImNvdW50IiwgY29sb3IgPSAiYmx1ZSIsIHZqdXN0ID0gLSAuNSkgKyBmYWNldF9ncmlkKC4gfklTKSArIGxhYnMoeCA9ICLEkOG7mSB0deG7lWkiLHkgPSAiU+G7kSBuZ8aw4budaSIpDQpgYGANCg0KVGjDtG5nIHF1YSBi4bqjbmcgdOG6p24gc+G7kSwgdOG6p24gc3XhuqV0IHRyw6puIGPhu6dhIDIgYmnhur9uIFPhu5EgxJFp4buDbSB24buBIG3hu6ljIMSR4buZIGjDoGkgbMOybmcgduG7gSBk4buLY2ggduG7pSB0csOqbiBjaHV54bq/biBiYXkgKElTKSB2w6AgxJHhu5kgdHXhu5VpIHRhIHRo4bqleSBjw7MgOTYwOCBow6BuaCBraMOhY2ggY8OzIFPhu5EgxJFp4buDbSB24buBIG3hu6ljIMSR4buZIGjDoGkgbMOybmcgduG7gSBk4buLY2ggduG7pSB0csOqbiBjaHV54bq/biBiYXkgdGjhuqVwICh04bupYyBkxrDhu5tpIDMgxJFp4buDbSkgdHJvbmcgxJHDsyBjw7MgNDczMiBow6BuaCBraMOhY2ggbmjDs20gdHXhu5VpIHRoYW5oIG5pw6puLCBjaGnhur9tIHThu4kgbOG7hyAxOCwzJSB04buVbmcgc+G7kSBow6BuaCBraMOhY2ggdsOgIDQ4NzYgaMOgbmgga2jDoWNoIG5ow7NtIHR14buVaSB0cnVuZyBuacOqbiwgY2hp4bq/bSB04buJIGzhu4cgMTgsODYlIHThu5VuZyBz4buRIGjDoG5oIGtow6FjaC4gQsOqbiBj4bqhbmggxJHDsyBjw7MgMTYyNDMgaMOgbmgga2jDoWNoIGPDsyBT4buRIMSRaeG7g20gduG7gSBt4bupYyDEkeG7mSBow6BpIGzDsm5nIHbhu4EgZOG7i2NoIHbhu6UgdHLDqm4gY2h1eeG6v24gYmF5IGNhbyAodHLDqm4gMyDEkWnhu4NtKSB0cm9uZyDEkcOzIGPDsyA4NDU3IGjDoG5oIGtow6FjaCBuaMOzbSB0deG7lWkgdGhhbmggbmnDqm4sIGNoaeG6v20gMzIsNzElIHThu5VuZyBz4buRIGjDoG5oIGtow6FjaCB2w6AgNzc4NiBuZ8aw4budaSBuaMOzbSB0deG7lWkgdHJ1bmcgbmnDqm4sIGNoaeG6v20gMzAsMTIlIHThu5VuZyBz4buRIGjDoG5oIGtow6FjaC4gUXVhIGJp4buDdSDEkeG7kyBjw7MgdGjhu4MgdGjhuqV5IMSR4buRaSB24bubaSBuaOG7r25nIGjDoG5oIGtow6FjaCBjw7MgU+G7kSDEkWnhu4NtIHbhu4EgbeG7qWMgxJHhu5kgaMOgaSBsw7JuZyB24buBIGThu4tjaCB24bulIHRyw6puIGNodXnhur9uIGJheSB0aOG6pXAgdGjDrCB04bu3IGzhu4cgbmfGsOG7nWkgdGh14buZYyBuaMOzbSB0deG7lWkgdGhhbmggbmnDqm4gw610IGjGoW4gbmjhu69uZyBuZ8aw4budaSB0aHXhu5ljIG5ow7NtIHR14buVaSB0cnVuZyBuacOqbiBuaMawbmcgxJHhu5FpIHbhu5tpIG5o4buvbmcgaMOgbmgga2jDoWNoIGPDsyBT4buRIMSRaeG7g20gduG7gSBt4bupYyDEkeG7mSBow6BpIGzDsm5nIHbhu4EgZOG7i2NoIHbhu6UgdHLDqm4gY2h1eeG6v24gYmF5IGNhbyB0aMOsIHThu7cgbOG7hyBuaMOzbSB0deG7lWkgdGhhbmggbmnDqm4gbOG6oWkgY2FvIGjGoW4gbmjDs20gdHXhu5VpIHRydW5nIG5pw6puLCDEkeG7kWkgduG7m2kgdOG7q25nIG3hu6ljIMSR4buZIGjDoGkgbMOybmcgduG7gSBk4buLY2ggduG7pSB0csOqbiBjaHV5w6puIGJheSB0aMOsIG3hu6ljIMSR4buZIGNow6puaCBs4buHY2ggZ2nhu69hIDIgbmjDs20gdHXhu5NpIG7DoHkga2jDtG5nIHF1w6EgbOG7m24uDQoNCiMjIyMgMy40LjIuMyBS4bunaSBybyB0xrDGoW5nIMSR4buRaSAoUmlzayByYXRpbykNCg0KYGBge3J9DQplcGl0YWIoYiwgbWV0aG9kID0gInJpc2tyYXRpbyIpDQpgYGANCg0KVGhlbyBr4bq/dCBxdeG6oyB0csOqbiB0YSB0aOG6pXkgdOG7iSBs4buHIHLhu6dpIHJvIHTGsMahbmcgxJHhu5FpIChyaXNrIHJhdGlvKSBj4bunYSBow6BuaCBraMOhY2ggY8OzIFPhu5EgxJFp4buDbSB24buBIG3hu6ljIMSR4buZIGjDoGkgbMOybmcgduG7gSBk4buLY2ggduG7pSB0csOqbiBjaHV54bq/biBiYXkgY2FvIHRoZW8gxJHhu5kgdHXhu5VpIGzDoCAwLDk1ODk3NTggdOG7qWMgbMOgIHThu4kgbOG7hyBuaOG7r25nIGjDoG5oIGtow6FjaCBjw7MgU+G7kSDEkWnhu4NtIHbhu4EgbeG7qWMgxJHhu5kgaMOgaSBsw7JuZyB24buBIGThu4tjaCB24bulIHRyw6puIGNodXnhur9uIGJheSBjYW8gdHJvbmcgbmjDs20gdHXhu5VpIHRydW5nIG5pw6puIMOtdCBoxqFuIHbDoCB44bqlcCB44buJIGLhurFuZyB04buJIGzhu4cgbmjhu69uZyBow6BuaCBraMOhY2ggY8OzIFPhu5EgxJFp4buDbSB24buBIG3hu6ljIMSR4buZIGjDoGkgbMOybmcgduG7gSBk4buLY2ggduG7pSB0csOqbiBjaHV54bq/biBiYXkgY2FvIHRyb25nIG5ow7NtIHR14buVaSB0aGFuaCBuacOqbi4NCg0KS2hpIHRow6ptIHRoYW0gc+G7kSByZXYgPSDigJxj4oCdIHRow6wgc+G6vSB0aOG7sWMgaGnhu4duIHZp4buHYyDEkeG7lWkgY2jhu5cgMiBj4buZdCB0cm9uZyBi4bqjbmcgbmfhuqt1IG5oacOqbjoNCg0KYGBge3J9DQplcGl0YWIoYiwgbWV0aG9kID0gInJpc2tyYXRpbyIsIHJldiA9ICJjIikNCmBgYA0KDQpUaGVvIGvhur90IHF14bqjIHRyw6puIHRhIHRo4bqleSB04buJIGzhu4cgcuG7p2kgcm8gdMawxqFuZyDEkeG7kWkgKHJpc2sgcmF0aW8pIGPhu6dhIG5o4buvbmcgaMOgbmgga2jDoWNoIGPDsyBT4buRIMSRaeG7g20gduG7gSBt4bupYyDEkeG7mSBow6BpIGzDsm5nIHbhu4EgZOG7i2NoIHbhu6UgdHLDqm4gY2h1eeG6v24gYmF5IHRo4bqlcCB0aGVvIMSR4buZIHR14buVaSBsw6AgMSwwNzMzMTggdOG7qWMgbMOgIHThu4kgbOG7hyBuaOG7r25nIGjDoG5oIGtow6FjaCBjw7MgU+G7kSDEkWnhu4NtIHbhu4EgbeG7qWMgxJHhu5kgaMOgaSBsw7JuZyB24buBIGThu4tjaCB24bulIHRyw6puIGNodXnhur9uIGJheSB0aOG6pXAgdHJvbmcgbmjDs20gdHXhu5VpIHRydW5nIG5pw6puIGfhuqVwIDEsMDczMzE4IHThu4kgbOG7hyBuaOG7r25nIGjDoG5oIGtow6FjaCBjw7MgbeG7qWMgxJHhu5kgaMOgaSBsw7JuZyB24buBIGThu4tjaCB24bulIHRyw6puIGNodXnhur9uIGJheSB0aOG6pXAgdHJvbmcgbmjDs20gdHXhu5VpIHRoYW5oIG5pw6puLg0KDQojIyMjIDMuNC4yLjQgVOG7tyBs4buHIGNow6puaCBs4buHY2ggKG9kZCByYXRpbykNCg0KYGBge3J9DQplcGl0YWIoYiwgbWV0aG9kID0gIm9kZHNyYXRpbyIpDQpgYGANCg0KVGhlbyBr4bq/dCBxdeG6oyB0csOqbiB0YSB0aOG6pXkgdOG7iSBs4buHIGNow6puaCAob2RkIHJhdGlvKSBsw6AgMC44OTM0NjgyIHThu6ljIHThu4kgbOG7hyBuaOG7r25nIGjDoG5oIGtow6FjaCBjw7MgU+G7kSDEkWnhu4NtIHbhu4EgbeG7qWMgxJHhu5kgaMOgaSBsw7JuZyB24buBIGThu4tjaCB24bulIHRyw6puIGNodXnhur9uIGJheSBjYW8vbmjhu69uZyBow6BuaCBraMOhY2ggY8OzIFPhu5EgxJFp4buDbSB24buBIG3hu6ljIMSR4buZIGjDoGkgbMOybmcgduG7gSBk4buLY2ggduG7pSB0csOqbiBjaHV54bq/biBiYXkgdGjhuqVwIOG7nyBuaMOzbSB0deG7j2kgdHJ1bmcgbmnDqm4gYuG6sW5nIGtob+G6o25nIDg5LDM0JSBzbyB24bubaSB04buJIGzhu4cgU+G7kSDEkWnhu4NtIHbhu4EgbeG7qWMgxJHhu5kgaMOgaSBsw7JuZyB24buBIGThu4tjaCB24bulIHRyw6puIGNodXnhur9uIGJheSBjYW8vbmjhu69uZyBow6BuaCBraMOhY2ggY8OzIFPhu5EgxJFp4buDbSB24buBIG3hu6ljIMSR4buZIGjDoGkgbMOybmcgduG7gSBk4buLY2ggduG7pSB0csOqbiBjaHV54bq/biBiYXkgdGjhuqVwIOG7nyBuaMOzbSB0deG7lWkgdGhhbmggbmnDqm4uDQoNCktoaSB0aMOqbSB0aGFtIHPhu5EgcmV2ID0g4oCccuKAnSB0aMOsIHPhur0gdGjhu7FjIGhp4buHbiB2aeG7h2MgxJHhu5VpIGNo4buXIDIgZMOybmcgdHJvbmcgYuG6o25nIG5n4bqrdSBuaGnDqm46DQoNCmBgYHtyfQ0KZXBpdGFiKGIsIG1ldGhvZCA9ICJvZGRzcmF0aW8iLCByZXYgPSAiciIpDQpgYGANCg0KVGhlbyBr4bq/dCBxdeG6oyB0csOqbiB0YSB0aOG6pXkgdOG7iSBs4buHIGNow6puaCAob2RkIHJhdGlvKSBsw6AgMSwxMTkyMzQgdOG7qWMgdOG7iSBs4buHIG5o4buvbmcgaMOgbmgga2jDoWNoIGPDsyBT4buRIMSRaeG7g20gduG7gSBt4bupYyDEkeG7mSBow6BpIGzDsm5nIHbhu4EgZOG7i2NoIHbhu6UgdHLDqm4gY2h1eeG6v24gYmF5IGNhby8gbmjhu69uZyBow6BuaCBraMOhY2ggY8OzIFPhu5EgxJFp4buDbSB24buBIG3hu6ljIMSR4buZIGjDoGkgbMOybmcgduG7gSBk4buLY2ggduG7pSB0csOqbiBjaHV54bq/biBiYXkgdGjhuqVwIOG7nyBuaMOzbSB0deG7lWkgdGhhbmggbmnDqm4gbOG7m24gaMahbiBraG/huqNuZyAxMSw5MiUgc28gduG7m2kgdOG7iSBs4buHIFPhu5EgxJFp4buDbSB24buBIG3hu6ljIMSR4buZIGjDoGkgbMOybmcgduG7gSBk4buLY2ggduG7pSB0csOqbiBjaHV54bq/biBiYXkgY2FvLyBuaOG7r25nIGjDoG5oIGtow6FjaCBjw7MgU+G7kSDEkWnhu4NtIHbhu4EgbeG7qWMgxJHhu5kgaMOgaSBsw7JuZyB24buBIGThu4tjaCB24bulIHRyw6puIGNodXnhur9uIGJheSB0aOG6pXAg4bufIG5ow7NtIHR14buVaSB0cnVuZyBuacOqbi4NCg0KIyMjIyAzLjQuMi41IFRo4buRbmcga8OqIHN1eSBkaeG7hW4NCg0KS2nhu4NtIMSR4buLbmggdMOtbmggxJHhu5ljIGzhuq1wIGNobyAyIGJp4bq/biAoSVMpIHbDoCAoQWdlKToNCg0KUGjGsMahbmcgcGjDoXAgY2hpIGLDrG5oIHBoxrDGoW5nOiBHaeG6oyB0aHV54bq/dCBIbzogSVMgdsOgIEFnZSDEkeG7mWMgbOG6rXANCg0KYGBge3J9DQpiIDwtIHRhYmxlKEFnZSwgSVMpO2INCmBgYA0KDQpgYGB7cn0NCmNoaXNxLnRlc3QoYikNCmBgYA0KS+G6v3QgcXXhuqMga2nhu4NtIMSR4buLbmggdHLDqm4gY2hvIHRo4bqleSBnacOhIHRy4buLIHThu5tpIGjhuqFuIFBfdmFsdWUgPSAxLjI4N2UtMDUgPCA1JSB2w6wgduG6rXkgY2jGsGEgY8OzIGPGoSBz4bufIMSR4buDIHRo4burYSBuaOG6rW4gZ2nhuqMgdGh1eeG6v3QgSG8sIG7Ds2kgY8OhY2gga2jDoWMgZ2nhu69hIFPhu5EgxJFp4buDbSB24buBIG3hu6ljIMSR4buZIGjDoGkgbMOybmcgduG7gSBk4buLY2ggduG7pSB0csOqbiBjaHV54bq/biBiYXkgdsOgIMSR4buZIHR14buVaSAoQWdlKSBjw7MgbGnDqm4gcXVhbiB04bubaSBuaGF1Lg0KDQojIyMgMy40LjMgVGjhu5FuZyBrw6ogbcO0IHThuqMgYmnhur9uIHBo4bulIHRodeG7mWM6IElTICB24bubaSBiaeG6v24gxJHhu5ljIGzhuq1wIFPhu5EgcGjDunQgYuG7iyB0cuG7hSBraGkga2jhu59pIGjDoG5oIChERElNKQ0KDQojIyMjIDMuNC4zLjEgTcOjIGhvw6EgYmnhur9uIFPhu5EgcGjDunQgYuG7iyB0cuG7hSBraGkga2jhu59pIGjDoG5oIChERElNKSB04burIMSR4buLbmggbMaw4bujbmcgc2FuZyDEkeG7i25oIHTDrW5oIA0KDQpW4bubaSBk4buvIGxp4buHdSBn4buRYywgYmnhur9uIFPhu5EgcGjDunQgYuG7iyB0cuG7hSBraGkga2jhu59pIGjDoG5oIChERElNKSBsw6AgYmnhur9uIMSR4buLbmggbMaw4bujbmcgbmjhuq1uIGPDoWMgZ2nDoSB0cuG7iyB04burIDAgxJHhur9uIDExMjggcGjDunQuIFTDoWMgZ2nhuqMgxJHhurd0IHF1eSDGsOG7m2MgduG7gSB2aeG7h2MgbcOjIGhvw6EgYmnhur9uIChERElNKSBuaMawIHNhdTogTmjDs20gbmjhu48gKG5obyk6IHPhu5EgcGjDunQgdHLhu4UgdOG7qyB0csOqbiAwIHBow7p0IMSR4bq/biAzMDAgcGjDunQuIE5ow7NtIHRy4buFIChsb24pOiBz4buRIHBow7p0IHRy4buFIHThu6sgdHLDqm4gMzAwIHBow7p0IMSR4bq/biAxMTI4IHBow7p0Lg0KDQpgYGB7cn0NCkRESU0gPC0gY3V0KERMJERESU0sIGJyZWFrcyA9IGMoMCwzMDAsMTEyOCksIGxhYmVscz1jKCJuaG8iLCJsb24iKSkNCnRhYmxlKERESU0pDQpgYGANCg0KIyMjIyAzLjQuMy4yIELhuqNuZyB04bqnbiBz4buRLCB04bqnbiBzdeG6pXQgdsOgIGJp4buDdSDEkeG7kw0KDQpC4bqjbmcgdOG6p24gc+G7kToNCg0KYGBge3J9DQpkIDwtIHRhYmxlKERESU0sIElTKTsgZA0KYGBgDQoNCkLhuqNuZyB04bqnbiBzdeG6pXQ6DQoNCmBgYHtyfQ0KZDEgPC0gcHJvcC50YWJsZShkKTsgZDENCmBgYA0KDQpQaMOibiBwaOG7kWkgYmnDqm46DQoNCmBgYHtyfQ0KYWRkbWFyZ2lucyhkKQ0KYGBgDQoNCkJp4buDdSDEkeG7kyBj4buZdCBr4bq/dCBo4bujcCAyIGJp4bq/bjoNCg0KYGBge3J9DQpuIDwtIGRhdGEuZnJhbWUoREwkQWdlLCBETCRHZW5kZXIsIERMJFRyYXZlbCwgREwkQ3VzdG9tZXIsIERMJENsYXNzLCBETCRTRiwgREwkRERJTSwgREwkSVMsIElTLCBERElNKQ0KbSB8PiBnZ3Bsb3QoYWVzKHg9RERJTSx5PWFmdGVyX3N0YXQoY291bnQpKSkgKyBnZW9tX2JhcihmaWxsPSJwaW5rIikgKyBnZW9tX3RleHQoYWVzKGxhYmVsID0gc2NhbGVzOjpwZXJjZW50KGFmdGVyX3N0YXQoY291bnQvc3VtKGNvdW50KSkpKSwgc3RhdCA9ICJjb3VudCIsIGNvbG9yID0gImJsdWUiLCB2anVzdCA9IC0gLjUpICsgZmFjZXRfZ3JpZCguIH5JUykgKyBsYWJzKHggPSAiU+G7kSBwaMO6dCBi4buLIHRy4buFIGtoaSBraOG7n2kgaMOgbmgiLHkgPSAiU+G7kSBuZ8aw4budaSIpDQpgYGANCg0KVGjDtG5nIHF1YSBi4bqjbmcgdOG6p24gc+G7kSwgdOG6p24gc3XhuqV0IHRyw6puIGPhu6dhIDIgYmnhur9uIFPhu5EgxJFp4buDbSB24buBIG3hu6ljIMSR4buZIGjDoGkgbMOybmcgduG7gSBk4buLY2ggduG7pSB0csOqbiBjaHV54bq/biBiYXkgdsOgIFPhu5EgcGjDunQgYuG7iyB0cuG7hSBraGkga2jhu59pIGjDoG5oIChERElNKSB0YSB0aOG6pXkgY8OzIDQzNzIgaMOgbmgga2jDoWNoIGPDsyBT4buRIMSRaeG7g20gduG7gSBt4bupYyDEkeG7mSBow6BpIGzDsm5nIHbhu4EgZOG7i2NoIHbhu6UgdGjhuqVwICh04bupYyBkxrDhu5tpIDMgxJFp4buDbSkgdHJvbmcgxJHDsyBjw7MgNDM0MiBow6BuaCBraMOhY2ggY8OzIFPhu5EgxJFp4buDbSB24buBIG3hu6ljIMSR4buZIGjDoGkgbMOybmcgduG7gSBk4buLY2ggduG7pSB0aHXhu5ljIG5ow7NtIG5o4buPLCBjaGnhur9tIHThu4kgbOG7hyAzOCw0NyUgdOG7lW5nIHPhu5EgaMOgbmgga2jDoWNoIHbDoCAzMCBow6BuaCBraMOhY2ggbmjDs20gbOG7m24sIGNoaeG6v20gdOG7iSBs4buHIDAsMjclIHThu5VuZyBz4buRIGjDoG5oIGtow6FjaC4gQsOqbiBj4bqhbmggxJHDsyBjw7MgNjkxNSBow6BuaCBraMOhY2ggY8OzIFPhu5EgxJFp4buDbSB24buBIG3hu6ljIMSR4buZIGjDoGkgbMOybmcgduG7gSBk4buLY2ggduG7pSDhu58gbeG7qWMgY2FvICh0csOqbiAzIMSRaeG7g20pIHRyb25nIMSRw7MgY8OzIDY4OTAgaMOgbmgga2jDoWNoIG5ow7NtIG5o4buPLCBjaGnhur9tIDYxLDA0JSB04buVbmcgc+G7kSBow6BuaCBraMOhY2ggdsOgIDI1IG5nxrDhu51pIG5ow7NtIHRy4buFLCBjaGnhur9tIDAsMjIlIHThu5VuZyBz4buRIGjDoG5oIGtow6FjaC4gVHJvbmcgdOG7lW5nIHPhu5EgaMOgbmgga2jDoWNoIHRyw6puIGNodXnhur9uIGJheSB0aMOsIHThu4kgbOG7hyBuaOG7r25nIGjDoG5oIGtow6FjaCBjw7Mgc+G7kSBwaMO6dCBi4buLIHRy4buFIGtoaSBraOG7n2kgaMOgbmggdGh14buZYyBuaMOzbSBuaOG7jyBs4bubbiBoxqFuIHLhuqV0IG5oaeG7gXUgbOG6p24gc28gduG7m2kgbmjhu69uZyBow6BuaCBraMOhY2ggY8OzIHPhu5EgcGjDunQgYuG7iyB0cuG7hSBraGkga2jhu59pIGjDoG5oIHRodeG7mWMgbmjDs20gbOG7m24uIFF1YSBiaeG7g3UgxJHhu5MgY8OzIHRo4buDIHRo4bqleSDEkeG7kWkgduG7m2kgbmjhu69uZyBow6BuaCBraMOhY2ggY8OzIHPhu5EgxJFp4buDbSB24buBIE3hu6ljIMSR4buZIGjDoGkgbMOybmcgduG7gSBk4buLY2ggduG7pSBj4bqjIGNhbyB2w6AgdGjhuqVwIHRow6wgdOG7tyBs4buHIG5o4buvbmcgaMOgbmgga2jDoWNoIGPDsyBz4buRIHBow7p0IGLhu4sgdHLhu4Uga2hpIGto4bufaSBow6BuaCB0aHXhu5ljIG5ow7NtIG5o4buPIMSR4buBdSBuaGnhu4F1IGjGoW4gbmjhu69uZyBow6BuaCBraMOhY2ggY8OzIHPhu5EgcGjDunQgYuG7iyB0cuG7hSBraGkga2jhu59pIGjDoG5oIHRodeG7mWMgbmjDs20gbOG7m24gLCDEkeG7kWkgduG7m2kgdOG7q25nIG3hu6ljIMSR4buZIGjDoGkgbMOybmcgduG7gSBk4buLY2ggduG7pSB0csOqbiBjaHV5w6puIGJheSB0aMOsIG3hu6ljIMSR4buZIGNow6puaCBs4buHY2ggZ2nhu69hIDIgbmjDs20gbsOgeSBxdcOhIGzhu5tuLg0KDQojIyMjIDMuNC4zLjMgUuG7p2kgcm8gdMawxqFuZyDEkeG7kWkgKFJpc2sgcmF0aW8pDQoNCmBgYHtyfQ0KZXBpdGFiKGQsIG1ldGhvZCA9ICJyaXNrcmF0aW8iKQ0KYGBgDQoNClRoZW8ga+G6v3QgcXXhuqMgdHLDqm4gdGEgdGjhuqV5IHThu4kgbOG7hyBy4bunaSBybyB0xrDGoW5nIMSR4buRaSAocmlzayByYXRpbykgY+G7p2EgaMOgbmgga2jDoWNoIGPDsyBz4buRIMSRaeG7g20gduG7gSBN4bupYyDEkeG7mSBow6BpIGzDsm5nIHbhu4EgZOG7i2NoIHbhu6UgY2FvIHRoZW8gU+G7kSBwaMO6dCBi4buLIHRy4buFIGtoaSBraOG7n2kgaMOgbmggbMOgIDAsNzQwOTk0OSB04bupYyBsw6AgdOG7iSBs4buHIG5o4buvbmcgaMOgbmgga2jDoWNoIGPDsyBz4buRIMSRaeG7g20gduG7gSBN4bupYyDEkeG7mSBow6BpIGzDsm5nIHbhu4EgZOG7i2NoIHbhu6UgY2FvIHRyb25nIG5ow7NtIFPhu5EgcGjDunQgYuG7iyB0cuG7hSBraGkga2jhu59pIGjDoG5oIGzhu5tuIGNo4buJIGLhurFuZyA3NCwwOSUgdOG7iSBs4buHIG5o4buvbmcgaMOgbmgga2jDoWNoIGPDsyBz4buRIMSRaeG7g20gduG7gSBN4bupYyDEkeG7mSBow6BpIGzDsm5nIHbhu4EgZOG7i2NoIHbhu6UgY2FvIHRyb25nIG5ow7NtIFPhu5EgcGjDunQgYuG7iyB0cuG7hSBraGkga2jhu59pIGjDoG5oIG5o4buPLg0KDQpLaGkgdGjDqm0gdGhhbSBz4buRIHJldiA9IOKAnGPigJ0gdGjDrCBz4bq9IHRo4buxYyBoaeG7h24gdmnhu4djIMSR4buVaSBjaOG7lyAyIGPhu5l0IHRyb25nIGLhuqNuZyBuZ+G6q3Ugbmhpw6puOg0KDQpgYGB7cn0NCmVwaXRhYihkLCBtZXRob2QgPSAicmlza3JhdGlvIiwgcmV2ID0gImMiKQ0KYGBgDQoNClRoZW8ga+G6v3QgcXXhuqMgdHLDqm4gdGEgdGjhuqV5IHThu4kgbOG7hyBy4bunaSBybyB0xrDGoW5nIMSR4buRaSAocmlzayByYXRpbykgY+G7p2Egbmjhu69uZyBow6BuaCBraMOhY2ggY8OzIHPhu5EgxJFp4buDbSB24buBIE3hu6ljIMSR4buZIGjDoGkgbMOybmcgduG7gSBk4buLY2ggduG7pSB0aOG6pXAgdGhlbyBT4buRIHBow7p0IGLhu4sgdHLhu4Uga2hpIGto4bufaSBow6BuaCBsw6AgMSw0MTA5OTYgdOG7qWMgbMOgIHThu4kgbOG7hyBuaOG7r25nIGjDoG5oIGtow6FjaCBjw7Mgc+G7kSDEkWnhu4NtIHbhu4EgTeG7qWMgxJHhu5kgaMOgaSBsw7JuZyB24buBIGThu4tjaCB24bulIHRo4bqlcCB0cm9uZyBuaMOzbSBT4buRIHBow7p0IGLhu4sgdHLhu4Uga2hpIGto4bufaSBow6BuaCBs4bubbiBs4bubbiBoxqFuIGfhuqVwIDEsNDEwOTk2IGzhuqduIHThu4kgbOG7hyBuaOG7r25nIGjDoG5oIGtow6FjaCBjw7Mgc+G7kSDEkWnhu4NtIHbhu4EgTeG7qWMgxJHhu5kgaMOgaSBsw7JuZyB24buBIGThu4tjaCB24bulIHRo4bqlcCB0cm9uZyBuaMOzbSBT4buRIHBow7p0IGLhu4sgdHLhu4Uga2hpIGto4bufaSBow6BuaCBuaOG7jy4NCg0KIyMjIyAzLjQuMi40IFThu7cgbOG7hyBjaMOqbmggbOG7h2NoIChvZGQgcmF0aW8pDQoNCmBgYHtyfQ0KZXBpdGFiKGQsIG1ldGhvZCA9ICJvZGRzcmF0aW8iKQ0KYGBgDQoNClRoZW8ga+G6v3QgcXXhuqMgdHLDqm4gdGEgdGjhuqV5IHThu4kgbOG7hyBjaMOqbmggKG9kZCByYXRpbykgbMOgIDAsNTI1MTU3MiB04bupYyB04buJIGzhu4cgbmjhu69uZyBow6BuaCBraMOhY2ggY8OzIHPhu5EgxJFp4buDbSB24buBIE3hu6ljIMSR4buZIGjDoGkgbMOybmcgduG7gSBk4buLY2ggduG7pSB0aOG6pXAvbmjhu69uZyBow6BuaCBraMOhY2ggY8OzIHPhu5EgxJFp4buDbSB24buBIE3hu6ljIMSR4buZIGjDoGkgbMOybmcgduG7gSBk4buLY2ggduG7pSBjYW8g4bufIG5ow7NtIGzhu5tuIGLhurFuZyBraG/huqNuZyA1Miw1MiUgc28gduG7m2kgdOG7iSBs4buHIHPhu5EgxJFp4buDbSB24buBIE3hu6ljIMSR4buZIGjDoGkgbMOybmcgduG7gSBk4buLY2ggduG7pSB0aOG6pXAvbmjhu69uZyBow6BuaCBraMOhY2ggY8OzIHPhu5EgxJFp4buDbSB24buBIE3hu6ljIMSR4buZIGjDoGkgbMOybmcgduG7gSBk4buLY2ggduG7pSBjYW8g4bufIG5ow7NtIG5o4buPLg0KDQpLaGkgdGjDqm0gdGhhbSBz4buRIHJldiA9IOKAnHLigJ0gdGjDrCBz4bq9IHRo4buxYyBoaeG7h24gdmnhu4djIMSR4buVaSBjaOG7lyAyIGTDsm5nIHRyb25nIGLhuqNuZyBuZ+G6q3Ugbmhpw6puOg0KDQpgYGB7cn0NCmVwaXRhYihkLCBtZXRob2QgPSAib2Rkc3JhdGlvIiwgcmV2ID0gInIiKQ0KYGBgDQoNClRoZW8ga+G6v3QgcXXhuqMgdHLDqm4gdGEgdGjhuqV5IHThu4kgbOG7hyBjaMOqbmggKG9kZCByYXRpbykgbMOgIDEsOTA0MTkyICB04bupYyB04buJIGzhu4cgbmjhu69uZyBow6BuaCBraMOhY2ggY8OzIHPhu5EgxJFp4buDbSB24buBIE3hu6ljIMSR4buZIGjDoGkgbMOybmcgduG7gSBk4buLY2ggduG7pSAgY2FvLyBuaOG7r25nIGjDoG5oIGtow6FjaCBjw7Mgc+G7kSDEkWnhu4NtIHbhu4EgTeG7qWMgxJHhu5kgaMOgaSBsw7JuZyB24buBIGThu4tjaCB24bulIHRo4bqlcCDhu58gbmjDs20gbmjhu48gbOG7m24gaMahbiBraG/huqNuZyA5MCw0MSUgc28gduG7m2kgdOG7iSBs4buHIHPhu5EgxJFp4buDbSB24buBIE3hu6ljIMSR4buZIGjDoGkgbMOybmcgduG7gSBk4buLY2ggduG7pSAgY2FvLyBuaOG7r25nIGjDoG5oIGtow6FjaCBjw7Mgc+G7kSDEkWnhu4NtIHbhu4EgTeG7qWMgxJHhu5kgaMOgaSBsw7JuZyB24buBIGThu4tjaCB24bulIHRo4bqlcCDhu58gbmjDs20gbOG7m24uDQoNCiMjIyMgMy40LjMuNSBUaOG7kW5nIGvDqiBzdXkgZGnhu4VuDQoNCktp4buDbSDEkeG7i25oIHTDrW5oIMSR4buZYyBs4bqtcCBjaG8gMiBiaeG6v24gKElTKSB2w6AgKERESU0pOg0KDQpQaMawxqFuZyBwaMOhcCBjaGkgYsOsbmggcGjGsMahbmc6IEdp4bqjIHRodXnhur90IEhvOiBJUyB2w6AgRERJTSDEkeG7mWMgbOG6rXANCg0KYGBge3J9DQpkIDwtIHRhYmxlKERESU0sIElTKTtkDQpgYGANCg0KYGBge3J9DQpjaGlzcS50ZXN0KGQpDQpgYGANCg0KS+G6v3QgcXXhuqMga2nhu4NtIMSR4buLbmggdHLDqm4gY2hvIHRo4bqleSBnacOhIHRy4buLIHThu5tpIGjhuqFuIFBfdmFsdWUgPSAwLjAyMjk2IDwgNSUgdsOsIHbhuq15IGNoxrBhIGPDsyBjxqEgc+G7nyDEkeG7gyB0aOG7q2Egbmjhuq1uIGdp4bqjIHRodXnhur90IEhvLCBuw7NpIGPDoWNoIGtow6FjIGdp4buvYSBz4buRIMSRaeG7g20gTeG7qWMgxJHhu5kgaMOgaSBsw7JuZyB24buBIGThu4tjaCB24bulIChJUykgdsOgIFPhu5EgcGjDunQgYuG7iyB0cuG7hSBraGkga2jhu59pIGjDoG5oIChERElNKSBjw7MgbGnDqm4gcXVhbiB04bubaSBuaGF1Lg0KDQojIyMgMy40LjQgVGjhu5FuZyBrw6ogbcO0IHThuqMgYmnhur9uIHBo4bulIHRodeG7mWM6IElTIHbhu5tpIGJp4bq/biDEkeG7mWMgbOG6rXAgSOG6oW5nIGR1IGzhu4tjaCB0csOqbiBtw6F5IGJheSBj4bunYSBow6BuaCBraMOhY2ggKENsYXNzKQ0KDQojIyMjIDMuNC40LjEgTcOjIGhvw6EgYmnhur9uIEjhuqFuZyBkdSBs4buLY2ggdHLDqm4gbcOheSBiYXkgY+G7p2EgaMOgbmgga2jDoWNoIChDbGFzcykgxJHhu4tuaCB0w61uaCBjw7MgMiBnacOhIHRy4buLDQoNClbhu5tpIGThu68gbGnhu4d1IGfhu5FjLCBiaeG6v24gSOG6oW5nIGR1IGzhu4tjaCB0csOqbiBtw6F5IGJheSBj4bunYSBow6BuaCBraMOhY2ggKENsYXNzKSBsw6AgYmnhur9uIMSR4buLbmggdMOtbmggbmjhuq1uIDMgZ2nDoSB0cuG7izogQnVzaW5lc3M6IFRoxrDGoW5nIGdpYSwgRWNvLCBFY28gUGx1cy4gVMOhYyBnaeG6oyDEkcOjIMSR4bq3dCBxdXkgxrDhu5tjIHbhu4Egdmnhu4djIG3DoyBob8OhIDIgZ2nDoSB0cuG7iyBiaeG6v24gKENsYXNzKSBuaMawIHNhdTogS2jDoWNoIGjDoG5nIHRodeG7mWMgaOG6oW5nIHRoxrDGoW5nIGdpYTogQnVzaW5lc3MuIEtow6FjaCBow6BuZyB0aHXhu5ljIA0KaOG6oW5nIELDrG5oIHRoxrDhu51uZzogRWNvLCBFY28gUGx1cy4NCg0KYGBge3J9DQpwIDwtIGRhdGEuZnJhbWUoREwkQWdlLCBETCRHZW5kZXIsIERMJFRyYXZlbCwgREwkQ3VzdG9tZXIsIERMJENsYXNzLCBETCRTRiwgREwkRERJTSwgREwkSVMsIElTLCBERElNLCBBZ2UsIEdlbmRlciwgVHJhdmVsLCBDdXN0b21lciwgQ2xhc3MsIFNGKQ0KQ2xhc3MgPC0gcCAlPiUgbXV0YXRlKGhhbmc9Y2FzZV93aGVuKERMJENsYXNzID09ICJCdXNpbmVzcyIgfiAxLCBETCRDbGFzcyA9PSJFY28iIH4gMywgREwkQ2xhc3MgPT0iRWNvIFBsdXMiIH4gMykpDQpDbGFzcyA8LSBjdXQoQ2xhc3MkaGFuZywgYnJlYWtzID0gYygwLDEsNCksIGxhYmVscyA9IGMoInRodW9uZ2dpYSIsICJiaW5odGh1b25nIikpDQp0YWJsZShDbGFzcykNCmBgYA0KDQojIyMjIDMuNC40LjIgQuG6o25nIHThuqduIHPhu5EsIHThuqduIHN14bqldCB2w6AgYmnhu4N1IMSR4buTDQoNCkLhuqNuZyB04bqnbiBz4buROg0KDQpgYGB7cn0NCnYgPC0gdGFibGUoQ2xhc3MsIElTKTsgdg0KYGBgDQoNCkLhuqNuZyB04bqnbiBzdeG6pXQ6DQoNCmBgYHtyfQ0KdjEgPC0gcHJvcC50YWJsZSh2KTsgdjENCmBgYA0KUGjDom4gcGjhu5FpIGJpw6puOg0KDQpgYGB7cn0NCmFkZG1hcmdpbnModikNCmBgYA0KQmnhu4N1IMSR4buTIGPhu5l0IGvhur90IGjhu6NwIDIgYmnhur9uOg0KDQpgYGB7cn0NCmsgPC0gZGF0YS5mcmFtZShETCRBZ2UsIERMJEdlbmRlciwgREwkVHJhdmVsLCBETCRDdXN0b21lciwgREwkQ2xhc3MsIERMJFNGLCBETCRERElNLCBETCRJUywgSVMsIENsYXNzKQ0KayB8PiBnZ3Bsb3QoYWVzKHg9Q2xhc3MseT1hZnRlcl9zdGF0KGNvdW50KSkpICsgZ2VvbV9iYXIoZmlsbD0icGluayIpICsgZ2VvbV90ZXh0KGFlcyhsYWJlbCA9IHNjYWxlczo6cGVyY2VudChhZnRlcl9zdGF0KGNvdW50L3N1bShjb3VudCkpKSksIHN0YXQgPSAiY291bnQiLCBjb2xvciA9ICJibHVlIiwgdmp1c3QgPSAtIC41KSArIGZhY2V0X2dyaWQoLiB+SVMpICsgbGFicyh4ID0gIkjhuqFuZyBkdSBs4buLY2ggdHLDqm4gbcOheSBiYXkgY+G7p2EgaMOgbmgga2jDoWNoIix5ID0gIlPhu5EgbmfGsOG7nWkiKQ0KYGBgDQoNClRow7RuZyBxdWEgYuG6o25nIHThuqduIHPhu5EsIHThuqduIHN14bqldCB0csOqbiBj4bunYSAyIGJp4bq/biBT4buRIMSRaeG7g20gduG7gSBt4bupYyDEkeG7mSBow6BpIGzDsm5nIHbhu4EgZOG7i2NoIHbhu6UgdHLDqm4gY2h1eeG6v24gYmF5IHbDoCBI4bqhbmcgZHUgbOG7i2NoIHRyw6puIG3DoXkgYmF5IGPhu6dhIGjDoG5oIGtow6FjaCAoQ2xhc3MpIHRhIHRo4bqleSBjw7MgOTY0NiBow6BuaCBraMOhY2ggY8OzIFPhu5EgxJFp4buDbSB24buBIG3hu6ljIMSR4buZIGjDoGkgbMOybmcgduG7gSBk4buLY2ggduG7pSB0aOG6pXAgKHThu6ljIGTGsOG7m2kgMyDEkWnhu4NtKSB0cm9uZyDEkcOzIGPDsyA2MDg2IGjDoG5oIGtow6FjaCBjw7MgU+G7kSDEkWnhu4NtIHbhu4EgbeG7qWMgxJHhu5kgaMOgaSBsw7JuZyB24buBIGThu4tjaCB24bulIHRodeG7mWMgbmjDs20gYsOsbmggdGjGsOG7nW5nIChFY28sIEVjbyBQbHVzKSwgY2hp4bq/bSB04buJIGzhu4cgMjMsNCUgdOG7lW5nIHPhu5EgaMOgbmgga2jDoWNoIHbDoCAzNTYwIGjDoG5oIGtow6FjaCBuaMOzbSB0aMawxqFuZyBnaWEsIGNoaeG6v20gdOG7iSBs4buHIDEzLDclIHThu5VuZyBz4buRIGjDoG5oIGtow6FjaC4gQsOqbiBj4bqhbmggxJHDsyBjw7MgMTYzMjggaMOgbmgga2jDoWNoIGPDsyBT4buRIMSRaeG7g20gduG7gSBt4bupYyDEkeG7mSBow6BpIGzDsm5nIHbhu4EgZOG7i2NoIHbhu6Ug4bufIG3hu6ljIGNhbyAodHLDqm4gMyDEkWnhu4NtKSB0cm9uZyDEkcOzIGPDsyA3Mzk1IGjDoG5oIGtow6FjaCBuaMOzbSBiw6xuaCB0aMaw4budbmcsIGNoaeG6v20gMjgsNSUgdOG7lW5nIHPhu5EgaMOgbmgga2jDoWNoIHbDoCA4OTMzIG5nxrDhu51pIG5ow7NtIHRoxrDGoW5nIGdpYSwgY2hp4bq/bSAzNCw0JSB04buVbmcgc+G7kSBow6BuaCBraMOhY2guIFF1YSBiaeG7g3UgxJHhu5MgY8OzIHRo4buDIHRo4bqleSDEkeG7kWkgduG7m2kgbmjhu69uZyBow6BuaCBraMOhY2ggY8OzIHPhu5EgxJFp4buDbSB24buBIE3hu6ljIMSR4buZIGjDoGkgbMOybmcgduG7gSBk4buLY2ggduG7pSBj4bqjIHRo4bqlcCB0aMOsIHThu7cgbOG7hyBuaOG7r25nIGjDoG5oIGtow6FjaCBjw7MgIEjhuqFuZyBkdSBs4buLY2ggdHLDqm4gbcOheSBiYXkgdGh14buZYyBuaMOzbSBiw6xuaCB0aMaw4budbmcgIG5oaeG7gXUgaMahbiBuaOG7r25nIGjDoG5oIGtow6FjaCBjw7MgSOG6oW5nIGR1IGzhu4tjaCB0csOqbiBtw6F5IGJheSB0aHXhu5ljIG5ow7NtIHRoxrDGoW5nIGdpYSBuaMawbmcgxJHhu5FpIHbhu5tpIG5o4buvbmcgaMOgbmgga2jDoWNoIGPDsyBz4buRIMSRaeG7g20gduG7gSBN4bupYyDEkeG7mSBow6BpIGzDsm5nIHbhu4EgZOG7i2NoIHbhu6UgY2FvIHRow6wgdOG7tyBs4buHIG5o4buvbmcgaMOgbmgga2jDoWNoIGPDsyAgSOG6oW5nIGR1IGzhu4tjaCB0csOqbiBtw6F5IGJheSB0aHXhu5ljIG5ow7NtIGLDrG5oIHRoxrDhu51uZyAgw610IGjGoW4gbmjhu69uZyBow6BuaCBraMOhY2ggY8OzIEjhuqFuZyBkdSBs4buLY2ggdHLDqm4gbcOheSBiYXkgdGh14buZYyBuaMOzbSB0aMawxqFuZyBnaWEgLCDEkeG7kWkgduG7m2kgdOG7q25nIG3hu6ljIMSR4buZIGjDoGkgbMOybmcgduG7gSBk4buLY2ggduG7pSB0csOqbiBjaHV5w6puIGJheSB0aMOsIG3hu6ljIMSR4buZIGNow6puaCBs4buHY2ggZ2nhu69hIDIgbmjDs20gbsOgeSBraMO0bmcgcXXDoSBs4bubbi4NCg0KIyMjIyAzLjQuNC4zIFLhu6dpIHJvIHTGsMahbmcgxJHhu5FpIChSaXNrIHJhdGlvKQ0KDQpgYGB7cn0NCmVwaXRhYih2LCBtZXRob2QgPSAicmlza3JhdGlvIikNCmBgYA0KDQpUaGVvIGvhur90IHF14bqjIHRyw6puIHRhIHRo4bqleSB04buJIGzhu4cgcuG7p2kgcm8gdMawxqFuZyDEkeG7kWkgKHJpc2sgcmF0aW8pIGPhu6dhIGjDoG5oIGtow6FjaCBjw7Mgc+G7kSDEkWnhu4NtIHbhu4EgTeG7qWMgxJHhu5kgaMOgaSBsw7JuZyB24buBIGThu4tjaCB24bulIGNhbyB0aGVvIEjhuqFuZyBkdSBs4buLY2ggdHLDqm4gbcOheSBiYXkgbMOgIDAuNzY3MTU5MiB04bupYyBsw6AgdOG7iSBs4buHIG5o4buvbmcgaMOgbmgga2jDoWNoIGPDsyBz4buRIMSRaeG7g20gduG7gSBN4bupYyDEkeG7mSBow6BpIGzDsm5nIHbhu4EgZOG7i2NoIHbhu6UgY2FvIHRyb25nIG5ow7NtIGLDrG5oIHRoxrDhu51uZyBi4bqxbmcga2hv4bqjbmcgNzYsNyUgdOG7iSBs4buHIG5o4buvbmcgaMOgbmgga2jDoWNoIGPDsyBz4buRIMSRaeG7g20gduG7gSBN4bupYyDEkeG7mSBow6BpIGzDsm5nIHbhu4EgZOG7i2NoIHbhu6UgY2FvIHRyb25nIG5ow7NtIHRoxrDGoW5nIGdpYS4NCg0KS2hpIHRow6ptIHRoYW0gc+G7kSByZXYgPSDigJxj4oCdIHRow6wgc+G6vSB0aOG7sWMgaGnhu4duIHZp4buHYyDEkeG7lWkgY2jhu5cgMiBj4buZdCB0cm9uZyBi4bqjbmcgbmfhuqt1IG5oacOqbjoNCg0KYGBge3J9DQplcGl0YWIodiwgbWV0aG9kID0gInJpc2tyYXRpbyIsIHJldiA9ICJjIikNCmBgYA0KDQpUaGVvIGvhur90IHF14bqjIHRyw6puIHRhIHRo4bqleSB04buJIGzhu4cgcuG7p2kgcm8gdMawxqFuZyDEkeG7kWkgKHJpc2sgcmF0aW8pIGPhu6dhIG5o4buvbmcgaMOgbmgga2jDoWNoIGPDsyBz4buRIMSRaeG7g20gduG7gSBN4bupYyDEkeG7mSBow6BpIGzDsm5nIHbhu4EgZOG7i2NoIHbhu6UgdGjhuqVwIHRoZW8gSOG6oW5nIGR1IGzhu4tjaCB0csOqbiBtw6F5IGJheSBsw6AgMS41ODQyNiB04bupYyBsw6AgdOG7iSBs4buHIG5o4buvbmcgaMOgbmgga2jDoWNoIGPDsyBz4buRIMSRaeG7g20gduG7gSBN4bupYyDEkeG7mSBow6BpIGzDsm5nIHbhu4EgZOG7i2NoIHbhu6UgdGjhuqVwIHRyb25nIG5ow7NtIGLDrG5oIHRoxrDhu51uZyBs4bubbiBoxqFuIGtob+G6o25nIDU4LDQzJSB04buJIGzhu4cgbmjhu69uZyBow6BuaCBraMOhY2ggY8OzIHPhu5EgxJFp4buDbSB24buBIE3hu6ljIMSR4buZIGjDoGkgbMOybmcgduG7gSBk4buLY2ggduG7pSB0aOG6pXAgdHJvbmcgbmjDs20gdGjGsMahbmcgZ2lhLg0KDQojIyMjIDMuNC40LjQgVOG7tyBs4buHIGNow6puaCBs4buHY2ggKG9kZCByYXRpbykNCg0KYGBge3J9DQplcGl0YWIodiwgbWV0aG9kID0gIm9kZHNyYXRpbyIpDQpgYGANCg0KVGhlbyBr4bq/dCBxdeG6oyB0csOqbiB0YSB0aOG6pXkgdOG7iSBs4buHIGNow6puaCAob2RkIHJhdGlvKSBsw6AgMC40ODQyMzggdOG7qWMgdOG7iSBs4buHIG5o4buvbmcgaMOgbmgga2jDoWNoIGPDsyBz4buRIMSRaeG7g20gduG7gSBN4bupYyDEkeG7mSBow6BpIGzDsm5nIHbhu4EgZOG7i2NoIHbhu6UgY2FvL25o4buvbmcgaMOgbmgga2jDoWNoIGPDsyBz4buRIMSRaeG7g20gduG7gSBN4bupYyDEkeG7mSBow6BpIGzDsm5nIHbhu4EgZOG7i2NoIHbhu6UgdGjhuqVwIOG7nyBuaMOzbSBiw6xuaCB0aMaw4budbmcgYuG6sW5nIGtob+G6o25nIDQ4LDQyJSBzbyB24bubaSB04buJIGzhu4cgc+G7kSDEkWnhu4NtIHbhu4EgTeG7qWMgxJHhu5kgaMOgaSBsw7JuZyB24buBIGThu4tjaCB24bulIGNhby9uaOG7r25nIGjDoG5oIGtow6FjaCBjw7Mgc+G7kSDEkWnhu4NtIHbhu4EgTeG7qWMgxJHhu5kgaMOgaSBsw7JuZyB24buBIGThu4tjaCB24bulIHRo4bqlcCDhu58gbmjDs20gdGjGsMahbmcgZ2lhLg0KDQpLaGkgdGjDqm0gdGhhbSBz4buRIHJldiA9IOKAnHLigJ0gdGjDrCBz4bq9IHRo4buxYyBoaeG7h24gdmnhu4djIMSR4buVaSBjaOG7lyAyIGTDsm5nIHRyb25nIGLhuqNuZyBuZ+G6q3Ugbmhpw6puOg0KDQpgYGB7cn0NCmVwaXRhYih2LCBtZXRob2QgPSAib2Rkc3JhdGlvIiwgcmV2ID0gInIiKQ0KYGBgDQoNClRoZW8ga+G6v3QgcXXhuqMgdHLDqm4gdGEgdGjhuqV5IHThu4kgbOG7hyBjaMOqbmggKG9kZCByYXRpbykgbMOgIDIuMDY1MSB04bupYyB04buJIGzhu4cgbmjhu69uZyBow6BuaCBraMOhY2ggY8OzIHPhu5EgxJFp4buDbSB24buBIE3hu6ljIMSR4buZIGjDoGkgbMOybmcgduG7gSBk4buLY2ggduG7pSBjYW8vIG5o4buvbmcgaMOgbmgga2jDoWNoIGPDsyBz4buRIMSRaeG7g20gduG7gSBN4bupYyDEkeG7mSBow6BpIGzDsm5nIHbhu4EgZOG7i2NoIHbhu6UgdGjhuqVwIOG7nyBuaMOzbSB0aMawxqFuZyBnaWEgbOG7m24gZ+G6pXAgMi4wNjUxIHNvIHbhu5tpIHThu4kgbOG7hyBz4buRIMSRaeG7g20gduG7gSBN4bupYyDEkeG7mSBow6BpIGzDsm5nIHbhu4EgZOG7i2NoIHbhu6UgIGNhby8gbmjhu69uZyBow6BuaCBraMOhY2ggY8OzIHPhu5EgxJFp4buDbSB24buBIE3hu6ljIMSR4buZIGjDoGkgbMOybmcgduG7gSBk4buLY2ggduG7pSB0aOG6pXAg4bufIG5ow7NtIGLDrG5oIHRoxrDhu51uZy4NCg0KIyMjIyAzLjQuNC41IFRo4buRbmcga8OqIHN1eSBkaeG7hW4NCg0KS2nhu4NtIMSR4buLbmggdMOtbmggxJHhu5ljIGzhuq1wIGNobyAyIGJp4bq/biAoSVMpIHbDoCAoQ2xhc3MpOg0KDQpQaMawxqFuZyBwaMOhcCBjaGkgYsOsbmggcGjGsMahbmc6IEdp4bqjIHRodXnhur90IEhvOiBJUyB2w6AgQ2xhc3MgxJHhu5ljIGzhuq1wDQoNCmBgYHtyfQ0KdiA8LSB0YWJsZShETCRDbGFzcywgSVMpOyB2DQpgYGANCg0KDQpgYGB7cn0NCmNoaXNxLnRlc3QodikNCmBgYA0KDQpL4bq/dCBxdeG6oyBraeG7g20gxJHhu4tuaCB0csOqbiBjaG8gdGjhuqV5IGdpw6EgdHLhu4sgdOG7m2kgaOG6oW4gcC12YWx1ZSA8IDIuMmUtMTYgPCA1JSB2w6wgduG6rXkgY2jGsGEgY8OzIGPGoSBz4bufIMSR4buDIHRo4burYSBuaOG6rW4gZ2nhuqMgdGh1eeG6v3QgSG8sIG7Ds2kgY8OhY2gga2jDoWMgZ2nhu69hIHPhu5EgxJFp4buDbSBN4bupYyDEkeG7mSBow6BpIGzDsm5nIHbhu4EgZOG7i2NoIHbhu6UgKElTKSB2w6AgSOG6oW5nIGR1IGzhu4tjaCB0csOqbiBtw6F5IGJheSBj4bunYSBow6BuaCBraMOhY2ggKENsYXNzKSBjw7MgbGnDqm4gcXVhbiB04bubaSBuaGF1Lg0KDQojIyMgMy40LjUgVGjhu5FuZyBrw6ogbcO0IHThuqMgYmnhur9uIHBo4bulIHRodeG7mWM6IElTIHbhu5tpIGJp4bq/biDEkeG7mWMgbOG6rXAgKEN1c3RvbWVyKSBMb+G6oWkga2jDoWNoIGjDoG5nDQoNCiMjIyMgMy40LjUuMSBC4bqjbmcgdOG6p24gc+G7kSwgdOG6p24gc3XhuqV0IHbDoCBiaeG7g3UgxJHhu5MNCg0KQuG6o25nIHThuqduIHPhu5E6DQoNCmBgYHtyfQ0KdCA8LSB0YWJsZShDdXN0b21lciwgSVMpOyB0DQpgYGANCg0KQuG6o25nIHThuqduIHN14bqldDoNCg0KYGBge3J9DQp0MSA8LSBwcm9wLnRhYmxlKHQpOyB0MQ0KYGBgDQoNClBow6JuIHBo4buRaSBiacOqbjoNCg0KYGBge3J9DQphZGRtYXJnaW5zKHQpDQpgYGANCg0KQmnhu4N1IMSR4buTIGPhu5l0IGvhur90IGjhu6NwIDIgYmnhur9uOg0KDQpgYGB7cn0NCmsgPC0gZGF0YS5mcmFtZShETCRBZ2UsIERMJEdlbmRlciwgREwkVHJhdmVsLCBETCRDdXN0b21lciwgREwkQ2xhc3MsIERMJFNGLCBETCRERElNLCBETCRJUywgSVMsIENsYXNzKQ0KayB8PiBnZ3Bsb3QoYWVzKHg9Q3VzdG9tZXIseT1hZnRlcl9zdGF0KGNvdW50KSkpICsgZ2VvbV9iYXIoZmlsbD0icGluayIpICsgZ2VvbV90ZXh0KGFlcyhsYWJlbCA9IHNjYWxlczo6cGVyY2VudChhZnRlcl9zdGF0KGNvdW50L3N1bShjb3VudCkpKSksIHN0YXQgPSAiY291bnQiLCBjb2xvciA9ICJibHVlIiwgdmp1c3QgPSAtIC41KSArIGZhY2V0X2dyaWQoLiB+SVMpICsgbGFicyh4ID0gIkxv4bqhaSBraMOhY2ggaMOgbmciLHkgPSAiU+G7kSBuZ8aw4budaSIpDQpgYGANCg0KVGjDtG5nIHF1YSBi4bqjbmcgdOG6p24gc+G7kSwgdOG6p24gc3XhuqV0IHRyw6puIGPhu6dhIDIgYmnhur9uIFPhu5EgxJFp4buDbSB24buBIG3hu6ljIMSR4buZIGjDoGkgbMOybmcgduG7gSBk4buLY2ggduG7pSB0csOqbiBjaHV54bq/biBiYXkgdsOgIExv4bqhaSBraMOhY2ggaMOgbmcgdGEgdGjhuqV5IGPDsyA5NjQ2IGjDoG5oIGtow6FjaCBjw7MgU+G7kSDEkWnhu4NtIHbhu4EgbeG7qWMgxJHhu5kgaMOgaSBsw7JuZyB24buBIGThu4tjaCB24bulIHRo4bqlcCAodOG7qWMgZMaw4bubaSAzIMSRaeG7g20pIHRyb25nIMSRw7MgY8OzIDE2NjggaMOgbmgga2jDoWNoIHRodeG7mWMgbG/huqFpIGjDoG5oIGtow6FjaCBkaXNsb3lhbCBDdXN0b21lciwgY2hp4bq/bSB04buJIGzhu4cgNiw0JSB04buVbmcgc+G7kSBow6BuaCBraMOhY2ggdsOgIDc5NzggaMOgbmgga2jDoWNoIHRodeG7mWMgbG/huqFpIGjDoG5oIGtow6FjaCBMb3lhbCBDdXN0b21lciwgY2hp4bq/bSB04buJIGzhu4cgMzAsNyUgdOG7lW5nIHPhu5EgaMOgbmgga2jDoWNoLiBCw6puIGPhuqFuaCDEkcOzIGPDsyAxNjMyOCBow6BuaCBraMOhY2ggY8OzIFPhu5EgxJFp4buDbSB24buBIG3hu6ljIMSR4buZIGjDoGkgbMOybmcgduG7gSBk4buLY2ggduG7pSBjYW8gdHJvbmcgxJHDsyBjw7MgMzEzMSBow6BuaCBraMOhY2ggdGh14buZYyBsb+G6oWkgaMOgbmgga2jDoWNoIGRpc2xveWFsIEN1c3RvbWVyLCBjaGnhur9tIHThu4kgbOG7hyAxMiwxJSB04buVbmcgc+G7kSBow6BuaCBraMOhY2ggdsOgIDEzMTk3IGjDoG5oIGtow6FjaCB0aHXhu5ljIGxv4bqhaSBow6BuaCBraMOhY2ggTG95YWwgQ3VzdG9tZXIsIGNoaeG6v20gdOG7iSBs4buHIDUwLDglIHThu5VuZyBz4buRIGjDoG5oIGtow6FjaC4gUXVhIGJp4buDdSDEkeG7kyBjw7MgdGjhu4MgdGjhuqV5IMSR4buRaSB24bubaSBuaOG7r25nIGjDoG5oIGtow6FjaCBjw7Mgc+G7kSDEkWnhu4NtIHbhu4EgTeG7qWMgxJHhu5kgaMOgaSBsw7JuZyB24buBIGThu4tjaCB24bulIGPhuqMgdGjhuqVwIHbDoCBjYW8gdGjDrCB04bu3IGzhu4cgbmjhu69uZyBow6BuaCBraMOhY2ggdGh14buZYyBsb+G6oWkgaMOgbmgga2jDoWNoIExveWFsIEN1c3RvbWVyIMSR4buBdSBs4bubbiBoxqFuIG5ow7NtIGjDoG5oIGtow6FjaCBkaXNsb3lhbCBDdXN0b21lciB2w6AgbeG7qWMgY2jDqm5oIGzDqmNoaiBraMOhIGzhu5tuLg0KDQojIyMjIDMuNC41LjIgUuG7p2kgcm8gdMawxqFuZyDEkeG7kWkgKFJpc2sgcmF0aW8pDQoNCmBgYHtyfQ0KZXBpdGFiKHQsIG1ldGhvZCA9ICJyaXNrcmF0aW8iKQ0KYGBgDQoNClRoZW8ga+G6v3QgcXXhuqMgdHLDqm4gdGEgdGjhuqV5IHThu4kgbOG7hyBy4bunaSBybyB0xrDGoW5nIMSR4buRaSAocmlzayByYXRpbykgY+G7p2EgaMOgbmgga2jDoWNoIGPDsyBz4buRIMSRaeG7g20gduG7gSBN4bupYyDEkeG7mSBow6BpIGzDsm5nIHbhu4EgZOG7i2NoIHbhu6UgY2FvIHRoZW8gTG/huqFpIGjDoG5oIGtow6FjaCBsw6AgMC45NTUyNTU0IHThu6ljIGzDoCB04buJIGzhu4cgbmjhu69uZyBow6BuaCBraMOhY2ggY8OzIHPhu5EgxJFp4buDbSB24buBIE3hu6ljIMSR4buZIGjDoGkgbMOybmcgduG7gSBk4buLY2ggduG7pSBjYW8gdHJvbmcgbmjDs20gaMOgbmgga2jDoWNoIExveWFsIEN1c3RvbWVyIGfhuqVwIDAuOTU1MjU1NCB04buJIGzhu4cgbmjhu69uZyBow6BuaCBraMOhY2ggY8OzIHPhu5EgxJFp4buDbSB24buBIE3hu6ljIMSR4buZIGjDoGkgbMOybmcgduG7gSBk4buLY2ggduG7pSBjYW8gdHJvbmcgbmjDs20gZGlzbG95YWwgQ3VzdG9tZXIuDQoNCiMjIyMgMy40LjUuMyBU4bu3IGzhu4cgY2jDqm5oIGzhu4djaCAob2RkIHJhdGlvKQ0KDQpgYGB7cn0NCmVwaXRhYih0LCBtZXRob2QgPSAib2Rkc3JhdGlvIikNCmBgYA0KDQpUaGVvIGvhur90IHF14bqjIHRyw6puIHRhIHRo4bqleSB04buJIGzhu4cgY2jDqm5oIChvZGQgcmF0aW8pIGzDoCAwLjg4MTIzOTkgdOG7qWMgdOG7iSBs4buHIG5o4buvbmcgaMOgbmgga2jDoWNoIGPDsyBz4buRIMSRaeG7g20gduG7gSBN4bupYyDEkeG7mSBow6BpIGzDsm5nIHbhu4EgZOG7i2NoIHbhu6UgY2FvL25o4buvbmcgaMOgbmgga2jDoWNoIGPDsyBz4buRIMSRaeG7g20gduG7gSBN4bupYyDEkeG7mSBow6BpIGzDsm5nIHbhu4EgZOG7i2NoIHbhu6UgdGjhuqVwIOG7nyBuaMOzbSBow6BuaCBraMOhY2ggTG95YWwgQ3VzdG9tZXIgYuG6sW5nIGtob+G6o25nIDg4LDEyJSBzbyB24bubaSB04buJIGzhu4cgc+G7kSDEkWnhu4NtIHbhu4EgTeG7qWMgxJHhu5kgaMOgaSBsw7JuZyB24buBIGThu4tjaCB24bulIGNhby9uaOG7r25nIGjDoG5oIGtow6FjaCBjw7Mgc+G7kSDEkWnhu4NtIHbhu4EgTeG7qWMgxJHhu5kgaMOgaSBsw7JuZyB24buBIGThu4tjaCB24bulIHRo4bqlcCDhu58gbmjDs20gaMOgbmgga2jDoWNoIGRpc2xveWFsIEN1c3RvbWVyLg0KDQojIyMjIDMuNC41LjQgVGjhu5FuZyBrw6ogc3V5IGRp4buFbg0KDQpLaeG7g20gxJHhu4tuaCB0w61uaCDEkeG7mWMgbOG6rXAgY2hvIDIgYmnhur9uIChJUykgdsOgIChDdXN0b21lcik6DQoNClBoxrDGoW5nIHBow6FwIGNoaSBiw6xuaCBwaMawxqFuZzogR2nhuqMgdGh1eeG6v3QgSG86IElTIHbDoCBDdXN0b21lciDEkeG7mWMgbOG6rXANCg0KYGBge3J9DQp0IDwtIHRhYmxlKERMJEN1c3RvbWVyLCBJUyk7IHQNCmBgYA0KDQoNCmBgYHtyfQ0KY2hpc3EudGVzdCh0KQ0KYGBgDQoNCkvhur90IHF14bqjIGtp4buDbSDEkeG7i25oIHRyw6puIGNobyB0aOG6pXkgZ2nDoSB0cuG7iyB04bubaSBo4bqhbiBwLXZhbHVlID0gMC4wMDAxNjgyIDwgNSUgdsOsIHbhuq15IGNoxrBhIGPDsyBjxqEgc+G7nyDEkeG7gyB0aOG7q2Egbmjhuq1uIGdp4bqjIHRodXnhur90IEhvLCBuw7NpIGPDoWNoIGtow6FjIGdp4buvYSBz4buRIMSRaeG7g20gTeG7qWMgxJHhu5kgaMOgaSBsw7JuZyB24buBIGThu4tjaCB24bulIChJUykgdsOgIExv4bqhaSBraMOhY2ggaMOgbmcgY8OzIGxpw6puIHF1YW4gdOG7m2kgbmhhdS4NCg0KIyMjIDMuNC42IFRo4buRbmcga8OqIG3DtCB04bqjIGJp4bq/biBwaOG7pSB0aHXhu5ljOiBJUyB24bubaSBiaeG6v24gxJHhu5ljIGzhuq1wIFRyYXZlbCAoTeG7pWMgxJHDrWNoIGNodXnhur9uIGJheSBj4bunYSBow6BuaCBraMOhY2gpDQoNCiMjIyMgMy40LjYuMSBC4bqjbmcgdOG6p24gc+G7kSwgdOG6p24gc3XhuqV0IHbDoCBiaeG7g3UgxJHhu5MNCg0KQuG6o25nIHThuqduIHPhu5E6DQoNCmBgYHtyfQ0KcSA8LSB0YWJsZShETCRUcmF2ZWwsIElTKTsgcQ0KYGBgDQoNCkLhuqNuZyB04bqnbiBzdeG6pXQ6DQoNCmBgYHtyfQ0KcTEgPC0gcHJvcC50YWJsZShxKTsgcTENCmBgYA0KDQpQaMOibiBwaOG7kWkgYmnDqm46DQoNCmBgYHtyfQ0KYWRkbWFyZ2lucyhxKQ0KYGBgDQoNCkJp4buDdSDEkeG7kyBj4buZdCBr4bq/dCBo4bujcCAyIGJp4bq/bjoNCg0KYGBge3J9DQprIDwtIGRhdGEuZnJhbWUoREwkQWdlLCBETCRHZW5kZXIsIERMJFRyYXZlbCwgREwkQ3VzdG9tZXIsIERMJENsYXNzLCBETCRTRiwgREwkRERJTSwgREwkSVMsIElTLCBDbGFzcykNCmsgfD4gZ2dwbG90KGFlcyh4PVRyYXZlbCx5PWFmdGVyX3N0YXQoY291bnQpKSkgKyBnZW9tX2JhcihmaWxsPSJwaW5rIikgKyBnZW9tX3RleHQoYWVzKGxhYmVsID0gc2NhbGVzOjpwZXJjZW50KGFmdGVyX3N0YXQoY291bnQvc3VtKGNvdW50KSkpKSwgc3RhdCA9ICJjb3VudCIsIGNvbG9yID0gImJsdWUiLCB2anVzdCA9IC0gLjUpICsgZmFjZXRfZ3JpZCguIH5JUykgKyBsYWJzKHggPSAiTeG7pWMgxJHDrWNoIGNodXnhur9uIGJheSIseSA9ICJT4buRIG5nxrDhu51pIikNCmBgYA0KDQpUaMO0bmcgcXVhIGLhuqNuZyB04bqnbiBz4buRLCB04bqnbiBzdeG6pXQgdHLDqm4gY+G7p2EgMiBiaeG6v24gTeG7qWMgxJHhu5kgaMOgaSBsw7JuZyB24buBIGThu4tjaCB24bulIHRyw6puIGNodXnhur9uIGJheSB2w6AgTeG7pWMgxJHDrWNoIGNodXnhur9uIGJheSBj4bunYSBow6BuaCBraMOhY2ggKFRyYXZlbCkgdGEgdGjhuqV5IGPDsyA5NjQ2IGjDoG5oIGtow6FjaCBjw7MgTeG7qWMgxJHhu5kgaMOgaSBsw7JuZyB24buBIGThu4tjaCB24bulIHRyw6puIGNodXnhur9uIGJheSBUaOG6pXAgdHJvbmcgxJHDsyBjw7MgNjU4NSBow6BuaCBraMOhY2ggY8OzIE3hu6VjIMSRw61jaCBjaHV54bq/biBiYXkgdGh14buZYyBuaMOzbSBCdXNpbmVzcyB0cmF2ZWwsIGNoaeG6v20gdOG7iSBs4buHIDI1LDQlIHThu5VuZyBz4buRIGjDoG5oIGtow6FjaCB2w6AgMzA2MSBow6BuaCBraMOhY2ggbmjDs20gUGVyc29uYWwgdHJhdmVsLCBjaGnhur9tIHThu4kgbOG7hyAxMSw4JSB04buVbmcgc+G7kSBow6BuaCBraMOhY2guIELDqm4gY+G6oW5oIMSRw7MgY8OzIDE2MzI4IGjDoG5oIGtow6FjaCBjw7MgTeG7qWMgxJHhu5kgaMOgaSBsw7JuZyB24buBIGThu4tjaCB24bulIHRyw6puIGNodXnhur9uIGJheSBDYW8gdHJvbmcgxJHDsyBjw7MgMTE0NTEgaMOgbmgga2jDoWNoIG5ow7NtIEJ1c2luZXNzIHRyYXZlbCwgY2hp4bq/bSA0NCwxJSB04buVbmcgc+G7kSBow6BuaCBraMOhY2ggdsOgIDQ4NzcgbmfGsOG7nWkgbmjDs20gUGVyc29uYWwgdHJhdmVsLCBjaGnhur9tIDE4LDglIHThu5VuZyBz4buRIGjDoG5oIGtow6FjaC4gUXVhIGJp4buDdSDEkeG7kyBjw7MgdGjhu4MgdGjhuqV5IMSR4buRaSB24bubaSBuaOG7r25nIGjDoG5oIGtow6FjaCBjw7MgTeG7qWMgxJHhu5kgaMOgaSBsw7JuZyB24buBIGThu4tjaCB24bulIHRyw6puIGNodXnhur9uIGJheSBj4bqjIGNhbyB2w6AgdGjhuqVwIHRow6wgdOG7tyBs4buHIG5o4buvbmcgaMOgbmgga2jDoWNoIGPDsyBN4bulYyDEkcOtY2ggY2h1eeG6v24gYmF5IHRodeG7mWMgbmjDs20gQnVzaW5lc3MgdHJhdmVsIMSR4buBdSBuaGnhu4F1IGjGoW4gbmjhu69uZyBow6BuaCBraMOhY2ggY8OzIE3hu6VjIMSRw61jaCBjaHV54bq/biBiYXkgdGh14buZYyBuaMOzbSBQZXJzb25hbCB0cmF2ZWwuDQoNCiMjIyMgMy40LjYuMiBS4bunaSBybyB0xrDGoW5nIMSR4buRaSAoUmlzayByYXRpbykNCg0KYGBge3J9DQplcGl0YWIocSwgbWV0aG9kID0gInJpc2tyYXRpbyIpDQpgYGANCg0KVGhlbyBr4bq/dCBxdeG6oyB0csOqbiB0YSB0aOG6pXkgdOG7iSBs4buHIHLhu6dpIHJvIHTGsMahbmcgxJHhu5FpIChyaXNrIHJhdGlvKSBj4bunYSBow6BuaCBraMOhY2ggY8OzIHPhu5EgxJFp4buDbSB24buBIE3hu6ljIMSR4buZIGjDoGkgbMOybmcgduG7gSBk4buLY2ggduG7pSB0csOqbiBjaHV54bq/biBiYXkgY2FvIHRoZW8gTeG7pWMgxJHDrWNoIGNodXnhur9uIGJheSBsw6AgMC45Njc2OTQ5IHThu6ljIGzDoCB04buJIGzhu4cgbmjhu69uZyBow6BuaCBraMOhY2ggY8OzIHPhu5EgxJFp4buDbSB24buBIE3hu6ljIMSR4buZIGjDoGkgbMOybmcgduG7gSBk4buLY2ggduG7pSBjYW8gY8OzIG3hu6VjIMSRw61jaCBjaHV54bq/biBiYXkgbMOgIFBlcnNvbmFsIFRyYXZlbCBn4bqlcCAwLjk2NzY5NDkgbOG6p24gdOG7iSBs4buHIG5o4buvbmcgaMOgbmgga2jDoWNoIGPDsyBz4buRIMSRaeG7g20gduG7gSBN4bupYyDEkeG7mSBow6BpIGzDsm5nIHbhu4EgZOG7i2NoIHbhu6UgY2FvIGPDsyBt4bulYyDEkcOtY2ggY2h1eeG6v24gYmF5IGzDoCBQZXJzb25hbCBUcmF2ZWwuDQoNCiMjIyMgMy40LjYuMyBU4bu3IGzhu4cgY2jDqm5oIGzhu4djaCAob2RkIHJhdGlvKQ0KDQpgYGB7cn0NCmVwaXRhYihxLCBtZXRob2QgPSAib2Rkc3JhdGlvIikNCmBgYA0KDQpUaGVvIGvhur90IHF14bqjIHRyw6puIHRhIHRo4bqleSB04buJIGzhu4cgY2jDqm5oIChvZGQgcmF0aW8pIGzDoCAwLjkxNjIyNDMgdOG7qWMgdOG7iSBs4buHIG5o4buvbmcgaMOgbmgga2jDoWNoIGPDsyBz4buRIMSRaeG7g20gduG7gSBN4bupYyDEkeG7mSBow6BpIGzDsm5nIHbhu4EgZOG7i2NoIHbhu6UgY2FvL25o4buvbmcgaMOgbmgga2jDoWNoIGPDsyBz4buRIMSRaeG7g20gduG7gSBN4bupYyDEkeG7mSBow6BpIGzDsm5nIHbhu4EgZOG7i2NoIHbhu6UgdGjhuqVwIGPDsyBt4bulYyDEkcOtY2ggY2h1eeG6v24gYmF5IGzDoCBQZXJzb25hbCBUcmF2ZWwgYuG6sW5nIGtob+G6o25nIDkxLDYyJSBzbyB24bubaSB04buJIGzhu4cgc+G7kSDEkWnhu4NtIHbhu4EgTeG7qWMgxJHhu5kgaMOgaSBsw7JuZyB24buBIGThu4tjaCB24bulIGNhby9uaOG7r25nIGjDoG5oIGtow6FjaCBjw7Mgc+G7kSDEkWnhu4NtIHbhu4EgTeG7qWMgxJHhu5kgaMOgaSBsw7JuZyB24buBIGThu4tjaCB24bulIHRo4bqlcCBjw7MgbeG7pWMgxJHDrWNoIGNodXnhur9uIGJheSBsw6AgQnVzaW5lc3MgdHJhdmVsLg0KDQojIyMjIDMuNC42LjQgVGjhu5FuZyBrw6ogc3V5IGRp4buFbg0KDQpLaeG7g20gxJHhu4tuaCB0w61uaCDEkeG7mWMgbOG6rXAgY2hvIDIgYmnhur9uIChJUykgdsOgIChUcmF2ZWwpOg0KDQpQaMawxqFuZyBwaMOhcCBjaGkgYsOsbmggcGjGsMahbmc6IEdp4bqjIHRodXnhur90IEhvOiBJUyB2w6AgVHJhdmVsIMSR4buZYyBs4bqtcA0KDQpgYGB7cn0NCnEgPC0gdGFibGUoREwkVHJhdmVsLCBJUyk7IHENCmBgYA0KDQoNCmBgYHtyfQ0KY2hpc3EudGVzdChxKQ0KYGBgDQoNCkvhur90IHF14bqjIGtp4buDbSDEkeG7i25oIHRyw6puIGNobyB0aOG6pXkgZ2nDoSB0cuG7iyB04bubaSBo4bqhbiBwLXZhbHVlID0gMC4wMDE3MDMgPCA1JSB2w6wgduG6rXkgY2jGsGEgY8OzIGPGoSBz4bufIMSR4buDIHRo4burYSBuaOG6rW4gZ2nhuqMgdGh1eeG6v3QgSG8sIG7Ds2kgY8OhY2gga2jDoWMgZ2nhu69hIE3hu6ljIMSR4buZIGjDoGkgbMOybmcgduG7gSBk4buLY2ggduG7pSB0csOqbiBjaHV54bq/biBiYXkgKElTKSB2w6AgTeG7pWMgxJHDrWNoIGPhu6dhIGNodXnhur9uIGJheSAoVHJhdmVsKSBjw7MgbGnDqm4gcXVhbiB04bubaSBuaGF1Lg0KDQojIyMgMy40LjcgVGjhu5FuZyBrw6ogbcO0IHThuqMgYmnhur9uIHBo4bulIHRodeG7mWM6IElTIHbhu5tpIGJp4bq/biDEkeG7mWMgbOG6rXAgU0YNCg0KIyMjIyAzLjQuNy4xIELhuqNuZyB04bqnbiBz4buRLCB04bqnbiBzdeG6pXQgdsOgIGJp4buDdSDEkeG7kw0KDQpC4bqjbmcgdOG6p24gc+G7kToNCg0KYGBge3J9DQp3IDwtIHRhYmxlKFNGLCBJUyk7IHcNCmBgYA0KDQpC4bqjbmcgdOG6p24gc3XhuqV0Og0KDQpgYGB7cn0NCncxIDwtIHByb3AudGFibGUodyk7IHcxDQpgYGANCg0KUGjDom4gcGjhu5FpIGJpw6puOg0KDQpgYGB7cn0NCmFkZG1hcmdpbnModykNCmBgYA0KDQpCaeG7g3UgxJHhu5MgY+G7mXQga+G6v3QgaOG7o3AgMiBiaeG6v246DQoNCmBgYHtyfQ0KbSA8LSBkYXRhLmZyYW1lKERMJEdlbmRlciwgREwkVHJhdmVsLCBETCRDdXN0b21lciwgREwkQ2xhc3MsIERMJFNGLCBETCRBZ2UsIERMJERESU0sIERMJElTLCBTRiwgSVMpDQptIHw+IGdncGxvdChhZXMoeD1TRix5PWFmdGVyX3N0YXQoY291bnQpKSkgKyBnZW9tX2JhcihmaWxsPSJncmVlbiIpICsgZ2VvbV90ZXh0KGFlcyhsYWJlbCA9IHNjYWxlczo6cGVyY2VudChhZnRlcl9zdGF0KGNvdW50L3N1bShjb3VudCkpKSksIHN0YXQgPSAiY291bnQiLCBjb2xvciA9ICJibHVlIiwgdmp1c3QgPSAtIC41KSArIGZhY2V0X2dyaWQoLiB+SVMpICsgbGFicyh4ID0gIk3hu6ljIMSR4buZIGjDoGkgbMOybmcgduG7gSBow6NuZyBow6BuZyBraMO0bmciLHkgPSAiU+G7kSBuZ8aw4budaSIpDQpgYGANCg0KVGjDtG5nIHF1YSBi4bqjbmcgdOG6p24gc+G7kSwgdOG6p24gc3XhuqV0IHRyw6puIGPhu6dhIDIgYmnhur9uIE3hu6ljIMSR4buZIGjDoGkgbMOybmcgduG7gSBk4buLY2ggduG7pSB0csOqbiBjaHV54bq/biBiYXkgdsOgIE3hu6ljIMSR4buZIGjDoGkgbMOybmcgY+G7p2EgaMOgbmgga2jDoWNoIMSR4buRaSB24bubaSBow6NuZyBow6BuZyBraMO0bmcgKFNGKSB0YSB0aOG6pXkgY8OzIDk2NDYgaMOgbmgga2jDoWNoIGPDsyBN4bupYyDEkeG7mSBow6BpIGzDsm5nIHbhu4EgZOG7i2NoIHbhu6UgdHLDqm4gY2h1eeG6v24gYmF5IFRo4bqlcCB0cm9uZyDEkcOzIGPDsyA3MDI2IGjDoG5oIGtow6FjaCBjw7MgTeG7qWMgxJHhu5kgaMOgaSBsw7JuZyBj4bunYSBow6BuaCBraMOhY2ggxJHhu5FpIHbhu5tpIGjDo25nIGjDoG5nIGtow7RuZyB0aHXhu5ljIG5ow7NtIG5ldXRyYWwgb3IgZGlzc2F0aXNmaWVkLCBjaGnhur9tIHThu4kgbOG7hyAyNyUgdOG7lW5nIHPhu5EgaMOgbmgga2jDoWNoIHbDoCAyNjIwIGjDoG5oIGtow6FjaCBuaMOzbSBzYXRpc2ZpZWQsIGNoaeG6v20gdOG7iSBs4buHIDEwLDElIHThu5VuZyBz4buRIGjDoG5oIGtow6FjaC4gQsOqbiBj4bqhbmggxJHDsyBjw7MgMTYzMjggaMOgbmgga2jDoWNoIGPDsyBN4bupYyDEkeG7mSBow6BpIGzDsm5nIHbhu4EgZOG7i2NoIHbhu6UgdHLDqm4gY2h1eeG6v24gYmF5IENhbyB0cm9uZyDEkcOzIGPDsyA3NTQ1IGjDoG5oIGtow6FjaCBjw7MgTeG7qWMgxJHhu5kgaMOgaSBsw7JuZyBj4bunYSBow6BuaCBraMOhY2ggxJHhu5FpIHbhu5tpIGjDo25nIGjDoG5nIGtow7RuZyB0aHXhu5ljIG5ow7NtIG5ldXRyYWwgb3IgZGlzc2F0aXNmaWVkLCBjaGnhur9tIHThu4kgbOG7hyAyOSUgdOG7lW5nIHPhu5EgaMOgbmgga2jDoWNoIHbDoCA4NzgzIGjDoG5oIGtow6FjaCBuaMOzbSBzYXRpc2ZpZWQsIGNoaeG6v20gdOG7iSBs4buHIDMzLDglIHThu5VuZyBz4buRIGjDoG5oIGtow6FjaC4NCg0KIyMjIyAzLjQuNy4yIFLhu6dpIHJvIHTGsMahbmcgxJHhu5FpIChSaXNrIHJhdGlvKQ0KDQpgYGB7cn0NCmVwaXRhYih3LCBtZXRob2QgPSAicmlza3JhdGlvIikNCmBgYA0KDQpUaGVvIGvhur90IHF14bqjIHRyw6puIHRhIHRo4bqleSB04buJIGzhu4cgcuG7p2kgcm8gdMawxqFuZyDEkeG7kWkgKHJpc2sgcmF0aW8pIGPhu6dhIGjDoG5oIGtow6FjaCBjw7MgbeG7qWMgxJHhu5kgaMOgaSBsw7JuZyB24buBIGThu4tjaCB24bulIHRyw6puIGNodXnhur9uIGJheSBDYW8gdGhlbyBN4bupYyDEkeG7mSBow6BpIGzDsm5nIGPhu6dhIGjDoG5oIGtow6FjaCDEkeG7kWkgduG7m2kgaMOjbmcgaMOgbmcga2jDtG5nIChTRikgbMOgIDEuNDg3NDg5IHThu6ljIGzDoCB04buJIGzhu4cgbmjhu69uZyBow6BuaCBraMOhY2ggY8OzIG3hu6ljIMSR4buZIGjDoGkgbMOybmcgduG7gSBk4buLY2ggduG7pSB0csOqbiBjaHV54bq/biBiYXkgQ2FvIGPDsyBN4bupYyDEkeG7mSBow6BpIGzDsm5nIMSR4buRaSB24bubaSBow6NuZyBow6BuZyBraMO0bmcgdGh14buZYyBuaMOzbSBzYXRpc2ZpZWQgbOG7m24gaMahbiBraG/huqNuZyA0OCw3NSUgdOG7iSBs4buHIG5o4buvbmcgaMOgbmgga2jDoWNoIGPDsyBt4bupYyDEkeG7mSBow6BpIGzDsm5nIHbhu4EgZOG7i2NoIHbhu6UgdHLDqm4gY2h1eeG6v24gYmF5IENhbyBjw7MgTeG7qWMgxJHhu5kgaMOgaSBsw7JuZyDEkeG7kWkgduG7m2kgaMOjbmcgaMOgbmcga2jDtG5nIHRodeG7mWMgbmjDs20gbmV1dHJhbCBvciBkaXNzYXRpc2ZpZWQuDQoNCiMjIyMgMy40LjcuMyBU4bu3IGzhu4cgY2jDqm5oIGzhu4djaCAob2RkIHJhdGlvKQ0KDQpgYGB7cn0NCmVwaXRhYih3LCBtZXRob2QgPSAib2Rkc3JhdGlvIikNCmBgYA0KDQpUaGVvIGvhur90IHF14bqjIHRyw6puIHRhIHRo4bqleSB04buJIGzhu4cgY2jDqm5oIChvZGQgcmF0aW8pIGzDoCAzLjEyMTY5NSB04bupYyB04buJIGzhu4cgbmjhu69uZyBow6BuaCBraMOhY2ggY8OzIHPhu5EgxJFp4buDbSB24buBIE3hu6ljIMSR4buZIGjDoGkgbMOybmcgduG7gSBk4buLY2ggduG7pSBjYW8vbmjhu69uZyBow6BuaCBraMOhY2ggY8OzIHPhu5EgxJFp4buDbSB24buBIE3hu6ljIMSR4buZIGjDoGkgbMOybmcgduG7gSBk4buLY2ggduG7pSB0aOG6pXAgdGh14buZYyBuaMOzbSBzYXRpc2ZpZWQgbOG7m24gZ+G6pXAgMy4xMjE2OTUgc28gduG7m2kgdOG7iSBs4buHIHPhu5EgxJFp4buDbSB24buBIE3hu6ljIMSR4buZIGjDoGkgbMOybmcgduG7gSBk4buLY2ggduG7pSBjYW8vbmjhu69uZyBow6BuaCBraMOhY2ggY8OzIHPhu5EgxJFp4buDbSB24buBIE3hu6ljIMSR4buZIGjDoGkgbMOybmcgduG7gSBk4buLY2ggduG7pSB0aOG6pXAgY8OzIE3hu6ljIMSR4buZIGjDoGkgbMOybmcgxJHhu5FpIHbhu5tpIGjDo25nIGjDoG5nIGtow7RuZyB0aHXhu5ljIG5ow7NtIG5ldXRyYWwgb3IgZGlzc2F0aXNmaWVkLg0KDQojIyMjIDMuNC43LjQgVGjhu5FuZyBrw6ogc3V5IGRp4buFbg0KDQpLaeG7g20gxJHhu4tuaCB0w61uaCDEkeG7mWMgbOG6rXAgY2hvIDIgYmnhur9uIChJUykgdsOgIChTRik6DQoNClBoxrDGoW5nIHBow6FwIGNoaSBiw6xuaCBwaMawxqFuZzogR2nhuqMgdGh1eeG6v3QgSG86IElTIHbDoCBTRiDEkeG7mWMgbOG6rXANCg0KYGBge3J9DQp3IDwtIHRhYmxlKFNGLCBJUyk7dw0KYGBgDQoNCmBgYHtyfQ0KY2hpc3EudGVzdCh3KQ0KYGBgDQoNCkvhur90IHF14bqjIGtp4buDbSDEkeG7i25oIHRyw6puIGNobyB0aOG6pXkgZ2nDoSB0cuG7iyB04bubaSBo4bqhbiBwLXZhbHVlIDwgMi4yZS0xNiA8IDUlIHbDrCB24bqteSBjaMawYSBjw7MgY8ahIHPhu58gxJHhu4MgdGjhu6thIG5o4bqtbiBnaeG6oyB0aHV54bq/dCBIbywgbsOzaSBjw6FjaCBraMOhYyBnaeG7r2EgbeG7qWMgxJHhu5kgaMOgaSBsw7JuZyB24buBIGThu4tjaCB24bulIHRyw6puIGNodXnhur9uIGJheSAoSVMpIG3hu6ljIMSR4buZIGjDoGkgbMOybmcgduG7gSBow6NuZyBow6BuZyBraMO0bmcgKFNGKSBjw7MgbGnDqm4gcXVhbiB04bubaSBuaGF1Lg0KDQojIyMgMy40LjggVGjhu5FuZyBrw6ogbcO0IHThuqMgYmnhur9uIHBo4bulIHRodeG7mWM6IFNGIChN4bupYyDEkeG7mSBow6BpIGzDsm5nIGPhu6dhIGjDoG5oIGtow6FjaCDEkeG7kWkgduG7m2kgaMOjbmcgaMOgbmcga2jDtG5nKSB24bubaSBiaeG6v24gxJHhu5ljIGzhuq1wIEdlbmRlcg0KDQojIyMjIDMuNC44LjEgQuG6o25nIHThuqduIHPhu5EsIHThuqduIHN14bqldCB2w6AgYmnhu4N1IMSR4buTDQoNCkLhuqNuZyB04bqnbiBz4buROg0KDQpgYGB7cn0NCmUgPC0gdGFibGUoREwkR2VuZGVyLCBTRik7IGUNCmBgYA0KDQpC4bqjbmcgdOG6p24gc3XhuqV0Og0KDQpgYGB7cn0NCmUxIDwtIHByb3AudGFibGUoZSk7IGUxDQpgYGANCg0KUGjDom4gcGjhu5FpIGJpw6puOg0KDQpgYGB7cn0NCmFkZG1hcmdpbnMoZSkNCmBgYA0KDQpCaeG7g3UgxJHhu5MgY+G7mXQga+G6v3QgaOG7o3AgMiBiaeG6v246DQoNCmBgYHtyfQ0KayA8LSBkYXRhLmZyYW1lKERMJEFnZSwgREwkR2VuZGVyLCBETCRUcmF2ZWwsIERMJEN1c3RvbWVyLCBETCRDbGFzcywgREwkU0YsIERMJERESU0sIERMJElTLCBTRiwgR2VuZGVyKQ0KayB8PiBnZ3Bsb3QoYWVzKHg9REwkR2VuZGVyLHk9YWZ0ZXJfc3RhdChjb3VudCkpKSArIGdlb21fYmFyKGZpbGw9InBpbmsiKSArIGdlb21fdGV4dChhZXMobGFiZWwgPSBzY2FsZXM6OnBlcmNlbnQoYWZ0ZXJfc3RhdChjb3VudC9zdW0oY291bnQpKSkpLCBzdGF0ID0gImNvdW50IiwgY29sb3IgPSAiYmx1ZSIsIHZqdXN0ID0gLSAuNSkgKyBmYWNldF9ncmlkKC4gflNGKSArIGxhYnMoeCA9ICJN4bupYyDEkeG7mSBow6BpIGzDsm5nIGPhu6dhIGjDoG5oIGtow6FjaCDEkeG7kWkgduG7m2kgaMOjbmcgaMOgbmcga2jDtG5nIix5ID0gIlPhu5EgbmfGsOG7nWkiKQ0KYGBgDQoNClRow7RuZyBxdWEgYuG6o25nIHThuqduIHPhu5EsIHThuqduIHN14bqldCB0csOqbiBj4bunYSAyIGJp4bq/biBN4bupYyDEkeG7mSBow6BpIGzDsm5nIGPhu6dhIGjDoG5oIGtow6FjaCDEkeG7kWkgduG7m2kgaMOjbmcgaMOgbmcga2jDtG5nIChTRikgdsOgIEdp4bubaSB0w61uaCAoR2VuZGVyKSB0YSB0aOG6pXkgY8OzIDE0NTczIGjDoG5oIGtow6FjaCBjw7MgTeG7qWMgxJHhu5kgaMOgaSBsw7JuZyBj4bunYSBow6BuaCBraMOhY2ggxJHhu5FpIHbhu5tpIGjDo25nIGjDoG5nIGtow7RuZyB0aHXhu5ljIG5ow7NtIG5ldXRyYWwgb3IgZGlzc2F0aXNmaWVkIHRyb25nIMSRw7MgY8OzIDc0MzcgaMOgbmgga2jDoWNoIGdp4bubaSB0w61uaCBu4buvLCBjaGnhur9tIHThu4kgbOG7hyAyOCw2MyUgdOG7lW5nIHPhu5EgaMOgbmgga2jDoWNoIHbDoCA3MTM2IGjDoG5oIGtow6FjaCBuYW0sIGNoaeG6v20gdOG7iSBs4buHIDI3LDQ3JSB04buVbmcgc+G7kSBow6BuaCBraMOhY2guIELDqm4gY+G6oW5oIMSRw7MgY8OzIDExNDAzIGjDoG5oIGtow6FjaCBjw7MgTeG7qWMgxJHhu5kgaMOgaSBsw7JuZyBj4bunYSBow6BuaCBraMOhY2ggxJHhu5FpIHbhu5tpIGjDo25nIGjDoG5nIGtow7RuZyB0aHXhu5ljIG5ow7NtIHNhdGlzZmllZCB0cm9uZyDEkcOzIGPDsyA1NzM1IGjDoG5oIGtow6FjaCBu4buvLCBjaGnhur9tIDIyLDA4JSB04buVbmcgc+G7kSBow6BuaCBraMOhY2ggdsOgIDU2NjggaMOgbmgga2jDoWNoIG5hbSwgY2hp4bq/bSAyMSw4MiUgdOG7lW5nIHPhu5EgaMOgbmgga2jDoWNoLiBRdWEgYmnhu4N1IMSR4buTIGPDsyB0aOG7gyB0aOG6pXkgxJHhu5FpIHbhu5tpIG5o4buvbmcgaMOgbmgga2jDoWNoIGPDsyBz4buRIMSRaeG7g20gduG7gSBN4bupYyDEkeG7mSBow6BpIGzDsm5nIGPhu6dhIGjDoG5oIGtow6FjaCDEkeG7kWkgduG7m2kgaMOjbmcgaMOgbmcga2jDtG5nIHRodeG7mWMgbmjDs20gbmV1dHJhbCBvciBkaXNzYXRpc2ZpZWQgIHRow6wgdOG7tyBs4buHIG5o4buvbmcgaMOgbmgga2jDoWNoIGPDsyBu4buvIG5oaeG7gXUgaMahbiBuaOG7r25nIGjDoG5oIGtow6FjaCBuYW0gbmjGsG5nIMSR4buRaSB24bubaSBuaOG7r25nIGjDoG5oIGtow6FjaCBjw7MgTeG7qWMgxJHhu5kgaMOgaSBsw7JuZyBj4bunYSBow6BuaCBraMOhY2ggxJHhu5FpIHbhu5tpIGjDo25nIGjDoG5nIGtow7RuZyB0aHXhu5ljIG5ow7NtIHNhdGlzZmllZCB0aMOsIHThu7cgbOG7hyBuaOG7r25nIGjDoG5oIGtow6FjaCBu4buvIGzhuqFpIMOtdCBoxqFuIG5o4buvbmcgaMOgbmgga2jDoWNoIG5hbSwgxJHhu5FpIHbhu5tpIHThu6tuZyBN4bupYyDEkeG7mSBow6BpIGzDsm5nIGPhu6dhIGjDoG5oIGtow6FjaCDEkeG7kWkgduG7m2kgaMOjbmcgaMOgbmcga2jDtG5nIHRow6wgbeG7qWMgxJHhu5kgY2jDqm5oIGzhu4djaCBnaeG7r2EgMiBuaMOzbSBuw6B5IGtow7RuZyBxdcOhIGzhu5tuLg0KDQojIyMjIDMuNC44LjIgUuG7p2kgcm8gdMawxqFuZyDEkeG7kWkgKFJpc2sgcmF0aW8pDQoNCmBgYHtyfQ0KZXBpdGFiKGUsIG1ldGhvZCA9ICJyaXNrcmF0aW8iKQ0KYGBgDQoNClRoZW8ga+G6v3QgcXXhuqMgdHLDqm4gdGEgdGjhuqV5IHThu4kgbOG7hyBy4bunaSBybyB0xrDGoW5nIMSR4buRaSAocmlzayByYXRpbykgY+G7p2EgaMOgbmgga2jDoWNoIGPDsyBN4bupYyDEkeG7mSBow6BpIGzDsm5nIMSR4buRaSB24bubaSBow6NuZyBow6BuZyBraMO0bmcgdGh14buZYyBuaMOzbSBzYXRpc2ZpZWQgdGhlbyBHaeG7m2kgdMOtbmggbMOgIDEsMDE2NzIzIHThu6ljIGzDoCB04buJIGzhu4cgbmjhu69uZyBow6BuaCBraMOhY2ggbmFtIGPDsyBN4bupYyDEkeG7mSBow6BpIGzDsm5nIMSR4buRaSB24bubaSBow6NuZyBow6BuZyBraMO0bmcgdGh14buZYyBuaMOzbSBzYXRpc2ZpZWQgbOG7m24gaMahbiBraG/huqNuZyAxLDY3JSB04buJIGzhu4cgbmjhu69uZyBow6BuaCBraMOhY2ggbuG7ryBjw7MgTeG7qWMgxJHhu5kgaMOgaSBsw7JuZyB24buBIGjDo25nIGjDoG5nIGtow7RuZyB0cm9uZyBuaMOzbSBzYXRpc2ZpZWQuDQoNCiMjIyMgMy40LjguMyBU4bu3IGzhu4cgY2jDqm5oIGzhu4djaCAob2RkIHJhdGlvKQ0KDQpgYGB7cn0NCmVwaXRhYihlLCBtZXRob2QgPSAib2Rkc3JhdGlvIikNCmBgYA0KDQpUaGVvIGvhur90IHF14bqjIHRyw6puIHRhIHRo4bqleSB04buJIGzhu4cgY2jDqm5oIChvZGQgcmF0aW8pIGzDoCAxLDAzMDAwNSB04bupYyB04buJIGzhu4cgbmjhu69uZyBow6BuaCBraMOhY2ggY8OzIE3hu6ljIMSR4buZIGjDoGkgbMOybmcgduG7gSBow6NuZyBow6BuZyBraMO0bmcgbmjDs20gc2F0aXNmaWVkL25o4buvbmcgaMOgbmgga2jDoWNoIGPDsyBN4bupYyDEkeG7mSBow6BpIGzDsm5nIHbhu4EgaMOjbmcgaMOgbmcga2jDtG5nIG5ow7NtIG5ldXRyYWwgb3IgZGlzc2F0aXNmaWVkIOG7nyBnaeG7m2kgdMOtbmggbmFtIGzhu5tuIGjGoW4ga2hv4bqjbmcgMyUgc28gduG7m2kgdOG7iSBs4buHIE3hu6ljIMSR4buZIGjDoGkgbMOybmcgduG7gSBow6NuZyBow6BuZyBraMO0bmcgbmjDs20gc2F0aXNmaWVkL25o4buvbmcgaMOgbmgga2jDoWNoIGPDsyBN4bupYyDEkeG7mSBow6BpIGzDsm5nIHbhu4EgaMOjbmcgaMOgbmcga2jDtG5nIG5ow7NtIG5ldXRyYWwgb3IgZGlzc2F0aXNmaWVkIOG7nyBnaeG7m2kgdMOtbmggbuG7ry4gDQoNCiMjIyMgMy40LjguNCBUaOG7kW5nIGvDqiBzdXkgZGnhu4VuDQoNCktp4buDbSDEkeG7i25oIHTDrW5oIMSR4buZYyBs4bqtcCBjaG8gMiBiaeG6v24gKFNGKSB2w6AgKEdlbmRlcik6DQoNClBoxrDGoW5nIHBow6FwIGNoaSBiw6xuaCBwaMawxqFuZzogR2nhuqMgdGh1eeG6v3QgSG86IChGUykgdsOgIChHZW5kZXIpDQoNCmBgYHtyfQ0KZSA8LSB0YWJsZShETCRHZW5kZXIsIFNGKTsgZQ0KYGBgDQoNCg0KYGBge3J9DQpjaGlzcS50ZXN0KGUpDQpgYGANCg0KS+G6v3QgcXXhuqMga2nhu4NtIMSR4buLbmggdHLDqm4gY2hvIHRo4bqleSBnacOhIHRy4buLIHThu5tpIGjhuqFuIHAtdmFsdWUgPSAwLjI0MjEgPiA1JSB2w6wgduG6rXkgY8OzIGPGoSBz4bufIMSR4buDIHRo4burYSBuaOG6rW4gZ2nhuqMgdGh1eeG6v3QgSG8sIG7Ds2kgY8OhY2gga2jDoWMgTeG7qWMgxJHhu5kgaMOgaSBsw7JuZyB24buBIGjDo25nIGjDoG5nIGtow7RuZyAoU0YpIHbDoCBnaeG7m2kgdMOtbmgga2jDtG5nIGPDsyBsacOqbiBxdWFuIHThu5tpIG5oYXUuDQoNCiMjIyAzLjQuOSBUaOG7kW5nIGvDqiBtw7QgdOG6oyBiaeG6v24gcGjhu6UgdGh14buZYzogU0YgduG7m2kgYmnhur9uIMSR4buZYyBs4bqtcCBI4bqhbmcgZHUgbOG7i2NoIHRyw6puIG3DoXkgYmF5IGPhu6dhIGjDoG5oIGtow6FjaCAoQ2xhc3MpDQoNCiMjIyMgMy40LjkuMSBNw6MgaG/DoSBiaeG6v24gSOG6oW5nIGR1IGzhu4tjaCB0csOqbiBtw6F5IGJheSBj4bunYSBow6BuaCBraMOhY2ggKENsYXNzKSDEkeG7i25oIHTDrW5oIGPDsyAyIGdpw6EgdHLhu4sNCg0KVuG7m2kgZOG7ryBsaeG7h3UgZ+G7kWMsIGJp4bq/biBI4bqhbmcgZHUgbOG7i2NoIHRyw6puIG3DoXkgYmF5IGPhu6dhIGjDoG5oIGtow6FjaCAoQ2xhc3MpIGzDoCBiaeG6v24gxJHhu4tuaCB0w61uaCBuaOG6rW4gMyBnacOhIHRy4buLOiBCdXNpbmVzczogVGjGsMahbmcgZ2lhLCBFY28sIEVjbyBQbHVzLiBUw6FjIGdp4bqjIMSRw6MgxJHhurd0IHF1eSDGsOG7m2MgduG7gSB2aeG7h2MgbcOjIGhvw6EgMiBnacOhIHRy4buLIGJp4bq/biAoQ2xhc3MpIG5oxrAgc2F1OiBLaMOhY2ggaMOgbmcgdGh14buZYyBo4bqhbmcgdGjGsMahbmcgZ2lhOiBCdXNpbmVzcy4gS2jDoWNoIGjDoG5nIHRodeG7mWMgaOG6oW5nIELDrG5oIHRoxrDhu51uZzogRWNvLCBFY28gUGx1cy4NCg0KYGBge3J9DQpmIDwtIHRhYmxlKERMJENsYXNzLCBTRik7IGYNCmBgYA0KDQojIyMjIDMuNC45LjIgQuG6o25nIHThuqduIHPhu5EsIHThuqduIHN14bqldCB2w6AgYmnhu4N1IMSR4buTDQoNCkLhuqNuZyB04bqnbiBz4buROg0KDQpgYGB7cn0NCmYgPC0gdGFibGUoQ2xhc3MsIFNGKTsgZg0KYGBgDQoNCkLhuqNuZyB04bqnbiBzdeG6pXQ6DQoNCmBgYHtyfQ0KZjEgPC0gcHJvcC50YWJsZShmKTsgZjENCmBgYA0KDQpQaMOibiBwaOG7kWkgYmnDqm46DQoNCmBgYHtyfQ0KYWRkbWFyZ2lucyhmKQ0KYGBgDQoNCkJp4buDdSDEkeG7kyBj4buZdCBr4bq/dCBo4bujcCAyIGJp4bq/bjoNCg0KYGBge3J9DQprIDwtIGRhdGEuZnJhbWUoREwkQWdlLCBETCRHZW5kZXIsIERMJFRyYXZlbCwgREwkQ3VzdG9tZXIsIERMJENsYXNzLCBETCRTRiwgREwkRERJTSwgREwkSVMsIFNGLCBDbGFzcykNCmsgfD4gZ2dwbG90KGFlcyh4PUNsYXNzLHk9YWZ0ZXJfc3RhdChjb3VudCkpKSArIGdlb21fYmFyKGZpbGw9InBpbmsiKSArIGdlb21fdGV4dChhZXMobGFiZWwgPSBzY2FsZXM6OnBlcmNlbnQoYWZ0ZXJfc3RhdChjb3VudC9zdW0oY291bnQpKSkpLCBzdGF0ID0gImNvdW50IiwgY29sb3IgPSAiYmx1ZSIsIHZqdXN0ID0gLSAuNSkgKyBmYWNldF9ncmlkKC4gflNGKSArIGxhYnMoeCA9ICJN4bupYyDEkeG7mSBow6BpIGzDsm5nIHbhu4EgaMOjbmcgaMOgbmcga2jDtG5nIix5ID0gIlPhu5EgbmfGsOG7nWkiKQ0KYGBgDQoNClRow7RuZyBxdWEgYuG6o25nIHThuqduIHPhu5EsIHThuqduIHN14bqldCB0csOqbiBj4bunYSAyIGJp4bq/biBN4bupYyDEkeG7mSBow6BpIGzDsm5nIHbhu4EgaMOjbmcgaMOgbmcga2jDtG5nIHbDoCBI4bqhbmcgZHUgbOG7i2NoIHRyw6puIG3DoXkgYmF5IGPhu6dhIGjDoG5oIGtow6FjaCAoQ2xhc3MpIHRhIHRo4bqleSBjw7MgMTQ1NzMgaMOgbmgga2jDoWNoIGPDsyBN4bupYyDEkeG7mSBow6BpIGzDsm5nIHbhu4EgaMOjbmcgaMOgbmcga2jDtG5nIHRodeG7mWMgbmjDs20gbmV1dHJhbCBvciBkaXNzYXRpc2ZpZWQgdHJvbmcgxJHDsyBjw7MgMTA3NjQgaMOgbmgga2jDoWNoIGPDsyBN4bupYyDEkeG7mSBow6BpIGzDsm5nIHbhu4EgaMOjbmcgaMOgbmcga2jDtG5nIHRodeG7mWMgbmjDs20gYsOsbmggdGjGsOG7nW5nIChFY28sIEVjbyBQbHVzKSwgY2hp4bq/bSB04buJIGzhu4cgNDEsNCUgdOG7lW5nIHPhu5EgaMOgbmgga2jDoWNoIHbDoCAzODA5IGjDoG5oIGtow6FjaCBuaMOzbSB0aMawxqFuZyBnaWEsIGNoaeG6v20gdOG7iSBs4buHIDE0LDclIHThu5VuZyBz4buRIGjDoG5oIGtow6FjaC4gQsOqbiBj4bqhbmggxJHDsyBjw7MgMTE0MDMgaMOgbmgga2jDoWNoIGPDsyBN4bupYyDEkeG7mSBow6BpIGzDsm5nIHbhu4EgaMOjbmcgaMOgbmcga2jDtG5nIHRodeG7mWMgbmjDs20gc2F0aXNmaWVkIHRyb25nIMSRw7MgY8OzIDI3MTcgaMOgbmgga2jDoWNoIG5ow7NtIGLDrG5oIHRoxrDhu51uZywgY2hp4bq/bSAxMCw1JSB04buVbmcgc+G7kSBow6BuaCBraMOhY2ggdsOgIDg2ODYgbmfGsOG7nWkgbmjDs20gdGjGsMahbmcgZ2lhLCBjaGnhur9tIDMzLDQlIHThu5VuZyBz4buRIGjDoG5oIGtow6FjaC4gUXVhIGJp4buDdSDEkeG7kyBjw7MgdGjhu4MgdGjhuqV5IMSR4buRaSB24bubaSBuaOG7r25nIGjDoG5oIGtow6FjaCBjw7Mgc+G7kSDEkWnhu4NtIHbhu4EgTeG7qWMgxJHhu5kgaMOgaSBsw7JuZyB24buBIGjDo25nIGjDoG5nIGtow7RuZyB0aOG6pXAgdGh14buZYyBuaMOzbSBuZXV0cmFsIG9yIGRpc3NhdGlzZmllZCB0aMOsIHThu7cgbOG7hyBuaOG7r25nIGjDoG5oIGtow6FjaCBjw7MgSOG6oW5nIGR1IGzhu4tjaCB0csOqbiBtw6F5IGJheSB0aHXhu5ljIG5ow7NtIGLDrG5oIHRoxrDhu51uZyAgbmhp4buBdSBoxqFuIG5o4buvbmcgaMOgbmgga2jDoWNoIGPDsyBI4bqhbmcgZHUgbOG7i2NoIHRyw6puIG3DoXkgYmF5IHRodeG7mWMgbmjDs20gdGjGsMahbmcgZ2lhIG5oxrBuZyDEkeG7kWkgduG7m2kgbmjhu69uZyBow6BuaCBraMOhY2ggY8OzIE3hu6ljIMSR4buZIGjDoGkgbMOybmcgduG7gSBow6NuZyBow6BuZyBraMO0bmcgdGh14buZYyBuaMOzbSBzYXRpc2ZpZWQgdGjDrCB04bu3IGzhu4cgbmjhu69uZyBow6BuaCBraMOhY2ggY8OzICBI4bqhbmcgZHUgbOG7i2NoIHRyw6puIG3DoXkgYmF5IHRodeG7mWMgbmjDs20gYsOsbmggdGjGsOG7nW5nICDDrXQgaMahbiBuaOG7r25nIGjDoG5oIGtow6FjaCBjw7MgSOG6oW5nIGR1IGzhu4tjaCB0csOqbiBtw6F5IGJheSB0aHXhu5ljIG5ow7NtIHRoxrDGoW5nIGdpYSAsIMSR4buRaSB24bubaSB04burbmcgbeG7qWMgxJHhu5kgaMOgaSBsw7JuZyB24buBIGjDo25nIGjDoG5nIGtow7RuZyB0aMOsIG3hu6ljIMSR4buZIGNow6puaCBs4buHY2ggZ2nhu69hIDIgbmjDs20gbsOgeSB0xrDGoW5nIMSR4buRaSBs4bubbi4NCg0KIyMjIyAzLjQuOS4zIFLhu6dpIHJvIHTGsMahbmcgxJHhu5FpIChSaXNrIHJhdGlvKQ0KDQpgYGB7cn0NCmVwaXRhYihmLCBtZXRob2QgPSAicmlza3JhdGlvIikNCmBgYA0KDQpUaGVvIGvhur90IHF14bqjIHRyw6puIHRhIHRo4bqleSB04buJIGzhu4cgcuG7p2kgcm8gdMawxqFuZyDEkeG7kWkgKHJpc2sgcmF0aW8pIGPhu6dhIGjDoG5oIGtow6FjaCBjw7MgTeG7qWMgxJHhu5kgaMOgaSBsw7JuZyB24buBIGThu4tjaCB24bulIHRodeG7mWMgbmjDs20gc2F0aXNmaWVkIHRoZW8gSOG6oW5nIGR1IGzhu4tjaCB0csOqbiBtw6F5IGJheSBsw6AgMyw0NDkxODEgdOG7qWMgbMOgIHThu4kgbOG7hyBuaOG7r25nIGjDoG5oIGtow6FjaCBjw7MgTeG7qWMgxJHhu5kgaMOgaSBsw7JuZyB24buBIGjDo25nIGjDoG5nIGtow7RuZyB0cm9uZyBuaMOzbSBiw6xuaCB0aMaw4budbmcgbOG7m24gZ+G6pXAgMyw0NDkxODEgdOG7iSBs4buHIG5o4buvbmcgaMOgbmgga2jDoWNoIGPDsyBN4bupYyDEkeG7mSBow6BpIGzDsm5nIHbhu4EgaMOjbmcgaMOgbmcga2jDtG5nIHRodeG7mWMgbmjDs20gc2F0aXNmaWVkIHRyb25nIG5ow7NtIHRoxrDGoW5nIGdpYS4NCg0KIyMjIyAzLjQuOS40IFThu7cgbOG7hyBjaMOqbmggbOG7h2NoIChvZGQgcmF0aW8pDQoNCmBgYHtyfQ0KZXBpdGFiKGYsIG1ldGhvZCA9ICJvZGRzcmF0aW8iKQ0KYGBgDQoNClRoZW8ga+G6v3QgcXXhuqMgdHLDqm4gdGEgdGjhuqV5IHThu4kgbOG7hyBjaMOqbmggKG9kZCByYXRpbykgbMOgIDksMDM0MjY3IHThu6ljIHThu4kgbOG7hyBuaOG7r25nIGjDoG5oIGtow6FjaCBjw7MgTeG7qWMgxJHhu5kgaMOgaSBsw7JuZyB24buBIGjDo25nIGjDoG5nIGtow7RuZyB0aHXhu5ljIG5ow7NtIHNhdGlzZmllZCAvbmjhu69uZyBow6BuaCBraMOhY2ggY8OzIE3hu6ljIMSR4buZIGjDoGkgbMOybmcgduG7gSBow6NuZyBow6BuZyBraMO0bmcgdGh14buZYyBuaMOzbSBuZXV0cmFsIG9yIGRpc3NhdGlzZmllZCDhu58gbmjDs20gYsOsbmggdGjGsOG7nW5nIGzhu5tuIGfhuqVwIDksMDM0MjY3IHNvIHbhu5tpIHThu4kgbOG7hyBN4bupYyDEkeG7mSBow6BpIGzDsm5nIHbhu4EgaMOjbmcgaMOgbmcga2jDtG5nIHRodeG7mWMgbmjDs20gc2F0aXNmaWVkIC9uaOG7r25nIGjDoG5oIGtow6FjaCBjw7MgTeG7qWMgxJHhu5kgaMOgaSBsw7JuZyB24buBIGjDo25nIGjDoG5nIGtow7RuZyB0aHXhu5ljIG5ow7NtIG5ldXRyYWwgb3IgZGlzc2F0aXNmaWVkIOG7nyBuaMOzbSB0aMawxqFuZyBnaWEuDQoNCiMjIyMgMy40LjkuNSBUaOG7kW5nIGvDqiBzdXkgZGnhu4VuDQoNCktp4buDbSDEkeG7i25oIHTDrW5oIMSR4buZYyBs4bqtcCBjaG8gMiBiaeG6v24gKFNGKSB2w6AgKENsYXNzKToNCg0KUGjGsMahbmcgcGjDoXAgY2hpIGLDrG5oIHBoxrDGoW5nOiBHaeG6oyB0aHV54bq/dCBIbzogU0YgdsOgIENsYXNzIMSR4buZYyBs4bqtcA0KDQpgYGB7cn0NCmYgPC0gdGFibGUoREwkQ2xhc3MsIFNGKTsgZg0KYGBgDQoNCg0KYGBge3J9DQpjaGlzcS50ZXN0KGYpDQpgYGANCg0KS+G6v3QgcXXhuqMga2nhu4NtIMSR4buLbmggdHLDqm4gY2hvIHRo4bqleSBnacOhIHRy4buLIHThu5tpIGjhuqFuIHAtdmFsdWUgPCAyLjJlLTE2IDwgNSUgdsOsIHbhuq15IGNoxrBhIGPDsyBjxqEgc+G7nyDEkeG7gyB0aOG7q2Egbmjhuq1uIGdp4bqjIHRodXnhur90IEhvLCBuw7NpIGPDoWNoIGtow6FjIGdp4buvYSBz4buRIMSRaeG7g20gTeG7qWMgxJHhu5kgaMOgaSBsw7JuZyB24buBIGjDo25nIGjDoG5nIGtow7RuZyAoU0YpIHbDoCBI4bqhbmcgZHUgbOG7i2NoIHRyw6puIG3DoXkgYmF5IGPhu6dhIGjDoG5oIGtow6FjaCAoQ2xhc3MpIGPDsyBsacOqbiBxdWFuIHThu5tpIG5oYXUuDQoNCiMjIyAzLjQuMTAgVGjhu5FuZyBrw6ogbcO0IHThuqMgYmnhur9uIHBo4bulIHRodeG7mWM6IFNGIHbhu5tpIGJp4bq/biDEkeG7mWMgbOG6rXAgVHJhdmVsOiBN4bulYyDEkcOtY2ggY2h1eeG6v24gYmF5IGPhu6dhIGjDoG5oIGtow6FjaA0KDQojIyMjIDMuNC4xMC4xIELhuqNuZyB04bqnbiBz4buRLCB04bqnbiBzdeG6pXQgdsOgIGJp4buDdSDEkeG7kw0KDQpC4bqjbmcgdOG6p24gc+G7kToNCg0KYGBge3J9DQp5IDwtIHRhYmxlKERMJFRyYXZlbCwgU0YpOyB5DQpgYGANCg0KQuG6o25nIHThuqduIHN14bqldDoNCg0KYGBge3J9DQp5MSA8LSBwcm9wLnRhYmxlKHkpOyB5MQ0KYGBgDQoNClBow6JuIHBo4buRaSBiacOqbjoNCg0KYGBge3J9DQphZGRtYXJnaW5zKHkpDQpgYGANCg0KQmnhu4N1IMSR4buTIGPhu5l0IGvhur90IGjhu6NwIDIgYmnhur9uOg0KDQpgYGB7cn0NCmsgPC0gZGF0YS5mcmFtZShETCRBZ2UsIERMJEdlbmRlciwgREwkVHJhdmVsLCBETCRDdXN0b21lciwgREwkQ2xhc3MsIERMJFNGLCBETCRERElNLCBETCRJUywgU0YsIFRyYXZlbCkNCmsgfD4gZ2dwbG90KGFlcyh4PURMJFRyYXZlbCx5PWFmdGVyX3N0YXQoY291bnQpKSkgKyBnZW9tX2JhcihmaWxsPSJwaW5rIikgKyBnZW9tX3RleHQoYWVzKGxhYmVsID0gc2NhbGVzOjpwZXJjZW50KGFmdGVyX3N0YXQoY291bnQvc3VtKGNvdW50KSkpKSwgc3RhdCA9ICJjb3VudCIsIGNvbG9yID0gImJsdWUiLCB2anVzdCA9IC0gLjUpICsgZmFjZXRfZ3JpZCguIH5TRikgKyBsYWJzKHggPSAiTeG7pWMgxJHDrWNoIGNodXnhur9uIGJheSBj4bunYSBow6BuaCBraMOhY2giLHkgPSAiU+G7kSBuZ8aw4budaSIpDQpgYGANCg0KVGjDtG5nIHF1YSBi4bqjbmcgdOG6p24gc+G7kSwgdOG6p24gc3XhuqV0IHRyw6puIGPhu6dhIDIgYmnhur9uIE3hu6ljIMSR4buZIGjDoGkgbMOybmcgduG7gSBow6NuZyBow6BuZyBraMO0bmcgdsOgIE3hu6VjIMSRw61jaCBjaHV54bq/biBiYXkgY+G7p2EgaMOgbmgga2jDoWNoIChUcmF2ZWwpIHRhIHRo4bqleSBjw7MgMTQ1NzMgaMOgbmgga2jDoWNoIGPDsyBN4bupYyDEkeG7mSBow6BpIGzDsm5nIHbhu4EgaMOjbmcgaMOgbmcga2jDtG5nIHRodeG7mWMgbmjDs20gbmV1dHJhbCBvciBkaXNzYXRpc2ZpZWQgdHJvbmcgxJHDsyBjw7MgNzQyOCBow6BuaCBraMOhY2ggY8OzIE3hu6VjIMSRw61jaCBjaHV54bq/biBiYXkgdGh14buZYyBuaMOzbSBCdXNpbmVzcyB0cmF2ZWwsIGNoaeG6v20gdOG7iSBs4buHIDI4LDYlIHThu5VuZyBz4buRIGjDoG5oIGtow6FjaCB2w6AgNzE0NSBow6BuaCBraMOhY2ggbmjDs20gUGVyc29uYWwgdHJhdmVsLCBjaGnhur9tIHThu4kgbOG7hyAyNyw1JSB04buVbmcgc+G7kSBow6BuaCBraMOhY2guIELDqm4gY+G6oW5oIMSRw7MgY8OzIDExNDAzIGjDoG5oIGtow6FjaCBjw7MgTeG7qWMgxJHhu5kgaMOgaSBsw7JuZyB24buBIGjDo25nIGjDoG5nIGtow7RuZyB0aHXhu5ljIG5ow7NtIHNhdGlzZmllZCB0cm9uZyDEkcOzIGPDsyAxMDYxMCBow6BuaCBraMOhY2ggbmjDs20gQnVzaW5lc3MgdHJhdmVsLCBjaGnhur9tIDQwLDglIHThu5VuZyBz4buRIGjDoG5oIGtow6FjaCB2w6AgNzkzIG5nxrDhu51pIG5ow7NtIFBlcnNvbmFsIHRyYXZlbCwgY2hp4bq/bSAzLDElIHThu5VuZyBz4buRIGjDoG5oIGtow6FjaC4gUXVhIGJp4buDdSDEkeG7kyBjw7MgdGjhu4MgdGjhuqV5IMSR4buRaSB24bubaSBuaOG7r25nIGjDoG5oIGtow6FjaCBjw7MgTeG7qWMgxJHhu5kgaMOgaSBsw7JuZyB24buBIGjDo25nIGjDoG5nIGtow7RuZyB0aHXhu5ljIG5ow7NtIG5ldXRyYWwgb3IgZGlzc2F0aXNmaWVkIHbDoCBzYXRpc2ZpZWQgdGjDrCB04bu3IGzhu4cgbmjhu69uZyBow6BuaCBraMOhY2ggY8OzIE3hu6VjIMSRw61jaCBjaHV54bq/biBiYXkgdGh14buZYyBuaMOzbSBCdXNpbmVzcyB0cmF2ZWwgxJHhu4F1IG5oaeG7gXUgaMahbiBuaOG7r25nIGjDoG5oIGtow6FjaCBjw7MgTeG7pWMgxJHDrWNoIGNodXnhur9uIGJheSB0aHXhu5ljIG5ow7NtIFBlcnNvbmFsIHRyYXZlbC4NCg0KIyMjIyAzLjQuMTAuMiBS4bunaSBybyB0xrDGoW5nIMSR4buRaSAoUmlzayByYXRpbykNCg0KYGBge3J9DQplcGl0YWIoeSwgbWV0aG9kID0gInJpc2tyYXRpbyIpDQpgYGANCg0KVGhlbyBr4bq/dCBxdeG6oyB0csOqbiB0YSB0aOG6pXkgdOG7iSBs4buHIHLhu6dpIHJvIHTGsMahbmcgxJHhu5FpIChyaXNrIHJhdGlvKSBj4bunYSBow6BuaCBraMOhY2ggY8OzIE3hu6ljIMSR4buZIGjDoGkgbMOybmcgduG7gSBk4buLY2ggduG7pSB0aHXhu5ljIG5ow7NtIHNhdGlzZmllZCB0aGVvIE3hu6VjIMSRw61jaCBjaHV54bq/biBiYXkgbMOgIDAuMTY5ODM4MSB04bupYyBsw6AgdOG7iSBs4buHIG5o4buvbmcgaMOgbmgga2jDoWNoIGPDsyBN4bupYyDEkeG7mSBow6BpIGzDsm5nIHbhu4EgaMOjbmcgaMOgbmcga2jDtG5nIOG7nyBuaMOzbSBQZXJzb25hbCB0cmF2ZWwgdHJvbmcgbmjDs20gc2F0aXNmaWVkIGNo4buJIGLhurFuZyAxNiw5JSB04buJIGzhu4cgbmjhu69uZyBow6BuaCBraMOhY2ggY8OzIE3hu6ljIMSR4buZIGjDoGkgbMOybmcgduG7gSBow6NuZyBow6BuZyBraMO0bmcgdGh14buZYyBuaMOzbSBzYXRpc2ZpZWQgdHJvbmcgbmjDs20gQnVzaW5lc3MgdHJhdmVsIC4NCg0KIyMjIyAzLjQuMTAuMyBU4bu3IGzhu4cgY2jDqm5oIGzhu4djaCAob2RkIHJhdGlvKQ0KDQpgYGB7cn0NCmVwaXRhYih5LCBtZXRob2QgPSAib2Rkc3JhdGlvIikNCmBgYA0KDQpUaGVvIGvhur90IHF14bqjIHRyw6puIHRhIHRo4bqleSB04buJIGzhu4cgY2jDqm5oIChvZGQgcmF0aW8pIGzDoCAwLjA3NzcwMTE1IHThu6ljIHThu4kgbOG7hyBuaOG7r25nIGjDoG5oIGtow6FjaCBjw7MgTeG7qWMgxJHhu5kgaMOgaSBsw7JuZyB24buBIGjDo25nIGjDoG5nIGtow7RuZyB0aHXhu5ljIG5ow7NtIHNhdGlzZmllZCAvbmjhu69uZyBow6BuaCBraMOhY2ggY8OzIE3hu6ljIMSR4buZIGjDoGkgbMOybmcgduG7gSBow6NuZyBow6BuZyBraMO0bmcgdGh14buZYyBuaMOzbSBuZXV0cmFsIGRpc3NhdGlzZmllZCDhu58gbmjDs20gUGVyc29uYWwgdHJhdmVsIGNo4buJIGLhurFuZyA3LDc3JSBzbyB24bubaSB04buJIGzhu4cgTeG7qWMgxJHhu5kgaMOgaSBsw7JuZyB24buBIGjDo25nIGjDoG5nIGtow7RuZyB0aHXhu5ljIG5ow7NtIHNhdGlzZmllZCAvbmjhu69uZyBow6BuaCBraMOhY2ggY8OzIE3hu6ljIMSR4buZIGjDoGkgbMOybmcgduG7gSBow6NuZyBow6BuZyBraMO0bmcgdGh14buZYyBuaMOzbSBuZXV0cmFsIGRpc3NhdGlzZmllZCDhu58gbmjDs20gQnVpbmVzcyB0cmF2ZWwuDQoNCiMjIyMgMy40LjEwLjQgVGjhu5FuZyBrw6ogc3V5IGRp4buFbg0KDQpLaeG7g20gxJHhu4tuaCB0w61uaCDEkeG7mWMgbOG6rXAgY2hvIDIgYmnhur9uIChTRikgdsOgIChUcmF2ZWwpOg0KDQpQaMawxqFuZyBwaMOhcCBjaGkgYsOsbmggcGjGsMahbmc6IEdp4bqjIHRodXnhur90IEhvOiBTRiB2w6AgVHJhdmVsIMSR4buZYyBs4bqtcA0KDQpgYGB7cn0NCnkgPC0gdGFibGUoREwkVHJhdmVsLCBTRik7IHkNCmBgYA0KDQoNCmBgYHtyfQ0KY2hpc3EudGVzdCh5KQ0KYGBgDQoNCkvhur90IHF14bqjIGtp4buDbSDEkeG7i25oIHRyw6puIGNobyB0aOG6pXkgZ2nDoSB0cuG7iyB04bubaSBo4bqhbiBwLXZhbHVlIDwgMi4yZS0xNiA8IDUlIHbDrCB24bqteSBjaMawYSBjw7MgY8ahIHPhu58gxJHhu4MgdGjhu6thIG5o4bqtbiBnaeG6oyB0aHV54bq/dCBIbywgbsOzaSBjw6FjaCBraMOhYyBnaeG7r2Egc+G7kSDEkWnhu4NtIE3hu6ljIMSR4buZIGjDoGkgbMOybmcgduG7gSBow6NuZyBow6BuZyBraMO0bmcgKFNGKSB2w6AgTeG7pWMgxJHDrWNoIGPhu6dhIGNodXnhur9uIGJheSAoVHJhdmVsKSBjw7MgbGnDqm4gcXVhbiB04bubaSBuaGF1Lg0KDQojIyMgMy40LjExIFRo4buRbmcga8OqIG3DtCB04bqjIGJp4bq/biBwaOG7pSB0aHXhu5ljOiBTRiB24bubaSBiaeG6v24gxJHhu5ljIGzhuq1wIEN1c3RvbWVyOiBMb+G6oWkga2jDoWNoIGjDoG5nDQoNCiMjIyMgMy40LjExLjEgQuG6o25nIHThuqduIHPhu5EsIHThuqduIHN14bqldCB2w6AgYmnhu4N1IMSR4buTDQoNCkLhuqNuZyB04bqnbiBz4buROg0KDQpgYGB7cn0NCmggPC0gdGFibGUoREwkQ3VzdG9tZXIsIFNGKTsgaA0KYGBgDQoNCkLhuqNuZyB04bqnbiBzdeG6pXQ6DQoNCmBgYHtyfQ0KaDEgPC0gcHJvcC50YWJsZShoKTsgaDENCmBgYA0KDQpQaMOibiBwaOG7kWkgYmnDqm46DQoNCmBgYHtyfQ0KYWRkbWFyZ2lucyhoKQ0KYGBgDQoNCkJp4buDdSDEkeG7kyBj4buZdCBr4bq/dCBo4bujcCAyIGJp4bq/bjoNCg0KYGBge3J9DQprIDwtIGRhdGEuZnJhbWUoREwkQWdlLCBETCRHZW5kZXIsIERMJFRyYXZlbCwgREwkQ3VzdG9tZXIsIERMJENsYXNzLCBETCRTRiwgREwkRERJTSwgREwkSVMsIFNGLCBDdXN0b21lcikNCmsgfD4gZ2dwbG90KGFlcyh4PURMJEN1c3RvbWVyLHk9YWZ0ZXJfc3RhdChjb3VudCkpKSArIGdlb21fYmFyKGZpbGw9InBpbmsiKSArIGdlb21fdGV4dChhZXMobGFiZWwgPSBzY2FsZXM6OnBlcmNlbnQoYWZ0ZXJfc3RhdChjb3VudC9zdW0oY291bnQpKSkpLCBzdGF0ID0gImNvdW50IiwgY29sb3IgPSAiYmx1ZSIsIHZqdXN0ID0gLSAuNSkgKyBmYWNldF9ncmlkKC4gflNGKSArIGxhYnMoeCA9ICJMb+G6oWkga2jDoWNoIGjDoG5nIix5ID0gIlPhu5EgbmfGsOG7nWkiKQ0KYGBgDQoNClRow7RuZyBxdWEgYuG6o25nIHThuqduIHPhu5EsIHThuqduIHN14bqldCB0csOqbiBj4bunYSAyIGJp4bq/biBN4bupYyDEkeG7mSBow6BpIGzDsm5nIGPhu6dhIGjDoG5oIGtow6FjaCDEkeG7kWkgduG7m2kgaMOjbmcgaMOgbmcga2jDtG5nIChTRikgdsOgIExv4bqhaSBraMOhY2ggaMOgbmcgKEN1c3RvbWVyKSB0YSB0aOG6pXkgY8OzIDE0NTczIGjDoG5oIGtow6FjaCBjw7MgTeG7qWMgxJHhu5kgaMOgaSBsw7JuZyBj4bunYSBow6BuaCBraMOhY2ggxJHhu5FpIHbhu5tpIGjDo25nIGjDoG5nIGtow7RuZyB0aHXhu5ljIG5ow7NtIG5ldXRyYWwgb3IgZGlzc2F0aXNmaWVkIHRyb25nIMSRw7MgY8OzIDM1OTEgbMOgIGjDoG5oIGtow6FjaCBkaXNsb3lhbCBDdXN0b21lciwgY2hp4bq/bSB04buJIGzhu4cgMTMsOCUgdOG7lW5nIHPhu5EgaMOgbmgga2jDoWNoIHbDoCAxMDk4MiBow6BuaCBraMOhY2ggTG95YWwgQ3VzdG9tZXIsIGNoaeG6v20gdOG7iSBs4buHIDQyLDMlIHThu5VuZyBz4buRIGjDoG5oIGtow6FjaC4gQsOqbiBj4bqhbmggxJHDsyBjw7MgMTE0MDMgaMOgbmgga2jDoWNoIGPDsyBN4bupYyDEkeG7mSBow6BpIGzDsm5nIGPhu6dhIGjDoG5oIGtow6FjaCDEkeG7kWkgduG7m2kgaMOjbmcgaMOgbmcga2jDtG5nIHRodeG7mWMgbmjDs20gc2F0aXNmaWVkIHRyb25nIMSRw7MgY8OzIDEyMDggaMOgbmgga2jDoWNoIGRpc2xveWFsIEN1c3RvbWVyLCBjaGnhur9tIDQsNyUgdOG7lW5nIHPhu5EgaMOgbmgga2jDoWNoIHbDoCAxMDE5NSBow6BuaCBraMOhY2ggTG95YWwgQ3VzdG9tZXIsIGNoaeG6v20gMzksMiUgdOG7lW5nIHPhu5EgaMOgbmgga2jDoWNoLiBRdWEgYmnhu4N1IMSR4buTIGPDsyB0aOG7gyB0aOG6pXkgxJHhu5FpIHbhu5tpIG5o4buvbmcgaMOgbmgga2jDoWNoIGPDsyBN4bupYyDEkeG7mSBow6BpIGzDsm5nIGPhu6dhIGjDoG5oIGtow6FjaCDEkeG7kWkgduG7m2kgaMOjbmcgaMOgbmcga2jDtG5nIHRodeG7mWMgbmjDs20gbmV1dHJhbCBvciBkaXNzYXRpc2ZpZWQgdsOgIG5ow7NtIHNhdGlzZmllZCB0aMOsIHThu7cgbOG7hyBuaOG7r25nIGjDoG5oIGtow6FjaCBMb3lhbCBDdXN0b21lciDEkeG7gXUgbmhp4buBdSBoxqFuIG5o4buvbmcgaMOgbmgga2jDoWNoIGRpc2xveWFsIEN1c3RvbWVyLCDEkeG7kWkgduG7m2kgdOG7q25nIE3hu6ljIMSR4buZIGjDoGkgbMOybmcgY+G7p2EgaMOgbmgga2jDoWNoIMSR4buRaSB24bubaSBow6NuZyBow6BuZyBraMO0bmcgdGjDrCBt4bupYyDEkeG7mSBjaMOqbmggbOG7h2NoIGdp4buvYSAyIG5ow7NtIG7DoHkgdMawxqFuZyDEkeG7kWkgbOG7m24uDQoNCiMjIyMgMy40LjExLjIgUuG7p2kgcm8gdMawxqFuZyDEkeG7kWkgKFJpc2sgcmF0aW8pDQoNCmBgYHtyfQ0KZXBpdGFiKGgsIG1ldGhvZCA9ICJyaXNrcmF0aW8iKQ0KYGBgDQoNClRoZW8ga+G6v3QgcXXhuqMgdHLDqm4gdGEgdGjhuqV5IHThu4kgbOG7hyBy4bunaSBybyB0xrDGoW5nIMSR4buRaSAocmlzayByYXRpbykgY+G7p2EgaMOgbmgga2jDoWNoIGPDsyBN4bupYyDEkeG7mSBow6BpIGzDsm5nIMSR4buRaSB24bubaSBow6NuZyBow6BuZyBraMO0bmcgdGh14buZYyBuaMOzbSBzYXRpc2ZpZWQgdGhlbyBMb+G6oWkga2jDoWNoIGjDoG5nIGzDoCAxLDkxMjUyMyB04bupYyBsw6AgdOG7iSBs4buHIG5o4buvbmcgaMOgbmgga2jDoWNoIExveWFsIEN1c3RvbWVyIGPDsyBN4bupYyDEkeG7mSBow6BpIGzDsm5nIMSR4buRaSB24bubaSBow6NuZyBow6BuZyBraMO0bmcgdGh14buZYyBuaMOzbSBzYXRpc2ZpZWQgbOG7m24gaMahbiBraG/huqNuZyA5MSwyNSUgdOG7iSBs4buHIG5o4buvbmcgaMOgbmgga2jDoWNoIGRpc2xveWFsIEN1c3RvbWVyIGPDsyBN4bupYyDEkeG7mSBow6BpIGzDsm5nIHbhu4EgaMOjbmcgaMOgbmcga2jDtG5nIHRyb25nIG5ow7NtIHNhdGlzZmllZC4NCg0KIyMjIyAzLjQuMTEuMyBU4bu3IGzhu4cgY2jDqm5oIGzhu4djaCAob2RkIHJhdGlvKQ0KDQpgYGB7cn0NCmVwaXRhYihoLCBtZXRob2QgPSAib2Rkc3JhdGlvIikNCmBgYA0KDQpUaGVvIGvhur90IHF14bqjIHRyw6puIHRhIHRo4bqleSB04buJIGzhu4cgY2jDqm5oIChvZGQgcmF0aW8pIGzDoCAyLDc1OTY1MiB04bupYyB04buJIGzhu4cgbmjhu69uZyBow6BuaCBraMOhY2ggY8OzIE3hu6ljIMSR4buZIGjDoGkgbMOybmcgduG7gSBow6NuZyBow6BuZyBraMO0bmcgbmjDs20gc2F0aXNmaWVkL25o4buvbmcgaMOgbmgga2jDoWNoIGPDsyBN4bupYyDEkeG7mSBow6BpIGzDsm5nIHbhu4EgaMOjbmcgaMOgbmcga2jDtG5nIG5ow7NtIG5ldXRyYWwgb3IgZGlzc2F0aXNmaWVkIOG7nyBraMOhY2ggaMOgbmcgTG95YWwgQ3VzdG9tZXIgbOG7m24gZ+G6pXAgMiw3NTk2NTIgbOG6p24gc28gduG7m2kgdOG7iSBs4buHIE3hu6ljIMSR4buZIGjDoGkgbMOybmcgduG7gSBow6NuZyBow6BuZyBraMO0bmcgbmjDs20gc2F0aXNmaWVkL25o4buvbmcgaMOgbmgga2jDoWNoIGPDsyBN4bupYyDEkeG7mSBow6BpIGzDsm5nIHbhu4EgaMOjbmcgaMOgbmcga2jDtG5nIG5ow7NtIG5ldXRyYWwgb3IgZGlzc2F0aXNmaWVkIOG7nyBraMOhY2ggaMOgbmcgDQpkaXNsb3lhbCBDdXN0b21lci4NCg0KIyMjIyAzLjQuMTEuNCBUaOG7kW5nIGvDqiBzdXkgZGnhu4VuDQoNCktp4buDbSDEkeG7i25oIHTDrW5oIMSR4buZYyBs4bqtcCBjaG8gMiBiaeG6v24gKFNGKSB2w6AgKEN1c3RvbWVyKToNCg0KUGjGsMahbmcgcGjDoXAgY2hpIGLDrG5oIHBoxrDGoW5nOiBHaeG6oyB0aHV54bq/dCBIbzogKFNGKSB2w6AgKEN1c3RvbWVyKQ0KDQpgYGB7cn0NCmggPC0gdGFibGUoREwkQ3VzdG9tZXIsIFNGKTsgaA0KYGBgDQoNCg0KYGBge3J9DQpjaGlzcS50ZXN0KGgpDQpgYGANCg0KS+G6v3QgcXXhuqMga2nhu4NtIMSR4buLbmggdHLDqm4gY2hvIHRo4bqleSBnacOhIHRy4buLIHThu5tpIGjhuqFuIHAtdmFsdWUgPCAyLjJlLTE2IDwgNSUgdsOsIHbhuq15IGNoxrBhIGPDsyBjxqEgc+G7nyDEkeG7gyB0aOG7q2Egbmjhuq1uIGdp4bqjIHRodXnhur90IEhvLCBuw7NpIGPDoWNoIGtow6FjIE3hu6ljIMSR4buZIGjDoGkgbMOybmcgduG7gSBow6NuZyBow6BuZyBraMO0bmcgKFNGKSB2w6AgTG/huqFpIGtow6FjaCBow6BuZyAoQ3VzdG9tZXIpIGPDsyBsacOqbiBxdWFuIHThu5tpIG5oYXUuDQoNCiMjIyAzLjQuMTIgVGjhu5FuZyBrw6ogbcO0IHThuqMgYmnhur9uIHBo4bulIHRodeG7mWM6IFNGIHbhu5tpIGJp4bq/biDEkeG7mWMgbOG6rXAgQWdlDQoNCiMjIyMgMy40LjEyLjEgTcOjIGhvw6EgYmnhur9uIMSR4buZIHR14buVaSAoQWdlKSB04burIMSR4buLbmggbMaw4bujbmcgc2FuZyDEkeG7i25oIHTDrW5oIA0KDQpW4bubaSBk4buvIGxp4buHdSBn4buRYywgYmnhur9uIMSR4buZIHR14buVaSAoQWdlKSBsw6AgYmnhur9uIMSR4buLbmggbMaw4bujbmcgbmjhuq1uIGPDoWMgZ2nDoSB0cuG7iyB04burIDcgxJHhur9uIDg1IHR14buVaS4gVMOhYyBnaeG6oyDEkeG6t3QgcXV5IMaw4bubYyB24buBIHZp4buHYyBtw6MgaG/DoSBiaeG6v24gKGFnZSkgbmjGsCBzYXU6IFR14buVaSBuaMOzbSB0cnVuZyBuacOqbiAodHJ1bmduaWVuKTogxJHhu5kgdHXhu5VpIHThu6sgdHLDqm4gNDAgdHXhu5VpIMSR4bq/biA4NSB0deG7lWkuIFR14buVaSBuaMOzbSB0aGFuaCBuacOqbiAodGhhbmhuaWVuKTogxJHhu5kgdHXhu5VpIHThu6sgdHLDqm4gNyB0deG7lWkgxJHhur9uIDQwIHR14buVaS4NCg0KYGBge3J9DQpBZ2UgPC0gY3V0KERMJEFnZSwgYnJlYWtzID0gYyg3LDQwLDg1KSwgbGFiZWxzPWMoInRoYW5obmllbiIsInRydW5nbmllbiIpKQ0KdGFibGUoQWdlKQ0KYGBgDQoNCiMjIyMgMy40LjEyLjIgQuG6o25nIHThuqduIHPhu5EsIHThuqduIHN14bqldCB2w6AgYmnhu4N1IMSR4buTDQoNCkLhuqNuZyB04bqnbiBz4buROg0KDQpgYGB7cn0NCnggPC0gdGFibGUoQWdlLCBTRik7IHgNCmBgYA0KDQpC4bqjbmcgdOG6p24gc3XhuqV0Og0KDQpgYGB7cn0NCngxIDwtIHByb3AudGFibGUoeCk7IHgxDQpgYGANCg0KUGjDom4gcGjhu5FpIGJpw6puOg0KDQpgYGB7cn0NCmFkZG1hcmdpbnMoeCkNCmBgYA0KDQpCaeG7g3UgxJHhu5MgY+G7mXQga+G6v3QgaOG7o3AgMiBiaeG6v246DQoNCmBgYHtyfQ0KbSA8LSBkYXRhLmZyYW1lKERMJEdlbmRlciwgREwkVHJhdmVsLCBETCRDdXN0b21lciwgREwkQ2xhc3MsIERMJFNGLCBETCRBZ2UsIERMJERESU0sIERMJElTLCBTRiwgQWdlKQ0KbSB8PiBnZ3Bsb3QoYWVzKHg9QWdlLHk9YWZ0ZXJfc3RhdChjb3VudCkpKSArIGdlb21fYmFyKGZpbGw9ImdyZWVuIikgKyBnZW9tX3RleHQoYWVzKGxhYmVsID0gc2NhbGVzOjpwZXJjZW50KGFmdGVyX3N0YXQoY291bnQvc3VtKGNvdW50KSkpKSwgc3RhdCA9ICJjb3VudCIsIGNvbG9yID0gImJsdWUiLCB2anVzdCA9IC0gLjUpICsgZmFjZXRfZ3JpZCguIH5TRikgKyBsYWJzKHggPSAixJDhu5kgdHXhu5VpIix5ID0gIlPhu5EgbmfGsOG7nWkiKQ0KYGBgDQoNClRow7RuZyBxdWEgYuG6o25nIHThuqduIHPhu5EsIHThuqduIHN14bqldCB0csOqbiBj4bunYSAyIGJp4bq/biBN4bupYyDEkeG7mSBow6BpIGzDsm5nIGPhu6dhIGjDoG5oIGtow6FjaCDEkeG7kWkgduG7m2kgaMOjbmcgaMOgbmcga2jDtG5nIChTRikgdsOgIMSQ4buZIHR14buVaSAoQWdlKSB0YSB0aOG6pXkgY8OzIDE0NDU5IGjDoG5oIGtow6FjaCBjw7MgTeG7qWMgxJHhu5kgaMOgaSBsw7JuZyBj4bunYSBow6BuaCBraMOhY2ggxJHhu5FpIHbhu5tpIGjDo25nIGjDoG5nIGtow7RuZyB0aHXhu5ljIG5ow7NtIG5ldXRyYWwgb3IgZGlzc2F0aXNmaWVkIHRyb25nIMSRw7MgY8OzIDgzMzQgaMOgbmgga2jDoWNoIHRodeG7mWMgbmjDs20gdGhhbmggbmnDqm4sIGNoaeG6v20gdOG7iSBs4buHIDMyLDA4JSB04buVbmcgc+G7kSBow6BuaCBraMOhY2ggdsOgIDYxMjUgaMOgbmgga2jDoWNoIHRydW5nIG5pw6puLCBjaGnhur9tIHThu4kgbOG7hyAyMyw1OCUgdOG7lW5nIHPhu5EgaMOgbmgga2jDoWNoLiBCw6puIGPhuqFuaCDEkcOzIGPDsyAxMTM5NCBow6BuaCBraMOhY2ggY8OzIE3hu6ljIMSR4buZIGjDoGkgbMOybmcgY+G7p2EgaMOgbmgga2jDoWNoIMSR4buRaSB24bubaSBow6NuZyBow6BuZyBraMO0bmcgdGh14buZYyBuaMOzbSBzYXRpc2ZpZWQgdHJvbmcgxJHDsyBjw7MgNDg1NSBow6BuaCBraMOhY2ggdGh14buZYyBuaMOzbSB0aGFuaCBuacOqbiwgY2hp4bq/bSAxOCw2OSUgdOG7lW5nIHPhu5EgaMOgbmgga2jDoWNoIHbDoCA2NTM5IGjDoG5oIGtow6FjaCB0aHXhu5ljIG5ow7NtIHRydW5nIG5pw6puLCBjaGnhur9tIDI1LDE3JSB04buVbmcgc+G7kSBow6BuaCBraMOhY2guIFF1YSBiaeG7g3UgxJHhu5MgY8OzIHRo4buDIHRo4bqleSDEkeG7kWkgduG7m2kgbmjhu69uZyBow6BuaCBraMOhY2ggY8OzIE3hu6ljIMSR4buZIGjDoGkgbMOybmcgY+G7p2EgaMOgbmgga2jDoWNoIMSR4buRaSB24bubaSBow6NuZyBow6BuZyBraMO0bmcgdGh14buZYyBuaMOzbSBuZXV0cmFsIG9yIGRpc3NhdGlzZmllZCB0aMOsIHThu7cgbOG7hyBuaOG7r25nIGjDoG5oIGtow6FjaCB0aGFuaCBuacOqbiBuaGnhu4F1IGjGoW4gbmjhu69uZyBow6BuaCBraMOhY2ggdHJ1bmcgbmnDqm4gbmjGsG5nIMSR4buRaSB24bubaSBuaOG7r25nIGjDoG5oIGtow6FjaCBjw7MgTeG7qWMgxJHhu5kgaMOgaSBsw7JuZyBj4bunYSBow6BuaCBraMOhY2ggxJHhu5FpIHbhu5tpIGjDo25nIGjDoG5nIGtow7RuZyB0aHXhu5ljIG5ow7NtIHNhdGlzZmllZCB0aMOsIHThu7cgbOG7hyBuaOG7r25nIGjDoG5oIGtow6FjaCB0aGFuaCBuacOqbiDDrXQgaMahbiBuaOG7r25nIGjDoG5oIGtow6FjaCB0cnVuZyBuacOqbi4NCg0KIyMjIyAzLjQuMTIuMyBS4bunaSBybyB0xrDGoW5nIMSR4buRaSAoUmlzayByYXRpbykNCg0KYGBge3J9DQplcGl0YWIoeCwgbWV0aG9kID0gInJpc2tyYXRpbyIpDQpgYGANCg0KVGhlbyBr4bq/dCBxdeG6oyB0csOqbiB0YSB0aOG6pXkgdOG7iSBs4buHIHLhu6dpIHJvIHTGsMahbmcgxJHhu5FpIChyaXNrIHJhdGlvKSBj4bunYSBow6BuaCBraMOhY2ggY8OzIG3hu6ljIMSR4buZIGjDoGkgbMOybmcgduG7gSBow6NuZyBow6BuZyBraMO0bmcg4bufIG5ow7NtIHNhdGlzZmllZCB0aGVvIMSR4buZIHR14buVaSBsw6AgMSw0MDI2OTQgdOG7qWMgbMOgIHThu4kgbOG7hyBuaOG7r25nIGjDoG5oIGtow6FjaCBjw7MgbeG7qWMgxJHhu5kgaMOgaSBsw7JuZyB24buBIGjDo25nIGjDoG5nIGtow7RuZyDhu58gbmjDs20gc2F0aXNmaWVkIHRyb25nIG5ow7NtIHR14buVaSB0cnVuZyBuacOqbiBs4bubbiBoxqFuIDQwLDI3JSB04buJIGzhu4cgbmjhu69uZyBow6BuaCBraMOhY2ggY8OzIG3hu6ljIMSR4buZIGjDoGkgbMOybmcgduG7gSBow6NuZyBow6BuZyBraMO0bmcg4bufIG5ow7NtIHNhdGlzZmllZCB0cm9uZyBuaMOzbSB0deG7lWkgdGhhbmggbmnDqm4uDQoNCiMjIyMgMy40LjEyLjQgVOG7tyBs4buHIGNow6puaCBs4buHY2ggKG9kZCByYXRpbykNCg0KYGBge3J9DQplcGl0YWIoeCwgbWV0aG9kID0gIm9kZHNyYXRpbyIpDQpgYGANCg0KVGhlbyBr4bq/dCBxdeG6oyB0csOqbiB0YSB0aOG6pXkgdOG7iSBs4buHIGNow6puaCAob2RkIHJhdGlvKSBsw6AgMS44MzI2MDggdOG7qWMgdOG7iSBs4buHIG5o4buvbmcgaMOgbmgga2jDoWNoIGPDsyBt4bupYyDEkeG7mSBow6BpIGzDsm5nIHbhu4EgaMOjbmcgaMOgbmcga2jDtG5nIOG7nyBuaMOzbSBzYXRpc2ZpZWQvbmjhu69uZyBow6BuaCBraMOhY2ggY8OzIG3hu6ljIMSR4buZIGjDoGkgbMOybmcgduG7gSBk4buLY2ggduG7pSB0csOqbiBjaHV54bq/biBiYXkg4bufIG5ow7NtIG5ldXRyYWwgb3IgZGlzc2F0aXNmaWVkIGPhu6dhIGtow6FjaCBow6BuZyB0cnVuZyBuacOqbiBs4bubbiBoxqFuIGtob+G6o25nIDgzLDI2JSBzbyB24bubaSB04buJIGzhu4cgbeG7qWMgxJHhu5kgaMOgaSBsw7JuZyB24buBIGjDo25nIGjDoG5nIGtow7RuZyDhu58gbmjDs20gc2F0aXNmaWVkL25o4buvbmcgaMOgbmgga2jDoWNoIGPDsyBt4bupYyDEkeG7mSBow6BpIGzDsm5nIHbhu4EgZOG7i2NoIHbhu6UgdHLDqm4gY2h1eeG6v24gYmF5IOG7nyBuaMOzbSBuZXV0cmFsIG9yIGRpc3NhdGlzZmllZCAg4bufIG5ow7NtIHR14buVaSB0aGFuaCBuacOqbi4NCg0KIyMjIyAzLjQuMTIuNSBUaOG7kW5nIGvDqiBzdXkgZGnhu4VuDQoNCktp4buDbSDEkeG7i25oIHTDrW5oIMSR4buZYyBs4bqtcCBjaG8gMiBiaeG6v24gKFNGKSB2w6AgKEFnZSk6DQoNClBoxrDGoW5nIHBow6FwIGNoaSBiw6xuaCBwaMawxqFuZzogR2nhuqMgdGh1eeG6v3QgSG86IFNGIHbDoCBBZ2UgxJHhu5ljIGzhuq1wDQoNCmBgYHtyfQ0KeCA8LSB0YWJsZShBZ2UsIFNGKTt4DQpgYGANCg0KYGBge3J9DQpjaGlzcS50ZXN0KHgpDQpgYGANCg0KS+G6v3QgcXXhuqMga2nhu4NtIMSR4buLbmggdHLDqm4gY2hvIHRo4bqleSBnacOhIHRy4buLIHThu5tpIGjhuqFuIHAtdmFsdWUgPCAyLjJlLTE2IDwgNSUgdsOsIHbhuq15IGNoxrBhIGPDsyBjxqEgc+G7nyDEkeG7gyB0aOG7q2Egbmjhuq1uIGdp4bqjIHRodXnhur90IEhvLCBuw7NpIGPDoWNoIGtow6FjIGdp4buvYSBt4bupYyDEkeG7mSBow6BpIGzDsm5nIHbhu4EgaMOjbmcgaMOgbmcga2jDtG5nIChTRikgdsOgIMSR4buZIHR14buVaSAoQWdlKSBjw7MgbGnDqm4gcXVhbiB04bubaSBuaGF1Lg0KDQojIyMgMy40LjEzIFRo4buRbmcga8OqIG3DtCB04bqjIGJp4bq/biBwaOG7pSB0aHXhu5ljOiBTRiB24bubaSBiaeG6v24gxJHhu5ljIGzhuq1wIElTDQoNCiMjIyMgMy40LjEzLjEgQuG6o25nIHThuqduIHPhu5EsIHThuqduIHN14bqldCB2w6AgYmnhu4N1IMSR4buTDQoNCkLhuqNuZyB04bqnbiBz4buROg0KDQpgYGB7cn0NCmwgPC0gdGFibGUoSVMsIFNGKTsgbA0KYGBgDQoNCkLhuqNuZyB04bqnbiBzdeG6pXQ6DQoNCmBgYHtyfQ0KbDEgPC0gcHJvcC50YWJsZShsKTsgbDENCmBgYA0KDQpQaMOibiBwaOG7kWkgYmnDqm46DQoNCmBgYHtyfQ0KYWRkbWFyZ2lucyhsKQ0KYGBgDQoNCkJp4buDdSDEkeG7kyBj4buZdCBr4bq/dCBo4bujcCAyIGJp4bq/bjoNCg0KYGBge3J9DQptIDwtIGRhdGEuZnJhbWUoREwkR2VuZGVyLCBETCRUcmF2ZWwsIERMJEN1c3RvbWVyLCBETCRDbGFzcywgREwkU0YsIERMJEFnZSwgREwkRERJTSwgREwkSVMsIFNGLCBJUykNCm0gfD4gZ2dwbG90KGFlcyh4PUlTLHk9YWZ0ZXJfc3RhdChjb3VudCkpKSArIGdlb21fYmFyKGZpbGw9ImdyZWVuIikgKyBnZW9tX3RleHQoYWVzKGxhYmVsID0gc2NhbGVzOjpwZXJjZW50KGFmdGVyX3N0YXQoY291bnQvc3VtKGNvdW50KSkpKSwgc3RhdCA9ICJjb3VudCIsIGNvbG9yID0gImJsdWUiLCB2anVzdCA9IC0gLjUpICsgZmFjZXRfZ3JpZCguIH5TRikgKyBsYWJzKHggPSAiU+G7kSDEkWnhu4NtIHbhu4EgbeG7qWMgxJHhu5kgaMOgaSBsw7JuZyB24buBIGThu4tjaCB24bulIHRyw6puIGNodXnhur9uIGJheSIseSA9ICJT4buRIG5nxrDhu51pIikNCmBgYA0KDQpUaMO0bmcgcXVhIGLhuqNuZyB04bqnbiBz4buRLCB04bqnbiBzdeG6pXQgdHLDqm4gY+G7p2EgMiBiaeG6v24gTeG7qWMgxJHhu5kgaMOgaSBsw7JuZyBj4bunYSBow6BuaCBraMOhY2ggxJHhu5FpIHbhu5tpIGjDo25nIGjDoG5nIGtow7RuZyAoU0YpIHbDoCBT4buRIMSRaeG7g20gduG7gSBt4bupYyDEkeG7mSBow6BpIGzDsm5nIHbhu4EgZOG7i2NoIHbhu6UgdHLDqm4gY2h1eeG6v24gYmF5IChJUykgdGEgdGjhuqV5IGPDsyAxNDU3MSBow6BuaCBraMOhY2ggY8OzIE3hu6ljIMSR4buZIGjDoGkgbMOybmcgY+G7p2EgaMOgbmgga2jDoWNoIMSR4buRaSB24bubaSBow6NuZyBow6BuZyBraMO0bmcgdGh14buZYyBuaMOzbSBuZXV0cmFsIG9yIGRpc3NhdGlzZmllZCB0cm9uZyDEkcOzIGPDsyA3MDI2IGjDoG5oIGtow6FjaCBjw7MgU+G7kSDEkWnhu4NtIHbhu4EgbeG7qWMgxJHhu5kgaMOgaSBsw7JuZyB24buBIGThu4tjaCB24bulIHRyw6puIGNodXnhur9uIGJheSB0aHXhu5ljIG5ow7NtIHRo4bqlcCAoZMaw4bubaSAzIMSRaeG7g20pLCBjaGnhur9tIHThu4kgbOG7hyAyNyUgdOG7lW5nIHPhu5EgaMOgbmgga2jDoWNoIHbDoCA3NTQ1IGjDoG5oIGtow6FjaCBjw7MgU+G7kSDEkWnhu4NtIHbhu4EgbeG7qWMgxJHhu5kgaMOgaSBsw7JuZyB24buBIGThu4tjaCB24bulIHRyw6puIGNodXnhur9uIGJheSB0aHXhu5ljIG5ow7NtIGNhbywgY2hp4bq/bSB04buJIGzhu4cgMjklIHThu5VuZyBz4buRIGjDoG5oIGtow6FjaC4gQsOqbiBj4bqhbmggxJHDsyBjw7MgMTE0MDMgaMOgbmgga2jDoWNoIGPDsyBN4bupYyDEkeG7mSBow6BpIGzDsm5nIGPhu6dhIGjDoG5oIGtow6FjaCDEkeG7kWkgduG7m2kgaMOjbmcgaMOgbmcga2jDtG5nIHRodeG7mWMgbmjDs20gc2F0aXNmaWVkIHRyb25nIMSRw7MgY8OzIDI2MjAgaMOgbmgga2jDoWNoIGPDsyBT4buRIMSRaeG7g20gduG7gSBt4bupYyDEkeG7mSBow6BpIGzDsm5nIHbhu4EgZOG7i2NoIHbhu6UgdHLDqm4gY2h1eeG6v24gYmF5IHRodeG7mWMgbmjDs20gdGjhuqVwLCBjaGnhur9tIDEwLDElIHThu5VuZyBz4buRIGjDoG5oIGtow6FjaCB2w6AgODc4MyBow6BuaCBraMOhY2ggY8OzIFPhu5EgxJFp4buDbSB24buBIG3hu6ljIMSR4buZIGjDoGkgbMOybmcgduG7gSBk4buLY2ggduG7pSB0csOqbiBjaHV54bq/biBiYXkgdGh14buZYyBuaMOzbSBjYW8sIGNoaeG6v20gMzMsOCUgdOG7lW5nIHPhu5EgaMOgbmgga2jDoWNoLiBRdWEgYmnhu4N1IMSR4buTIGPDsyB0aOG7gyB0aOG6pXkgxJHhu5FpIHbhu5tpIG5o4buvbmcgaMOgbmgga2jDoWNoIGPDsyBN4bupYyDEkeG7mSBow6BpIGzDsm5nIGPhu6dhIGjDoG5oIGtow6FjaCDEkeG7kWkgduG7m2kgaMOjbmcgaMOgbmcga2jDtG5nIHRodeG7mWMgbmjDs20gbmV1dHJhbCBvciBkaXNzYXRpc2ZpZWQgdsOgIHNhdGlzZmllZCB0aMOsIHThu7cgbOG7hyBuaOG7r25nIGjDoG5oIGtow6FjaCBjw7MgU+G7kSDEkWnhu4NtIHbhu4EgbeG7qWMgxJHhu5kgaMOgaSBsw7JuZyB24buBIGThu4tjaCB24bulIHRyw6puIGNodXnhur9uIGJheSB0aHXhu5ljIG5ow7NtIGNhbyBuaGnhu4F1IGjGoW4gbmjhu69uZyBow6BuaCBraMOhY2ggY8OzIFPhu5EgxJFp4buDbSB24buBIG3hu6ljIMSR4buZIGjDoGkgbMOybmcgduG7gSBk4buLY2ggduG7pSB0csOqbiBjaHV54bq/biBiYXkgdGh14buZYyBuaMOzbSB0aOG6pXAuDQoNCiMjIyMgMy40LjEzLjIgUuG7p2kgcm8gdMawxqFuZyDEkeG7kWkgKFJpc2sgcmF0aW8pDQoNCmBgYHtyfQ0KZXBpdGFiKGwsIG1ldGhvZCA9ICJyaXNrcmF0aW8iKQ0KYGBgDQoNClRoZW8ga+G6v3QgcXXhuqMgdHLDqm4gdGEgdGjhuqV5IHThu4kgbOG7hyBy4bunaSBybyB0xrDGoW5nIMSR4buRaSAocmlzayByYXRpbykgY+G7p2EgaMOgbmgga2jDoWNoIGPDsyBt4bupYyDEkeG7mSBow6BpIGzDsm5nIHbhu4EgaMOjbmcgaMOgbmcga2jDtG5nIOG7nyBuaMOzbSBzYXRpc2ZpZWQgdGhlbyBT4buRIMSRaeG7g20gduG7gSBt4bupYyDEkeG7mSBow6BpIGzDsm5nIHbhu4EgZOG7i2NoIHbhu6UgdHLDqm4gY2h1eeG6v24gYmF5IGzDoCAxLDk4MDQxMyB04bupYyBsw6AgdOG7iSBs4buHIG5o4buvbmcgaMOgbmgga2jDoWNoIGPDsyBt4bupYyDEkeG7mSBow6BpIGzDsm5nIHbhu4EgaMOjbmcgaMOgbmcga2jDtG5nIOG7nyBuaMOzbSBzYXRpc2ZpZWQgdHJvbmcgbmjDs20gY8OzIFPhu5EgxJFp4buDbSB24buBIG3hu6ljIMSR4buZIGjDoGkgbMOybmcgduG7gSBk4buLY2ggduG7pSB0csOqbiBjaHV54bq/biBiYXkgY2FvIGzhu5tuIGjGoW4ga2hv4bqjbmcgOTgsMDQlIHThu4kgbOG7hyBuaOG7r25nIGjDoG5oIGtow6FjaCBjw7MgbeG7qWMgxJHhu5kgaMOgaSBsw7JuZyB24buBIGjDo25nIGjDoG5nIGtow7RuZyDhu58gbmjDs20gc2F0aXNmaWVkIHRyb25nIG5ow7NtIGPDsyBT4buRIMSRaeG7g20gduG7gSBt4bupYyDEkeG7mSBow6BpIGzDsm5nIHbhu4EgZOG7i2NoIHbhu6UgdHLDqm4gY2h1eeG6v24gYmF5IHRo4bqlcC4NCg0KIyMjIyAzLjQuMTMuMyBU4bu3IGzhu4cgY2jDqm5oIGzhu4djaCAob2RkIHJhdGlvKQ0KDQpgYGB7cn0NCmVwaXRhYihsLCBtZXRob2QgPSAib2Rkc3JhdGlvIikNCmBgYA0KDQpUaGVvIGvhur90IHF14bqjIHRyw6puIHRhIHRo4bqleSB04buJIGzhu4cgY2jDqm5oIChvZGQgcmF0aW8pIGzDoCAzLDEyMTY5NSB04bupYyB04buJIGzhu4cgbmjhu69uZyBow6BuaCBraMOhY2ggY8OzIG3hu6ljIMSR4buZIGjDoGkgbMOybmcgduG7gSBow6NuZyBow6BuZyBraMO0bmcg4bufIG5ow7NtIHNhdGlzZmllZC9uaOG7r25nIGjDoG5oIGtow6FjaCBjw7MgbeG7qWMgxJHhu5kgaMOgaSBsw7JuZyB24buBIGThu4tjaCB24bulIHRyw6puIGNodXnhur9uIGJheSDhu58gbmjDs20gbmV1dHJhbCBvciBkaXNzYXRpc2ZpZWQgY+G7p2Ega2jDoWNoIGjDoG5nIGPDsyBT4buRIMSRaeG7g20gduG7gSBt4bupYyDEkeG7mSBow6BpIGzDsm5nIHbhu4EgZOG7i2NoIHbhu6UgdHLDqm4gY2h1eeG6v24gYmF5IGNhbyBs4bubbiBoxqFuIGfhuqVwIDMsMTIxNjk1IGzhuqduIHNvIHbhu5tpIHThu4kgbOG7hyBt4bupYyDEkeG7mSBow6BpIGzDsm5nIHbhu4EgaMOjbmcgaMOgbmcga2jDtG5nIOG7nyBuaMOzbSBzYXRpc2ZpZWQvbmjhu69uZyBow6BuaCBraMOhY2ggY8OzIG3hu6ljIMSR4buZIGjDoGkgbMOybmcgduG7gSBk4buLY2ggduG7pSB0csOqbiBjaHV54bq/biBiYXkg4bufIG5ow7NtIG5ldXRyYWwgb3IgZGlzc2F0aXNmaWVkICBj4bunYSBraMOhY2ggaMOgbmcgY8OzIFPhu5EgxJFp4buDbSB24buBIG3hu6ljIMSR4buZIGjDoGkgbMOybmcgduG7gSBk4buLY2ggduG7pSB0csOqbiBjaHV54bq/biBiYXkgdGjhuqVwLg0KDQojIyMjIDMuNC4xMy40IFRo4buRbmcga8OqIHN1eSBkaeG7hW4NCg0KS2nhu4NtIMSR4buLbmggdMOtbmggxJHhu5ljIGzhuq1wIGNobyAyIGJp4bq/biAoU0YpIHbDoCAoSVMpOg0KDQpQaMawxqFuZyBwaMOhcCBjaGkgYsOsbmggcGjGsMahbmc6IEdp4bqjIHRodXnhur90IEhvOiBTRiB2w6AgSVMgxJHhu5ljIGzhuq1wDQoNCmBgYHtyfQ0KbCA8LSB0YWJsZShJUywgU0YpO2wNCmBgYA0KDQpgYGB7cn0NCmNoaXNxLnRlc3QobCkNCmBgYA0KDQpL4bq/dCBxdeG6oyBraeG7g20gxJHhu4tuaCB0csOqbiBjaG8gdGjhuqV5IGdpw6EgdHLhu4sgdOG7m2kgaOG6oW4gcC12YWx1ZSA8IDIuMmUtMTYgPCA1JSB2w6wgduG6rXkgY2jGsGEgY8OzIGPGoSBz4bufIMSR4buDIHRo4burYSBuaOG6rW4gZ2nhuqMgdGh1eeG6v3QgSG8sIG7Ds2kgY8OhY2gga2jDoWMgZ2nhu69hIG3hu6ljIMSR4buZIGjDoGkgbMOybmcgduG7gSBow6NuZyBow6BuZyBraMO0bmcgKFNGKSB2w6AgU+G7kSDEkWnhu4NtIHbhu4EgbeG7qWMgxJHhu5kgaMOgaSBsw7JuZyB24buBIGThu4tjaCB24bulIHRyw6puIGNodXnhur9uIGJheSAoSVMpIGPDsyBsacOqbiBxdWFuIHThu5tpIG5oYXUuDQoNCiMjIyAzLjQuMTQgVGjhu5FuZyBrw6ogbcO0IHThuqMgYmnhur9uIHBo4bulIHRodeG7mWM6IFNGIHbhu5tpIGJp4bq/biDEkeG7mWMgbOG6rXAgU+G7kSBwaMO6dCBi4buLIHRy4buFIGtoaSBraOG7n2kgaMOgbmggKERESU0pDQoNCiMjIyMgMy40LjE0LjEgQuG6o25nIHThuqduIHPhu5EsIHThuqduIHN14bqldCB2w6AgYmnhu4N1IMSR4buTDQoNCkLhuqNuZyB04bqnbiBz4buROg0KDQpgYGB7cn0NCm8gPC0gdGFibGUoRERJTSwgU0YpOyBvDQpgYGANCg0KQuG6o25nIHThuqduIHN14bqldDoNCg0KYGBge3J9DQpvMSA8LSBwcm9wLnRhYmxlKG8pOyBvMQ0KYGBgDQpQaMOibiBwaOG7kWkgYmnDqm46DQoNCmBgYHtyfQ0KYWRkbWFyZ2lucyhvKQ0KYGBgDQoNClRow7RuZyBxdWEgYuG6o25nIHThuqduIHPhu5EsIHThuqduIHN14bqldCB0csOqbiBj4bunYSAyIGJp4bq/biBN4bupYyDEkeG7mSBow6BpIGzDsm5nIGPhu6dhIGjDoG5oIGtow6FjaCDEkeG7kWkgduG7m2kgaMOjbmcgaMOgbmcga2jDtG5nIHbDoCBT4buRIHBow7p0IGLhu4sgdHLhu4Uga2hpIGto4bufaSBow6BuaCAoRERJTSkgdGEgdGjhuqV5IGPDsyA2NzQyIGjDoG5oIGtow6FjaCBjw7MgTeG7qWMgxJHhu5kgaMOgaSBsw7JuZyBj4bunYSBow6BuaCBraMOhY2ggxJHhu5FpIHbhu5tpIGjDo25nIGjDoG5nIGtow7RuZyB0aHXhu5ljIG5ow7NtIG5ldXRyYWwgb3Igc2F0aXNmaWVkIHRyb25nIMSRw7MgY8OzIDY3MTEgaMOgbmgga2jDoWNoIGPDsyBT4buRIHBow7p0IGLhu4sgdHLhu4Uga2hpIGto4bufaSBow6BuaCB0aHXhu5ljIG5ow7NtIG5o4buPLCBjaGnhur9tIHThu4kgbOG7hyA1OSw0NSUgdOG7lW5nIHPhu5EgaMOgbmgga2jDoWNoIHbDoCAzMSBow6BuaCBraMOhY2ggbmjDs20gbOG7m24sIGNoaeG6v20gdOG7iSBs4buHIDAsMjclIHThu5VuZyBz4buRIGjDoG5oIGtow6FjaC4gQsOqbiBj4bqhbmggxJHDsyBjw7MgNDU0NiBow6BuaCBraMOhY2ggY8OzIE3hu6ljIMSR4buZIGjDoGkgbMOybmcgY+G7p2EgaMOgbmgga2jDoWNoIMSR4buRaSB24bubaSBow6NuZyBow6BuZyBraMO0bmcgdGh14buZYyBuaMOzbSBzYXRpc2ZpZWQgdHJvbmcgxJHDsyBjw7MgNDUyMiBow6BuaCBraMOhY2ggY8OzIFPhu5EgcGjDunQgYuG7iyB0cuG7hSBraGkga2jhu59pIGjDoG5oIHRodeG7mWMgbmjDs20gbmjhu48sIGNoaeG6v20gdOG7iSBs4buHIDQwLDA2JSB04buVbmcgc+G7kSBow6BuaCBraMOhY2ggdsOgIDI0IGjDoG5oIGtow6FjaCBuaMOzbSBs4bubbiwgY2hp4bq/bSB04buJIGzhu4cgMCwyMSUgdOG7lW5nIHPhu5EgaMOgbmgga2jDoWNoLiBUcm9uZyB04buVbmcgc+G7kSBow6BuaCBraMOhY2ggdHLDqm4gY2h1eeG6v24gYmF5IHRow6wgdOG7iSBs4buHIG5o4buvbmcgaMOgbmgga2jDoWNoIGPDsyBz4buRIHBow7p0IGLhu4sgdHLhu4Uga2hpIGto4bufaSBow6BuaCB0aHXhu5ljIG5ow7NtIG5o4buPIGzhu5tuIGjGoW4gcuG6pXQgbmhp4buBdSBs4bqnbiBzbyB24bubaSBuaOG7r25nIGjDoG5oIGtow6FjaCBjw7Mgc+G7kSBwaMO6dCBi4buLIHRy4buFIGtoaSBraOG7n2kgaMOgbmggdGh14buZYyBuaMOzbSBs4bubbi4gUXVhIGJp4buDdSDEkeG7kyBjw7MgdGjhu4MgdGjhuqV5IMSR4buRaSB24bubaSBuaOG7r25nIGjDoG5oIGtow6FjaCBjw7MgTeG7qWMgxJHhu5kgaMOgaSBsw7JuZyBj4bunYSBow6BuaCBraMOhY2ggxJHhu5FpIHbhu5tpIGjDo25nIGjDoG5nIGtow7RuZyB0aHXhu5ljIGPhuqMgbmjDs20gbmV1dHJhbCBvciBzYXRpc2ZpZWQgdsOgIHNhdGlzZmllZCB0aMOsIHThu7cgbOG7hyBuaOG7r25nIGjDoG5oIGtow6FjaCBjw7Mgc+G7kSBwaMO6dCBi4buLIHRy4buFIGtoaSBraOG7n2kgaMOgbmggdGh14buZYyBuaMOzbSBuaOG7jyDEkeG7gXUgbmhp4buBdSBoxqFuIG5o4buvbmcgaMOgbmgga2jDoWNoIGPDsyBz4buRIHBow7p0IGLhu4sgdHLhu4Uga2hpIGto4bufaSBow6BuaCB0aHXhu5ljIG5ow7NtIGzhu5tuLg0KDQojIyMjIDMuNC4xNC4yIFLhu6dpIHJvIHTGsMahbmcgxJHhu5FpIChSaXNrIHJhdGlvKQ0KDQpgYGB7cn0NCmVwaXRhYihvLCBtZXRob2QgPSAicmlza3JhdGlvIikNCmBgYA0KDQpUaGVvIGvhur90IHF14bqjIHRyw6puIHRhIHRo4bqleSB04buJIGzhu4cgcuG7p2kgcm8gdMawxqFuZyDEkeG7kWkgKHJpc2sgcmF0aW8pIGPhu6dhIGjDoG5oIGtow6FjaCBjw7MgTeG7qWMgxJHhu5kgaMOgaSBsw7JuZyBj4bunYSBow6BuaCBraMOhY2ggxJHhu5FpIHbhu5tpIGjDo25nIGjDoG5nIGtow7RuZyB0aHXhu5ljIG5ow7NtIHNhdGlzZmllZCB0aGVvIFPhu5EgcGjDunQgYuG7iyB0cuG7hSBraGkga2jhu59pIGjDoG5oIGzDoCAxLjA4Mzk2MSB04bupYyBsw6AgdOG7iSBs4buHIG5o4buvbmcgaMOgbmgga2jDoWNoIGPDsyBN4bupYyDEkeG7mSBow6BpIGzDsm5nIGPhu6dhIGjDoG5oIGtow6FjaCDEkeG7kWkgduG7m2kgaMOjbmcgaMOgbmcga2jDtG5nIHRyb25nIG5ow7NtIHNhdGlzZmllZCBjw7MgU+G7kSBwaMO6dCBi4buLIHRy4buFIGtoaSBraOG7n2kgaMOgbmggbOG7m24gaMahbiBraG/huqNuZyA4LjM5JSB04buJIGzhu4cgbmjhu69uZyBow6BuaCBraMOhY2ggY8OzIHPhu5EgxJFp4buDbSB24buBIE3hu6ljIMSR4buZIGjDoGkgbMOybmcgduG7gSBk4buLY2ggduG7pSB0cm9uZyBuaMOzbSBzYXRpc2ZpZWQgY8OzIFPhu5EgcGjDunQgYuG7iyB0cuG7hSBraGkga2jhu59pIGjDoG5oIG5o4buPLg0KDQojIyMjIDMuNC4xNC4zIFThu7cgbOG7hyBjaMOqbmggbOG7h2NoIChvZGQgcmF0aW8pDQoNCmBgYHtyfQ0KZXBpdGFiKG8sIG1ldGhvZCA9ICJvZGRzcmF0aW8iKQ0KYGBgDQoNClRoZW8ga+G6v3QgcXXhuqMgdHLDqm4gdGEgdGjhuqV5IHThu4kgbOG7hyBjaMOqbmggKG9kZCByYXRpbykgbMOgIDEuMTQ4OTYzIHThu6ljIHThu4kgbOG7hyBuaOG7r25nIGjDoG5oIGtow6FjaCBjw7MgTeG7qWMgxJHhu5kgaMOgaSBsw7JuZyBj4bunYSBow6BuaCBraMOhY2ggxJHhu5FpIHbhu5tpIGjDo25nIGjDoG5nIGtow7RuZyB0aHXhu5ljIG5ow7NtIHNhdGlzZmllZC9uaOG7r25nIGjDoG5oIGtow6FjaCBjw7MgTeG7qWMgxJHhu5kgaMOgaSBsw7JuZyBj4bunYSBow6BuaCBraMOhY2ggxJHhu5FpIHbhu5tpIGjDo25nIGjDoG5nIGtow7RuZyB0aHXhu5ljIG5ow7NtIG5ldXRyYWwgb3IgZGlzc2F0aXNmaWVkIGPDsyBT4buRIHBow7p0IGLhu4sgdHLhu4Uga2hpIGto4bufaSBow6BuaCBs4bubbiB0aMOsIGzhu5tuIGjGoW4ga2hv4bqjbmcgMTQsODklIHNvIHbhu5tpIHThu4kgbOG7h25o4buvbmcgaMOgbmgga2jDoWNoIGPDsyBN4bupYyDEkeG7mSBow6BpIGzDsm5nIGPhu6dhIGjDoG5oIGtow6FjaCDEkeG7kWkgduG7m2kgaMOjbmcgaMOgbmcga2jDtG5nIHRodeG7mWMgbmjDs20gc2F0aXNmaWVkL25o4buvbmcgaMOgbmgga2jDoWNoIGPDsyBN4bupYyDEkeG7mSBow6BpIGzDsm5nIGPhu6dhIGjDoG5oIGtow6FjaCDEkeG7kWkgduG7m2kgaMOjbmcgaMOgbmcga2jDtG5nIHRodeG7mWMgbmjDs20gbmV1dHJhbCBvciBkaXNzYXRpc2ZpZWQgY8OzIFPhu5EgcGjDunQgYuG7iyB0cuG7hSBraGkga2jhu59pIGjDoG5oIG5o4buPLg0KDQojIyMjIDMuNC4xNC40IFRo4buRbmcga8OqIHN1eSBkaeG7hW4NCg0KS2nhu4NtIMSR4buLbmggdMOtbmggxJHhu5ljIGzhuq1wIGNobyAyIGJp4bq/biAoU0YpIHbDoCAoRERJTSk6DQoNClBoxrDGoW5nIHBow6FwIGNoaSBiw6xuaCBwaMawxqFuZzogR2nhuqMgdGh1eeG6v3QgSG86IFNGIHbDoCBERElNIMSR4buZYyBs4bqtcA0KDQpgYGB7cn0NCm8gPC0gdGFibGUoRERJTSwgU0YpO28NCmBgYA0KDQpgYGB7cn0NCmNoaXNxLnRlc3QobykNCmBgYA0KDQpL4bq/dCBxdeG6oyBraeG7g20gxJHhu4tuaCB0csOqbiBjaG8gdGjhuqV5IGdpw6EgdHLhu4sgdOG7m2kgaOG6oW4gUF92YWx1ZSA9IDAuNzA5OSA+IDUlIHbDrCB24bqteSBjw7MgY8ahIHPhu58gxJHhu4MgdGjhu6thIG5o4bqtbiBnaeG6oyB0aHV54bq/dCBIbywgbsOzaSBjw6FjaCBraMOhYyBnaeG7r2EgTeG7qWMgxJHhu5kgaMOgaSBsw7JuZyBj4bunYSBow6BuaCBraMOhY2ggxJHhu5FpIHbhu5tpIGjDo25nIGjDoG5nIGtow7RuZyB2w6AgU+G7kSBwaMO6dCBi4buLIHRy4buFIGtoaSBraOG7n2kgaMOgbmggKERESU0pIGtow7RuZyBjw7MgbGnDqm4gcXVhbiB04bubaSBuaGF1Lg0KDQojIyAzLjUgS2hv4bqjbmcgxrDhu5tjIGzGsOG7o25nIGNobyB04bu3IGzhu4cNCg0KIyMjIDMuNS4xICDGr+G7m2MgbMaw4bujbmcgdOG7tyBs4buHIHPhu5EgbmfGsOG7nWkgxJHGsOG7o2Mga2jhuqNvIHPDoXQgY8OzIE3hu6ljIMSR4buZIGjDoGkgbMOybmcgduG7gSBk4buLY2ggduG7pSB0csOqbiBjaHV54bq/biBiYXkgKElTKSAgY2FvIGzhu5tuIGjGoW4gMyANCg0Kxq/hu5tjIGzGsOG7o25nIHThu7cgbOG7hyBz4buRIG5nxrDhu51pIMSRxrDhu6NjIGto4bqjbyBzw6F0IGPDsyBN4bupYyDEkeG7mSBow6BpIGzDsm5nIHbhu4EgZOG7i2NoIHbhu6UgdHLDqm4gY2h1eeG6v24gYmF5IChJUykgY2FvIGzhu5tuIGjGoW4gMyB2w6AgxJHhu5NuZyB0aOG7nWkga2nhu4NtIMSR4buLbmggeGVtIHThu7cgbOG7hyBuZ8aw4budaSDEkcaw4bujYyBraOG6o28gc8OhdCBjw7MgTeG7qWMgxJHhu5kgaMOgaSBsw7JuZyB24buBIGThu4tjaCB24bulIHRyw6puIGNodXnhur9uIGJheSAoSVMpICBjYW8gbOG7m24gaMahbiAzIGPDsyBwaOG6o2kgbMOgIDUwJSBoYXkga2jDtG5nLiBUYSBraeG7g20gxJHhu4tuaCBnaeG6oyB0aHV54bq/dDoNCg0KSDA6IFThu7cgbOG7hyBz4buRIG5nxrDhu51pIMSRxrDhu6NjIGto4bqjbyBzw6F0IGPDsyBN4bupYyDEkeG7mSBow6BpIGzDsm5nIHbhu4EgZOG7i2NoIHbhu6UgdHLDqm4gY2h1eeG6v24gYmF5IChJUykgY2FvIGzhu5tuIGjGoW4gMyBsw6AgNTAlDQoNCkgxOiBU4bu3IGzhu4cgc+G7kSBuZ8aw4budaSDEkcaw4bujYyBraOG6o28gc8OhdCBjw7MgTeG7qWMgxJHhu5kgaMOgaSBsw7JuZyB24buBIGThu4tjaCB24bulIHRyw6puIGNodXnhur9uIGJheSAoSVMpIGNhbyBs4bubbiBoxqFuIDMga2jDtG5nIHBo4bqjaSBsw6AgNTAlDQoNCmBgYHtyfQ0Kcm08LSBETFtETCRJUyA+IDMsXQ0KcHJvcC50ZXN0KGxlbmd0aChybSRJUyksIGxlbmd0aChETCRJUyksIHAgPSAwLjUpDQpgYGANClbDrCBwX3ZhbHVlIDwgMi4yZS0xNiA8IDAuMDUgbsOqbiB0YSBiw6FjIGLhu48gZ2nhuqMgdGh1eeG6v3QgSDAuIE5naMSpYSBsw6AgVOG7tyBs4buHIHPhu5EgbmfGsOG7nWkgxJHGsOG7o2Mga2jhuqNvIHPDoXQgY8OzIE3hu6ljIMSR4buZIGjDoGkgbMOybmcgduG7gSBk4buLY2ggduG7pSB0csOqbiBjaHV54bq/biBiYXkgKElTKSBjYW8gbOG7m24gaMahbiAzIGtow7RuZyBwaOG6o2kgbMOgIDUwJQ0KDQpW4bubaSDEkeG7mSB0aW4gY+G6rXkgOTUlLCDGsOG7m2MgbMaw4bujbmcgdOG7tyBs4buHIHPhu5EgbmfGsOG7nWkgxJHGsOG7o2Mga2jhuqNvIHPDoXQgY8OzIE3hu6ljIMSR4buZIGjDoGkgbMOybmcgduG7gSBk4buLY2ggduG7pSB0csOqbiBjaHV54bq/biBiYXkgKElTKSBjYW8gbOG7m24gaMahbiAzIG7hurFtIHRyb25nIGtob+G6o25nIHThu6sgMC42MjI2NjY0IMSR4bq/biAwLjYzNDQ1NTkuDQoNCiMjIyAzLjUuMiAgIMav4bubYyBsxrDhu6NuZyB04bu3IGzhu4cgc+G7kSBuZ8aw4budaSDEkcaw4bujYyBraOG6o28gc8OhdCBjw7MgTeG7qWMgxJHhu5kgaMOgaSBsw7JuZyB24buBIGThu4tjaCB24bulIHRyw6puIGNodXnhur9uIGJheSAoSVMpICBjYW8gbOG7m24gaMahbiAzIGdp4buvYSBnaeG7m2kgdMOtbmggbmFtIHbDoCBu4buvDQoNCkdp4bqjIHRodXnhur90Og0KDQpIMDoga2jDtG5nIGPDsyBz4buxIGtow6FjIGJp4buHdCDEkcOhbmcga+G7gyB0cm9uZyB04bu3IGzhu4cgZ2nhu69hIE3hu6ljIMSR4buZIGjDoGkgbMOybmcgduG7gSBk4buLY2ggduG7pSB0csOqbiBjaHV54bq/biBiYXkgKElTKSAgY2FvIGzhu5tuIGjGoW4gMyBnaeG7r2EgZ2nhu5tpIHTDrW5oIG5hbSB2w6AgbuG7ry4NCg0KSDE6IGPDsyBz4buxIGtow6FjIGJp4buHdCDEkcOhbmcga+G7gyB0cm9uZyB04bu3IGzhu4cgZ2nhu69hIE3hu6ljIMSR4buZIGjDoGkgbMOybmcgduG7gSBk4buLY2ggduG7pSB0csOqbiBjaHV54bq/biBiYXkgKElTKSAgY2FvIGzhu5tuIGjGoW4gMyBnaeG7r2EgZ2nhu5tpIHTDrW5oIG5hbSB2w6AgbuG7ry4NCg0KYGBge3J9DQpybW0gPC0gRExbREwkR2VuZGVyID09ICJNYWxlIixdDQpybWYgPC0gRExbREwkR2VuZGVyID09ICJGZW1hbGUiLF0NCg0Kcm1tMSA8LSBybW1bcm1tJElTID4gMyxdDQpybWYxIDwtIHJtZltybWYkSVMgPiAzLF0NCg0KYSA8LSBjKG5yb3cocm1tKSwgbnJvdyhybWYpKQ0KYiA8LSBjKG5yb3cocm1tMSksIG5yb3cocm1mMSkpDQoNCnByb3AudGVzdChiLGEpDQpgYGANClbDrCBwX3ZhbHVlID0gMi4yNDRlLTA2IDwgMC4wNSDEkeG7pyBjxqEgc+G7nyDEkeG7gyBiw6FjIGLhu48gZ2nhuqMgdGh1eeG6v3QgSDAuIE5naMSpYSBsw6AgxJHhu6cgY8ahIHPhu58gxJHhu4MgY2jhu6luZyBtaW5oIHLhurFuZyBjw7Mgc+G7sSBraMOhYyBiaeG7h3QgdHJvbmcgdOG7tyBs4buHICBnaeG7r2EgTeG7qWMgxJHhu5kgaMOgaSBsw7JuZyB24buBIGThu4tjaCB24bulIHRyw6puIGNodXnhur9uIGJheSAoSVMpIGNhbyBs4bubbiBoxqFuIDMgZ2nhu69hIGdp4bubaSB0w61uaCBuYW0gdsOgIG7hu68uDQoNClbhu5tpIMSR4buZIHRpbiBj4bqteSA5NSUsIGtob+G6o25nIGNow6puaCBs4buHY2ggZ2nhu69hIE3hu6ljIMSR4buZIGjDoGkgbMOybmcgduG7gSBk4buLY2ggduG7pSB0csOqbiBjaHV54bq/biBiYXkgKElTKSBjYW8gbOG7m24gaMahbiAzIGdp4buvYSBnaeG7m2kgdMOtbmggbmFtIHbDoCBu4buvIG7hurFtIHRyb25nIGtob+G6o25nIHThu6sgMC42NDMwMDIyIMSR4bq/biAwLjYxNDU2MTIuDQoNCiMgQ0jGr8agTkcgNDogTcOUIEjDjE5IIEjhu5JJIFFVWSANCg0KQ2jhuqF5IG3DtCBow6xuaCBo4buTaSBxdXkgduG7m2kgYmnhur9uIHBo4bulIHRodeG7mWMgSW5mbGlnaHQgc2VydmljZTogTeG7qWMgxJHhu5kgaMOgaSBsw7JuZyB24buBIGThu4tjaCB24bulIHRyw6puIGNodXnhur9uIGJheSAoSVMpIA0KDQojIyA0LjEuIE3DtCBow6xuaCBsb2dpdA0KDQpgYGB7cn0NCklTIDwtIGN1dChETCRJUywgYnJlYWtzID0gYygwLDMsNSksIGxhYmVscz1jKCJUaOG6pXAiLCJDYW8iKSkNCnRhYmxlKElTKQ0KYGBgDQoNCmBgYHtyfQ0KQWdlIDwtIGN1dChETCRBZ2UsIGJyZWFrcyA9IGMoNyw0MCw4NSksIGxhYmVscz1jKCJ0aGFuaG5pZW4iLCJ0cnVuZ25pZW4iKSkNCnRhYmxlKEFnZSkNCmBgYA0KDQpUw7RpIG3DoyBow7NhIGJp4bq/biDEkeG7i25oIGzGsOG7o25nIEFnZSB0aMOgbmggYmnhur9uIMSR4buLbmggdMOtbmggMiBnacOhIHRy4buLIMSR4buDIMSRxrBhIHbDoG8gbcO0IGjDrG5oIHbDrCBtdeG7kW4gYmnhur90IGPhu6UgdGjhu4MgbmjDs20gxJHhu5kgdHXhu5VpIGPhu6dhIGjDoG5oIGtow6FjaCBuw6BvIHPhur0g4bqjbmggaMaw4bufbmcgxJHhur9uIE3hu6ljIMSR4buZIGjDoGkgbMOybmcgduG7gSBk4buLY2ggduG7pSB0csOqbiBjaHV54bq/biBiYXkgKElTKSB2w6AgbeG7qWMgxJHhu5kgdMOhYyDEkeG7mW5nIGPhu6dhIG7DsyBuaMawIHRo4bq/IG7DoG8uDQoNCmBgYHtyfQ0KbWgxIDwtIGdsbShkYXRhID0gaywgZm9ybXVsYSA9IGZhY3RvcihJUykgfiBHZW5kZXIgKyBUcmF2ZWwgKyBDdXN0b21lciArIERMJENsYXNzICsgQWdlICsgREwkRERJTSArIFNGLCBmYW1pbHkgPSBiaW5vbWlhbChsaW5rID0gImxvZ2l0IikpDQpsZXZlbHMoZmFjdG9yKElTKSkNCnN1bW1hcnkobWgxKQ0KYGBgDQoNCiogS2nhu4NtIMSR4buLbmggc+G7sSBwaMO5IGjhu6NwIGPhu6dhIG3DtCBow6xuaA0KDQpD4bq3cCBnaeG6oyB0aHV54bq/dCAtIMSR4buRaSB0aHV54bq/dDoNCg0KSDA6IE3DtCBow6xuaCBraMO0bmcgcGjDuSBo4bujcCB24bubaSBk4buvIGxp4buHdSDEkWnhu4F1IHRyYQ0KDQpIMTogTcO0IGjDrG5oIHBow7kgaOG7o3AgduG7m2kgZOG7ryBsaeG7h3UgxJFp4buBdSB0cmENCg0KYGBge3J9DQpscl90ZXN0MSA8LSBhbm92YShtaDEsIHRlc3QgPSAiQ2hpc3EiKQ0KcF92YWx1ZTEgPC0gbHJfdGVzdDEkUHJbMl0NCnBfdmFsdWUxDQpgYGANCkvhur90IHF14bqjIGtp4buDbSDEkeG7i25oIGNobyB0aOG6pXkgUF92YWx1ZSA8IDAuMDUgbsOqbiB0YSBiw6FjIGLhu48gZ2nhuqMgdGh1eeG6v3QgSDAsIGNobyB0aOG6pXkgbcO0IGjDrG5oIDEgbMOgIG3DtCBow6xuaCBwaMO5IGjhu6NwIHbhu5tpIG3hu6ljIMO9IG5naMSpYSA1JS4NCg0KDQojIyA0LjIgTcO0IGjDrG5oIHByb2JpdA0KDQpgYGB7cn0NCm1oMiA8LSBnbG0oZGF0YSA9IGssIGZvcm11bGEgPSBmYWN0b3IoSVMpIH4gR2VuZGVyICsgVHJhdmVsICsgQ3VzdG9tZXIgKyBETCRDbGFzcyArIEFnZSArIERMJERESU0gKyBTRiwgZmFtaWx5ID0gYmlub21pYWwobGluayA9ICJwcm9iaXQiKSkNCmxldmVscyhmYWN0b3IoSVMpKQ0Kc3VtbWFyeShtaDIpDQpgYGANCiogS2nhu4NtIMSR4buLbmggc+G7sSBwaMO5IGjhu6NwIGPhu6dhIG3DtCBow6xuaA0KDQpD4bq3cCBnaeG6oyB0aHV54bq/dCAtIMSR4buRaSB0aHV54bq/dDoNCg0KSDA6IE3DtCBow6xuaCBraMO0bmcgcGjDuSBo4bujcCB24bubaSBk4buvIGxp4buHdSDEkWnhu4F1IHRyYQ0KDQpIMTogTcO0IGjDrG5oIHBow7kgaOG7o3AgduG7m2kgZOG7ryBsaeG7h3UgxJFp4buBdSB0cmENCg0KYGBge3J9DQojIEtp4buDbSDEkeG7i25oIHPhu7EgcGjDuSBo4bujcCBj4bunYSBtw7QgaMOsbmggYuG6sW5nIGPDoWNoIHTDrW5oIGdpw6EgdHLhu4sgUHJvYihMUiBzdGF0aXN0aWMpDQpscl90ZXN0IDwtIGFub3ZhKG1oMiwgdGVzdCA9ICJDaGlzcSIpDQpwX3ZhbHVlIDwtIGxyX3Rlc3QkUHJbMl0gDQpwX3ZhbHVlDQpgYGANCg0KS+G6v3QgcXXhuqMga2nhu4NtIMSR4buLbmggY2hvIHRo4bqleSBQX3ZhbHVlIDwgMC4wNSBuw6puIHRhIGLDoWMgYuG7jyBnaeG6oyB0aHV54bq/dCBIMCwgY2hvIHRo4bqleSBtw7QgaMOsbmggMiBsw6AgbcO0IGjDrG5oIHBow7kgaOG7o3AgduG7m2kgbeG7qWMgw70gbmdoxKlhIDUlLg0KDQojIyA0LjMgTcO0IGjDrG5oIGNsb2dsb2cNCg0KYGBge3J9DQptaDMgPC0gZ2xtKGRhdGEgPSBrLCBmb3JtdWxhID0gZmFjdG9yKElTKSB+IEdlbmRlciArIFRyYXZlbCArIEN1c3RvbWVyICsgREwkQ2xhc3MgKyBBZ2UgKyBETCRERElNICsgU0YsIGZhbWlseSA9IGJpbm9taWFsKGxpbmsgPSAiY2xvZ2xvZyIpKQ0KbGV2ZWxzKGZhY3RvcihJUykpDQpzdW1tYXJ5KG1oMykNCmBgYA0KDQoqIEtp4buDbSDEkeG7i25oIHPhu7EgcGjDuSBo4bujcCBj4bunYSBtw7QgaMOsbmgNCg0KQ+G6t3AgZ2nhuqMgdGh1eeG6v3QgLSDEkeG7kWkgdGh1eeG6v3Q6DQoNCkgwOiBNw7QgaMOsbmgga2jDtG5nIHBow7kgaOG7o3AgduG7m2kgZOG7ryBsaeG7h3UgxJFp4buBdSB0cmENCg0KSDE6IE3DtCBow6xuaCBwaMO5IGjhu6NwIHbhu5tpIGThu68gbGnhu4d1IMSRaeG7gXUgdHJhDQoNCmBgYHtyfQ0KIyBLaeG7g20gxJHhu4tuaCBz4buxIHBow7kgaOG7o3AgY+G7p2EgbcO0IGjDrG5oIGLhurFuZyBjw6FjaCB0w61uaCBnacOhIHRy4buLIFByb2IoTFIgc3RhdGlzdGljKQ0KbHJfdGVzdCA8LSBhbm92YShtaDMsIHRlc3QgPSAiQ2hpc3EiKQ0KcF92YWx1ZSA8LSBscl90ZXN0JFByWzJdIA0KcF92YWx1ZQ0KYGBgDQoNCkvhur90IHF14bqjIGtp4buDbSDEkeG7i25oIGNobyB0aOG6pXkgUF92YWx1ZSA8IDAuMDUgbsOqbiB0YSBiw6FjIGLhu48gZ2nhuqMgdGh1eeG6v3QgSDAsIGNobyB0aOG6pXkgbcO0IGjDrG5oIDEgbMOgIG3DtCBow6xuaCBwaMO5IGjhu6NwIHbhu5tpIG3hu6ljIMO9IG5naMSpYSA1JS4NCg0KIyMgNC40IEzhu7FhIGNo4buNbiBtw7QgaMOsbmgNCg0KxJDhu4MgxJHDoW5oIGdpw6EgY8OhYyBtw7QgaMOsbmggaOG7k2kgcXV5IHRyw6puLCB0YSBz4butIGThu6VuZyBjw6FjIHRpw6p1IGNow60gc2F1Og0KDQpgYGB7cn0NCiMgVGnDqnUgY2jDrSBBSUMgLSBBa2Fpa2UgSW5mb3JtYXRpb24gQ3JpdGVyaW9uDQphaWMxIDwtIEFJQyhtaDEpDQphaWMyIDwtIEFJQyhtaDIpDQphaWMzIDwtIEFJQyhtaDMpDQpBSUMgPC1jYmluZChhaWMxLGFpYzIsYWljMykNCkFJQw0KYGBgDQoNCmBgYHtyfQ0KIyBUacOqdSBjaMOtIERldmlhbmNlDQpkZTEgPC0gZGV2aWFuY2UobWgxKQ0KZGUyIDwtIGRldmlhbmNlKG1oMikNCmRlMyA8LSBkZXZpYW5jZShtaDMpDQpkZXZpYW5jZSA8LSBjYmluZChkZTEsZGUyLGRlMykNCmRldmlhbmNlDQpgYGANCg0KYGBge3J9DQojIFRpw6p1IGNow60gQnJpZXIgU2NvcmUNCmJzMSA8LSBCcmllclNjb3JlKG1oMSkNCmJzMiA8LSBCcmllclNjb3JlKG1oMikNCmJzMyA8LSBCcmllclNjb3JlKG1oMykNCkJyaWVyU2NvcmUgPC0gY2JpbmQoYnMxLGJzMixiczMpDQpCcmllclNjb3JlDQpgYGANCg0KS+G6v3QgbHXhuq1uOiBE4buxYSB2w6BvIGPDoWMgdGnDqnUgY2jDrSB0csOqbiwgdGEgdGjhuqV5IGPDoWMgZ2nDoSB0cuG7iyBBSUMsIGRldmlhbmNlIHbDoCBCcmllciBTY29yZSBj4bunYSBtw7QgaMOsbmggbG9naXQgbMOgIG5o4buPIG5o4bqldCwgdOG7qWMgbMOgIG3DtCBow6xuaCBsb2dpdCBsw6AgbcO0IGjDrG5oIHThu5F0IG5o4bqldCB0cm9uZyAzIG3DtCBow6xuaC4NCg0KIyMgNC41IENo4bqheSBtw7QgaMOsbmggcGjDuSBo4bujcA0KDQpgYGB7cn0NCnN1bW1hcnkobWgxKQ0KYGBgDQoNCiogR2nhuqNpIHRow61jaCBr4bq/dCBxdeG6ozoNCg0KS+G6v3QgcXXhuqMgcGjDom4gdMOtY2ggaOG7k2kgcXV5IGxvZ2l0IGNobyB0aOG6pXksIDcgYmnhur9uIMSRxrBhIHbDoG8gbcO0IGjDrG5oIGjhu5NpIHF1eSDEkeG7gyBwaMOibiB0w61jaCBk4buBdSBjw7Mgw70gbmdoxKlhDQoNCispIEdp4bubaSB0w61uaCAoR2VuZGVyKSBjw7Mg4bqjbmggaMaw4bufbmcgxJHhur9uIE3hu6ljIMSR4buZIGjDoGkgbMOybmcgduG7gSBk4buLY2ggduG7pSB0csOqbiBjaHV54bq/biBiYXkgduG7m2kgaOG7hyBz4buRIG1hbmcgZOG6pXUgKCspIGNobyB0aOG6pXkgTeG7qWMgxJHhu5kgaMOgaSBsw7JuZyB24buBIGThu4tjaCB24bulIHRyw6puIGNodXnhur9uIGJheSBjYW8ga2hpIGdp4bubaSB0w61uaCBsw6AgTmFtDQoNCispIE3hu6VjIMSRw61jaCBjaHV54bq/biBiYXkgY+G7p2EgaMOgbmgga2jDoWNoIChUcmF2ZWwpIGPDsyDhuqNuaCBoxrDhu59uZyDEkeG6v24gTeG7qWMgxJHhu5kgaMOgaSBsw7JuZyB24buBIGThu4tjaCB24bulIHRyw6puIGNodXnhur9uIGJheSB24bubaSBo4buHIHPhu5EgbWFuZyBk4bqldSAoKykgY2hvIHRo4bqleSBN4bupYyDEkeG7mSBow6BpIGzDsm5nIHbhu4EgZOG7i2NoIHbhu6UgdHLDqm4gY2h1eeG6v24gYmF5IGNhbyBraGkgTeG7pWMgxJHDrWNoIGR1IGzhu4tjaCBsw6AgY8OhIG5ow6JuOiBQZXJzb25hbCBUcmF2ZWwNCg0KKykgTG/huqFpIGtow6FjaCBow6BuZyAoQ3VzdG9tZXIpIGPDsyDhuqNuaCBoxrDhu59uZyDEkeG6v24gTeG7qWMgxJHhu5kgaMOgaSBsw7JuZyB24buBIGThu4tjaCB24bulIHRyw6puIGNodXnhur9uIGJheSB24bubaSBo4buHIHPhu5EgbWFuZyBk4bqldSAoLSkgY2hvIHRo4bqleSBN4bupYyDEkeG7mSBow6BpIGzDsm5nIHbhu4EgZOG7i2NoIHbhu6UgdHLDqm4gY2h1eeG6v24gYmF5IGNhbyBraGkga2jDoWNoIGjDoG5nIHRodeG7mWMgbmjDs20gZGlzbG95YWwgY3VzdG9tZXINCg0KKykgSOG6oW5nIGR1IGzhu4tjaCB0csOqbiBtw6F5IGJheSBj4bunYSBow6BuaCBraMOhY2ggKENsYXNzKSBjw7Mg4bqjbmggaMaw4bufbmcgxJHhur9uIE3hu6ljIMSR4buZIGjDoGkgbMOybmcgduG7gSBk4buLY2ggduG7pSB0csOqbiBjaHV54bq/biBiYXkgduG7m2kgaOG7hyBz4buRIG1hbmcgZOG6pXUgKC0pIGNobyB0aOG6pXkgTeG7qWMgxJHhu5kgaMOgaSBsw7JuZyB24buBIGThu4tjaCB24bulIHRyw6puIGNodXnhur9uIGJheSBjYW8ga2hpIGtow6FjaCBow6BuZyBjw7MgaOG6oW5nIGR1IGzhu4tjaCBsw6AgVGjGsMahbmcgZ2lhDQoNCispIFR14buVaSB0aOG7sWMgdOG6vyBj4bunYSBow6BuaCBraMOhY2ggKEFnZSkgY8OzIOG6o25oIGjGsOG7n25nIMSR4bq/biBN4bupYyDEkeG7mSBow6BpIGzDsm5nIHbhu4EgZOG7i2NoIHbhu6UgdHLDqm4gY2h1eeG6v24gYmF5IHbhu5tpIGjhu4cgc+G7kSBtYW5nIGThuqV1ICgtKSBjaG8gdGjhuqV5IE3hu6ljIMSR4buZIGjDoGkgbMOybmcgduG7gSBk4buLY2ggduG7pSB0csOqbiBjaHV54bq/biBiYXkgY2FvIGtoaSBraMOhY2ggaMOgbmcgY8OzIMSR4buZIHR14buVaSBsw6AgdGhhbmggbmnDqm4NCg0KKykgU+G7kSBwaMO6dCBi4buLIHRy4buFIGtoaSBraOG7n2kgaMOgbmggKERESU0pIGPDsyDhuqNuaCBoxrDhu59uZyDEkeG6v24gTeG7qWMgxJHhu5kgaMOgaSBsw7JuZyB24buBIGThu4tjaCB24bulIHRyw6puIGNodXnhur9uIGJheSB24bubaSBo4buHIHPhu5EgbWFuZyBk4bqldSAoLSkgY2hvIHRo4bqleSBN4bupYyDEkeG7mSBow6BpIGzDsm5nIHbhu4EgZOG7i2NoIHbhu6UgdHLDqm4gY2h1eeG6v24gYmF5IGNhbyBraGkgU+G7kSBwaMO6dCBi4buLIHRy4buFIGtoaSBraOG7n2kgaMOgbmggdGjhuqVwDQoNCispIE3hu6ljIMSR4buZIGjDoGkgbMOybmcgY+G7p2EgaMOgbmgga2jDoWNoIMSR4buRaSB24bubaSBow6NuZyBow6BuZyBraMO0bmcgKFNGKSBjw7Mg4bqjbmggaMaw4bufbmcgxJHhur9uIE3hu6ljIMSR4buZIGjDoGkgbMOybmcgduG7gSBk4buLY2ggduG7pSB0csOqbiBjaHV54bq/biBiYXkgduG7m2kgaOG7hyBz4buRIG1hbmcgZOG6pXUgKCspIGNobyB0aOG6pXkgTeG7qWMgxJHhu5kgaMOgaSBsw7JuZyB24buBIGThu4tjaCB24bulIHRyw6puIGNodXnhur9uIGJheSBjYW8ga2hpIGtow6FjaCBow6BuZyBjw7MgTeG7qWMgxJHhu5kgaMOgaSBsw7JuZyBj4bunYSBow6BuaCBraMOhY2ggxJHhu5FpIHbhu5tpIGjDo25nIGjDoG5nIGtow7RuZyB0aHXhu5ljIG5ow7NtIHNhdGlzZmllZC4NCg0KTUhsb2dpdDogbG9naXQoz4ApID0gbG9nKM+ALzHiiJLPgCkgPSAwLjg4OTkzOTQgKyAwLjEyODE5MjdHZW5kZXJNYWxlICsgMS40MzQ1MDg3VHJhdmVsUGVyc29uYWwgVHJhdmVsIC0gMS4xMTQ3NjU5Q3VzdG9tZXJMb3lhbCBDdXN0b21lciAtIDAuODQ5Mjg0M0RMJENsYXNzRWNvIC0gMC44OTM3NzA2REwkQ2xhc3NFY28gUGx1cyAtIDAuMjEzNDQxOEFnZXRydW5nbmllbiAtIDAuMDAxOTEwOURMJERESU0gKyAxLjU2Nzg2NjlTRnNhdGlzZmllZCANCg0KIyBDSMavxqBORyA1OiBL4bq+VCBMVeG6rE4gVsOAIEtJ4bq+TiBOR0jhu4oNCg0KIyMgNS4xIEvhur90IGx14bqtbg0KDQpL4bq/dCBxdeG6oyBuZ2hpw6puIGPhu6l1IGNobyB0aOG6pXkgdGjDtG5nIHF1YSB2aeG7h2MgcGjDom4gdMOtY2ggxJHhu4tuaCB0w61uaCBr4bq/dCBo4bujcCDEkeG7i25oIGzGsOG7o25nLCBz4butIGThu6VuZyBi4buZIHPhu5EgbGnhu4d1IHRodSBuaOG6rXAgY+G7p2EgbeG7mXQgaMOjbmcgaMOgbmcga2jDtG5nIHbDoCDGsOG7m2MgbMaw4bujbmcgbcO0IGjDrG5oIGjhu5NpIHF1eSB04buVbmcgcXXDoXQgY2hvIGPDoWMgYmnhur9uIHThu6sgxJHDsyBraeG7g20gxJHhu4tuaCB2w6AgbOG7sWEgY2jhu41uIG3DtCBow6xuaCBwaMO5IGjhu6NwIMSR4buDIGNo4buJIHJhIG3hu6ljIMSR4buZIGjDoGkgbMOybmcgduG7gSBk4buLY2ggduG7pSB0csOqbiBjaHV54bq/biBiYXkgY+G7p2EgaMOgbmgga2jDoWNoIHBo4bulIHRodeG7mWMgdsOgIGLhu4sgdMOhYyDEkeG7mW5nIGLhu59pIGPDoWMgeeG6v3UgdOG7kSBuw6BvLiBU4burIMSRw7MgxJHGsGEgcmEgcGjGsMahbmcgw6FuIHbDoCBnaeG6o2kgcGjDoXAgY2hp4bq/biBsxrDhu6NjIHBow7kgaOG7o3AgY+G7pSB0aOG7gyDEkeG7gyBjaGnhur9tIGzEqW5oIHRo4buLIHBo4bqnbiBow6BuZyBraMO0bmcsIGdpYSB0xINuZyBt4bupYyDEkeG7mSBow6BpIGzDsm5nLCB0aHUgaMO6dCBraMOhY2ggaMOgbmcuDQoNCk5naGnDqm4gY+G7qXUgxJHDoyBjaOG7iSByYSBjw6FjIHnhur91IHThu5EgxJHhuqd1IHbDoG8gxJHhu4F1IGPDsyB0w6FjIMSR4buZbmcgxJHhur9uIG3hu6ljIMSR4buZIGjDoGkgbMOybmcgY+G7p2Ega2jDoWNoIGjDoG5nIMSR4buRaSB24bubaSBk4buLY2ggduG7pSB0csOqbiBjaHV54bq/biBiYXkgdsOgIG3hu6ljIMSR4buZIHTDoWMgxJHhu5luZyBj4bunYSBt4buXaSBiaeG6v24gbMOgIGtow6FjIG5oYXUuIE5naGnDqm4gY+G7qXUgxJHDoyBjaOG7iSByYSBy4bqxbmcgY8OhYyB54bq/dSB04buRIFRyYXZlbCwgQ2xhc3MsIEN1c3RvbWVyLCBBZ2UsIFNGIGPDsyB0w6FjIMSR4buZbmcgbeG6oW5oIHThu5tpIG3hu6ljIMSR4buZIGjDoGkgbMOybmcgY+G7p2Ega2jDoWNoIGjDoG5nIMSR4buRaSB24bubaSBk4buLY2ggduG7pSB0csOqbiBjaHV54bq/biBiYXkgY8OybiAyIHnhur91IHThu5EgR2VuZGVyLCBERElNIGPFqW5nIHTDoWMgxJHhu5luZyBt4bupYyDEkeG7mSBow6BpIGzDsm5nIGPhu6dhIGtow6FjaCBow6BuZyDEkeG7kWkgduG7m2kgZOG7i2NoIHbhu6UgdHLDqm4gY2h1eeG6v24gYmF5IHbhu5tpIG3hu6ljIMSR4buZIHbhu6thIOG7nyBt4bupYyDDvSBuZ2jEqWEgNSUuDQoNCiMjIDUuMiBLaeG6v24gbmdo4buLDQoNCkThu7FhIHRyw6puIGvhur90IHF14bqjIHBow6JuIHTDrWNoIHTDoWMgxJHhu5luZyBjw6FjIHnhur91IHThu5EgbmjGsCBt4bulYyDEkcOtY2ggZHUgbOG7i2NoLCBnaeG7m2kgdMOtbmgsLi4uIHbDoCBt4buZdCBz4buRIGJp4bq/biBraMOhYyBjw7Mgw70gbmdoxKlhIOG6o25oIGjGsOG7n25nIMSR4bq/biBt4bupYyDEkeG7mSBow6BpIGzDsm5nIGPhu6dhIGtow6FjaCBow6BuZyDEkeG7kWkgduG7m2kgZOG7i2NoIHbhu6UgdHLDqm4gY2h1eeG6v24gYmF5LCBuZ2hpw6puIGPhu6l1IMSRxrBhIHJhIG3hu5l0IHPhu5Ega2h1eeG6v24gbmdo4buLLCBjaMOtbmggc8OhY2ggdsOgIGNoaeG6v24gbMaw4bujYyBuaOG6sW0gxJHDoW5oIHbDoG8gdMOibSBsw70ga2jDoWNoIGjDoG5nLCDEkcawYSByYSBnaeG6o2kgcGjDoXAgcGjDuSBo4bujcCDEkeG7gyBjaGnhur9tIGzEqW5oIHRo4buLIHRyxrDhu51uZywgZ2lhIHTEg25nIG3hu6ljIMSR4buZIGjDoGkgbMOybmcsIHRodSBow7p0IGtow6FjaCBow6BuZy4gQ2jhurNuZyBo4bqhbiBuaMawIGPDoWMgaMOjbmcgaMOgbmcga2jDtG5nIG7Dqm4gbMOgbSBjw6FjIGN14buZYyBraOG6o28gc8OhdCB24buBIGNo4bqldCBsxrDhu6NuZywgZOG7i2NoIHbhu6UsIMSRw6BvIHThuqFvIGNodXnDqm4gc8OidSBjaG8gbmjDom4gdmnDqm4sLi4uIMSR4buDIGhp4buDdSByw7UgxJHGsOG7o2MgxJFp4buDbSBt4bqhbmggxJFp4buDbSB54bq/dSB24buBIGThu4tjaCB24bulIGPhu6dhIGjDo25nIG3DrG5oLCB0aOG6pXUgaGnhu4N1IHTDom0gbMO9IGPhu6dhIG5o4buvbmcgaMOgbmgga2jDoWNoIGThu4UgZMOgbmcgxJHGsGEgcmEgY8OhY2ggeOG7pyBsw70gdMOsbmggaHXhu5FuZyBwaMO5IGjhu6NwLg0KDQpUcm9uZyBi4buRaSBj4bqjbmggbuG7gW4ga2luaCB04bq/IHBow6F0IHRyaeG7g24sIG5odSBj4bqndSDEkWkgbOG6oWkgYuG6sW5nIG3DoXkgYmF5IHTEg25nIGNhbyBraGnhur9uIGNobyBjw6FjIGjDo25nIGjDoG5nIGtow7RuZyB0cmFuaCBuaGF1IHbhu4EgZ2nDoSBj4bqjLCBk4buLY2ggduG7pSwgY2jhuqV0IGzGsOG7o25nIMSR4buDIGNoaeG6v20gbMSpbmggdGjhu4sgdHLGsOG7nW5nLiBDaMOtbmggdsOsIHRo4bq/IGPDoWNoIMSR4buDIGPDsyB0aOG7gyB0aHUgaMO6dCBraMOhY2ggaMOgbmcgbMOgIG7Dom5nIGNhbyBjaOG6pXQgbMaw4bujbmcgZOG7i2NoIHbhu6UgdHLDqm4gY2h1eeG6v24gYmF5IG5nw6B5IG3hu5l0IHThu5F0IGjGoW4uIEPDoWMgaMOjbmcgaMOgbmcga2jDtG5nIG7Dqm4gY2jDuiDDvSB2w6AgdOG6rXAgdHJ1bmcgdsOgbyBjw6FjIHnhur91IHThu5Eg4bqjbmggaMaw4bufbmcgxJHhur9uIGNo4bqldCBsxrDhu6NuZyBk4buLY2ggduG7pSB0csOqbiBjaHV54bq/biBiYXkgxJHhu4Mga2jDoWNoIGjDoG5nIGjDoGkgbMOybmcgdsOgIGNo4buNbiBow6NuZyBow6BuZyBraMO0bmcgY+G7p2EgbcOsbmggxJHhu4MgZGkgY2h1eeG7g24uDQoNCiMgVMOASSBMSeG7hlUgVEhBTSBLSOG6ok8NCg0KMS4gVC5LLlRoYW5oLCBULk0uVMaw4budbmcsIFYuQS5MLkR1eSwgQsOgaSBnaeG6o25nIFBow6JuIHTDrWNoIGThu68gbGnhu4d1IMSR4buLbmggdMOtbmguDQo=