1 LỜI CẢM ƠN

Em xin chân thành cảm ơn thầy Trần Mạnh Tường, trong suốt quá trình học tập bộ môn Mô phỏng ngẫu nhiên em đã nhận được sự quan tâm, giúp đỡ, hướng dẫn tận tình, nhiệt huyết của thầy. Thầy đã giúp em tích lũy được thêm nhiều kiến thức liên quan đến môn học.

Em cũng xin cảm ơn trường Đại học Tài Chính - Marketing đã tạo điều kiện về cơ sở vật chất, tài liệu để em có một môi trường học tập hiệu quả.

Trong quá trình học tập, cũng như là trong quá trình làm báo cáo khó tránh khỏi những thiếu sót rất mong thầy bỏ qua. Em rất mong nhận được những ý kiến đóng góp của thầy để bản thân có thể học hỏi thêm nhiều kinh nghiệm và hoàn thành tốt hơn trong những bài báo cáo sắp tới.

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

2 PHẦN MỞ ĐẦU

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

Kể từ khi ra đời vào năm 2008, thị trường tiền mã hoá đã trải qua một hành trình dài và đáng chú ý, với hơn 12.000 loại tiền tệ khác nhau hiện đang hoạt động và thu hút hàng triệu nhà đầu tư tham gia giao dịch hàng ngày. Bitcoin, với vai trò là đồng tiền mã hoá hàng đầu, đã từng bước vượt qua hình ảnh ban đầu chỉ dành cho những “kẻ nghiện internet”, trở thành một tài sản quý báu được tích hợp vào danh mục đầu tư của các quỹ hàng đầu trên toàn cầu. Sự lạc quan về triển vọng của thị trường tiền mã hoá càng tăng lên khi chứng chỉ ETF Bitcoin đầu tiên đã được niêm yết trên sàn giao dịch chứng khoán New York (NYSE) vào tháng 10 năm 2021, mở ra một chương mới trong việc thể hiện sự chấp nhận và tích hợp của Bitcoin vào hệ thống tài chính toàn cầu.

Một trong những rào cản chính khiến những nhà đầu tư cẩn trọng đối với thị trường Bitcoin và các loại tiền mã hoá khác chính là mức độ biến động quá cao của tỷ giá hối đoái của chúng so với các loại tiền tệ pháp định khác. Điều này làm cho giá Bitcoin trở nên quá biến đổi, tạo ra một tình trạng không chắc chắn trong việc đầu tư. Ví dụ, giá Bitcoin đã trải qua một sự tăng vọt từ mức gần 1000 USD vào đầu năm 2017 lên tới khoảng 20.000 USD vào cuối năm cùng năm, đạt tốc độ tăng trưởng lên tới 2.000% trong một năm. Tuy nhiên, sau đó một cách nhanh chóng, giá Bitcoin lại giảm đi tới 80% giá trị trong năm tiếp theo, đẩy hàng triệu nhà đầu tư vào tình trạng thua lỗ đáng kể. Kể từ năm 2020, dưới tác động của đại dịch Covid-19, sự chảy vào của dòng tiền nhàn rỗi và nhu cầu đầu tư từ khắp nơi trên thế giới đã đẩy giá Bitcoin lên mức kỷ lục trên 60.000 USD. Tuy nhiên, những biến động không thể dự đoán này, cùng với các đặc tính độc đáo của loại tiền này, luôn khiến các nhà đầu tư tự đặt câu hỏi về giá trị thực sự của Bitcoin.

Từ thực trạng trên, tác giả đã lựa chọn đề tài nghiên cứu: “Mô phỏng các yếu tố ảnh hưởng đến giá Bitcoin” để mô phỏng giá bitcoin trong thời gian tới

2.2 Mục đích nghiên cứu

  • Xác định các yếu tố ảnh hưởng đến giá bitcoin. Từ đó mô phỏng các yếu tố và giá bitcoin trong thời gian tới

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

Đối tượng: Các yếu tố ảnh hưởng đến giá bitcoin

Phạm vi: Các yếu tố ảnh hưởng đến giá bitcoin giai đoạn 2018 - 2023.

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

3.1 Phương pháp mô phỏng Monte Carlo

Phương pháp Monte Carlo được sử dụng để ước lượng giá trị trung bình \(\mu\) của một biến ngẫu nhiên X. Giả sử quá trình mô phỏng sinh được biến ngẫu nhiên X. Quá trình đó được lặp lại n lần độc lập, sinh ra n biến ngẫu nhiên độc lập, cùng phân phối \(X_1, X_2,..., X_n\). Ước lượng \(\mu=EX\) thông qua

\[\mu_n=\frac{1}{n}\sum_{1}^{n} X_i\] Giá trị \(\mu_n\) được gọi là ước lượng thử lập hay ước lượng thử thống kê đối với \(\mu\). Luật yếu các số lớn Khinchin khẳng định:

Nếu \(E|X_1|<\infty\), thì \(\mu_n\longrightarrow \mu\). Như vậy, \(\mu_n\) là một ước lượng vững cho \(\mu\). Mặc khác ta cũng có \(E\mu_n=\mu\) nên \(\mu\) cũng là một ước lượng không chênh lệch cho \(\mu\). Do đó nếu chúng ta tiến hành số n lần lặp lại mô phỏng khá lớn thì \(\mu_n\) sẽ rất gần \(\mu\). Điều này cho thấy Luật yếu các số lớn dạng Khinchin là cơ sở toán học cho phương pháp Monte Carlo.

Để đánh giá sai số và tốc độ hội tụ trong ước lượng bằng phương pháp Monte Carlo, xét các kết quả cổ điển trong Lý thuyết xác suất.

Giả sử \(\mu_n\) là ước lượng thử thống kê của \(\mu=E(X)\) sao cho \(Var(X)=\sigma^2<\infty\). Khi đó, có một đánh giá sai số của ước lượng thử thống kê thông qua bất đẳng thức Chebyshev như sau:

\[P(|\mu_n-\mu|\leq\frac{k\sigma}{\sqrt{n}})\geq1-\frac{1}{k^2}\]

với mọi k > 0

Như vậy, khi đánh giá sai số của ước lượng thử thống kê thông qua bất đẳng thức Chebyshev, ta thấy rằng với xác suất không bé hơn \(1-\frac{1}{k^2}\), sai số của ước lượng thử thống kê là \(\frac{k\sigma}{\sqrt{n}}\) với k > 0 bất kỳ (chẳng hạn, với k = 10, thì với xác suất không bé hơn 0,99, sai số ước lượng thử thống kê là \(\frac{10\sigma}{\sqrt{n}}\)).

Giả sử \(Var(X)=\sigma^2<\infty\), Định lý giới hạn trung tâm cho thấy:

\[n^{-1/2}(\mu_n-\mu)\longrightarrow\sigma N(0,1),khi: n\longrightarrow\infty\]

ở đây → chỉ sụ hội tụ theo phân phối. Giới hạn trên có thể biểu diễn dưới dạng sau:

\[\mu\approx\mu+\frac{\sigma}{\sqrt{n}}N(0,1)\]

khi n lớn.

ở đây ≈ là ký hiệu chỉ sự xấp xỉ theo phân phối. Do đó nếu số lần mô phỏng n là lớn, sai số trong phương pháp Monte Carlo sẽ:

  1. giảm theo tỷ lệ \(n^{-1/2}\) tức là sai số của ước lượng thử thống kê có dạng 0(\(n^{-1/2}\)).

  2. xấp xỉ phân phối chuẩn chính tắc.

  3. phụ thuộc dữ liệu bài toán chỉ qua phương sai \(\sigma^2=Var(X)\).

Như vậy, với n đủ lớn sai số của ước lượng thử thống kê có thể được đánh giá qua kết quả sau: Giả sử \(\mu_n\) là ước lượng thử thống kê của \(\mu=E(X)\), sao cho \(Var(X)=\sigma^2<\infty\). Khi đó với n đủ lớn, ta có thể có một đánh giá sai số của ước lượng thử thống kê \(\mu_n\) đối với \(\mu\) theo quy tắc \(k-\sigma\) sau:

\[P(|\mu_n-\mu|\leq\frac{k\sigma}{\sqrt{n}})\approx \Phi(k)-\Phi(-k),\]

trong đó

\[\Phi(x)=\frac{1}{\sqrt{2\pi}}\int_{-\infty}^x \mathrm{e}^{\frac{-1}{2}t^2}\,\mathrm{d}t.\]

3.2 Các phân phối xác suất

3.2.1 Phân phối đều rời rạc

Phân phối đều rời rạc là phân phối của biến ngẫu nhiên X trong đó X nhân giá trị trong một tập hữu hạn và X nhận giá trị bằng mỗi phần tử của tập đó với xác suất bằng nhau.

Mỗi giá trị có cùng xác suất xảy ra là \(\frac{1}{n}\). Kí hiệu \(X\backsim U(a,b);a,b\in N\) với (a,b) là khoảng giá trị của X.

Ví dụ: Tung một xúc sắc đồng chất, gọi X là số nút xuất hiện, khi đó \(X\backsim U(1,6); f(x)=1/6; x=1,2,...,6; \mu=3.5;\sigma^2=35/12\)

3.2.2 Phần phối Beroulli

Phân phối Bernoulli là một phân phối xác suất rời rạc của biến ngẫu nhiên chỉ nhận hai giá trị 0 hoặc 1, trong đó giá trị 1 đạt được với xác suất p (gọi là xác suất thành công) và giá trị 0 đạt được với xác suất q = 1 - p (gọi là xác suất thất bại).

Ví dụ: Gọi X là kết quả từ thí nghiệm tung đồng xu cân đối, nếu đồng xu xuất hiện mặt sấp ta cho X=1, ngược lại nếu X xuất hiện mặt ngửa thì cho X=0. Ta có \(P(X=1)=P(X=0)=1/2;\mu=1/2;\sigma^2=1/4\)

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

Phân phối nhị thức là một phân phối xác suất tóm tắt khả năng để một giá trị lấy một trong hai giá trị độc lập trong một tập hợp các tham số hoặc giả định nhất định.

Phân phối nhị thức thể hiện xác suất để x thành công trong n phép thử, với xác suất thành công p của mỗi phép thử.

Ví dụ: Một casino đưa ra một trò chơi mà người tham gia có thể đặt cược vào số lần ra mặt ngửa hay mặt sấp trong một số lần tung đồng xu nhất định. Giả sử một người chơi đặt cược 15$ là sẽ có 6 lần ra mặt ngửa trong 20 lần tung đồng xu. Người chơi đó muốn tính xác suất xảy ra của trường hợp này nên anh ấy sử dụng phân phối nhị thức. Kết quảlà xác suất để xuất hiện chính xác 6 mặt ngửa trong 20 lần tung đồng xu là 0,037 hay 3,7%. Giá trị ước tính là 15, vì thế người chơi này đã đặt cược vào cửa không tốt.

3.2.4 Phân phối Poisson

Trong lý thuyết xác suất và thống kê, phân phối Poisson là một phân phối xác suất rời rạc. Nó khác với các phân phối xác suất rời rạc khác ở chỗ thông tin biết không phải là xác suất để một sự kiện xảy ra thành công trong một lần thử như trong phân phối Bernoulli hay là số lần mà sự kiện đó xảy ra trong n lần thử như trong phân phối nhị thức, mà chính là trung bình số lần xảy ra thành công của một sự kiện trong một khoảng thời gian nhất định. Gía trị trung bình này được gọi là lambda, kí hiệu là λ . Phân phối Poisson còn được dùng cho khoảng mà đơn vị khác thời gian như: khoảng cách, diện tích hay thể tích. Một ví dụ cổ điển là sự phân rã hạt nhân của các nguyên tử.

Ví dụ: Trung bình mỗi phút có 4 lượt đặt lệnh gửi đến hệ thống sàn giao dịch chứng khoán. Gọi X là số lượt đặt lệnh đó trong 1 phút, khi đó X có phân phối Poisson với trung bình λ = 4.

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

Phân phối xác suất của biến siêu bội ngẫu nhiên được gọi là phân phối siêu bội.

Phân phối siêu bội được dùng để tính xác suất có X phần tử mang dấu hiệu A nào đó khi lấy ngẫu nhiên n phần tử theo phương thức không hoàn lại từ một tập hợp gồm N phần tử.

Ví dụ: Một công ty sản xuất nước suối 1 ngày sản xuất ra 1000 chai, trong đó có 15 chai không đạt chuẩn. Lấy ngẫu nhiên 5 chai nước suối từ công ty. Gọi X là số chai không đạt chuẩn trong 5 chai lấy ra, lúc này X là một biến ngẫu nhiên tuân theo phân phối siêu bội.

3.2.6 Phân phối mũ

Trong lý thuyết xác suất và thống kê, phân phối mũ là một lớp của các phân bố xác suất liên tục. Chúng thường được dùng để mô hình thời gian giữa các biến cố xảy ra theo một tỷ lệ trung bình là hằng số.

Phân phối mũ đại diện cho một phân phối xác suất giúp mô tả thời gian giữa hai sự kiện trong một quá trình Poisson. Trong quá trình Poisson, các sự kiện xảy ra liên tục và độc lập theo một tần suất trung bình không đổi. Phân phối mũ là một trường hợp đặc biệt của phân phối gamma.

Ví dụ: số lần thả xúc xắc cần thiết cho đến khi bạn thả được lục liên tục 11 lần.

3.2.7 Phân phối xác suất Weibull

Phân phối xác suất Weibull là một phân phối dữ liệu liên tục trong họ phân phối hàm mũ.

Phân phối xác suất Weibull là một dạng thường dùng để mô tả thống kê sự xuất hiện của các đại lượng cực trị trong khí tượng, thuỷ văn và dự báo thời tiết như dòng chảy lũ, sóng, gió lớn nhất. Ngoài ra phân bố này cũng hay được dùng trong phân tích xác suất sống sót hoặc phá huỷ trong lý thuyết độ tin cậy, dùng trong lý thuyết cực trị; biểu diễn thời gian sản xuất và phân phối trong công nghiệp; sự phân tán tín hiệu radar và sự suy giảm tín hiệu trong liên lạc không dây

3.2.8 Phân phối Gamma

Phân phối gamma là một loại phân phối thống kê có liên quan đến phân phối beta. Phân phối này phát sinh tự nhiên trong đó thời gian chờ giữa các sự kiện được phân phối Poisson có liên quan đến nhau.

Phân phối Gamma biểu diễn phân phối xác suất liên tục của hai họ tham số. Phân phối Gamma được đưa ra với ba dạng kết hợp tham số:

  • Một tham số định dạng k và một tham số phạm vi θ.

  • Một tham số định dạng α = k và một tham số phạm vi ngược β=1/θ, được gọi là tham số tỉ lệ.

  • Một tham số định dạng k và một tham số trung bình μ=k/β

3.2.9 Phân phối Cauchy

Phân phối Cauchy được đặt tên theo nhà toán học người Pháp Augustin-Louis Cauchy (1789 - 1857). Mặc dù phân phối này được đặt tên cho Cauchy, nhưng thông tin liên quan đến việc phân phối lần đầu tiên được xuất bản bởi Poisson. Phân phối Cauchy là một phân phối không có kỳ vọng hay phương sai.

3.2.10 Phân phối Pareto

Phân phối Pareto là phân phối xác suất theo luật quyền lực được đặt tên theo kỹ sư dân dụng, nhà kinh tế học và nhà xã hội học người Ý Vilfredo Pareto , được sử dụng để mô tả xã hội, khoa học, địa vật lý, tính toán và nhiều loại hiện tượng quan sát được khác. Phân phối Pareto đôi khi còn được gọi là Nguyên tắc Pareto hoặc quy tắc ‘80 –20’, vì quy tắc nói rằng 80% của cải của xã hội do 20% dân số nắm giữ. Phân phối Pareto không phải là quy luật tự nhiên, mà là một quan sát. Nó hữu ích trong nhiều vấn đề trong thế giới thực. Nó là một phân phối lệch nhiều.

Phân phối Pareto, ngoài việc mô tả phân phối tài sản hay thu nhập, còn dùng để mô tả những trạng thái, sự việc mà sự cân bằng được rút ra từ phân phối của “cái nhỏ” đến “cái lớn”.

Ví dụ: Tần số xuất hiện các từ trong bài văn dài.

3.2.11 Phân phối loga-chuẩn

Phân phối xác suất loga chuẩn có thể được chuyển hóa thành phân phối chuẩn và ngược lại bằng cách sử dụng các tính toán logarit liên quan. Phân phối chuẩn được hiểu là phân phối xác suất của các kết quả đối xứng hoặc tạo thành một đường cong hình chuông. Trong một phân phối chuẩn, 68% kết quả nằm trong một độ lệch chuẩn và 95% nằm trong hai độ lệch chuẩn so với giá trị trung bình. Phân phối chuẩn cho phép các biến ngẫu nhiên có thể âm trong khi phân phối loga chuẩn có tất cả các biến đều dương

3.3 Thuật toán tạo ra các số giả ngẫu nhiên

3.3.1 Phương pháp nửa bình phương (Midsquare method)

Phương pháp nửa bình phương được giới thiệu vào năm 1949 bởi John von Neumann. Phương pháp này không phải là phương pháp tốt nhất, vì thời gian của nó thường rất ngắn và nó có một số điểm yếu. Tuy nhiên, nó đã đóng vai trò quan trọng buổi ban đầu khi các phương pháp sinh số ngẫu nhiên chưa phát triển.

Để tạo ra một chuỗi các số giả ngẫu nhiên có n chữ số, ta chọn một giá trị dương có n chữ số. Đầu tiên ta bình phương số đó lên, và nhận được một số có 2n chữ số, n chữ số giữa của số bình phương này được dùng làm số thứ 2 của dãy số. Nếu kết quả có ít hơn 2n chữ số, số 0 sẽ được thêm vào đầu số để bù cho đủ 2n chữ số. Tiếp theo, bình phương số thứ n+1 (mới xác định được) lên và n số giữa của số bình phương này được dùng làm số giả ngẫu nhiên thứ 3 của dãy số. Thuật toán sẽ tiếp tục như vậy cho tới khi chọn được dãy số giả ngẫu nhiên yêu cầu hoặc dừng lại khi n số giữa của một số giữa của một số giả ngẫu nhiên được chọn đều có giá trị bằng 0.

Nhận xét:

  • Dãy nhận được không hoàn toàn là “ ngẫu nhiên ” do phụ thuộc vào số ban đầu \(x_0\).

  • Dãy số giả ngẫu nhiên được sinh bởi phương pháp nửa bình phương có chu kỳ ngắn.

  • Hầu như các dữ liệu đầu ra luôn hội tụ về số 0.

3.3.2 Phương pháp đồng dư tuyến tính (Linear congruential method)

Phương pháp đồng dư tuyến tính được D.Lehner đưa ra vào 1951, là một thuật toán tạo ra một chuỗi các số giả ngẫu nhiên được tính toán với một phương trình tuyến tính không liên tục. Phương pháp này là một trong những thuật toán tạo số giả ngẫu nhiên lâu đời nhất và được biết đến nhiều nhất. Phương pháp này tương đối dễ hiểu và được thực hiện dễ dàng, nhanh chóng.

Phương pháp đồng dư tuyến tính có hàm chuyển dạng sau:

\[f(x)=(ax+c)\,\mathrm{mod}\,\mathrm{m}\] Trong đó: a là bội số, c là gia số và m là modun. Ngoài ra các số x, a, c, m ∈ N.

Vậy phương pháp này cho phép sinh ra dãy các số giả ngẫu nhiên theo phép đồng dư tuyến tính như sau:

\[x_{n+1}=(ax_n+c)\,\mathrm{mod}\,\mathrm{m},n\geq0\]

với giá trị khởi đầu \(x_0\) được cho trước sao cho \(0\leq x_0 <m-1\). Do \(0\leq x_i <m-1\), nên để nhận được dãy số ngẫu nhiên có phân phối đều trên [0, 1] là \(x_i\sim Unif(0,1)\), chúng ta đặt \(u_i=x_i/m\).

3.3.3 Phương pháp đệ quy bội

Một sự phát triển của phương pháp đồng dư tuyến tính là phương pháp đệ quy bội, được xây dựng trên cơ sở phép đệ quy sau:

\[x_n=(a_1x_{n-1}+...+x_kx_{n-k})\,\mathrm{mod}\,\mathrm{m}\]

Trong đó k là một số nguyên. Thành phần thứ n của dãy phụ thuộc vào k thành phần trước đó của dãy.

3.3.4 Phương pháp đồng dư cộng tính (Additive congruantial generator)

Phương pháp đồng dư cộng tính được phát triển từ phương pháp đồng dư tuyến tính dựa trên ý tưởng “thanh ghi dịch chuyển hồi tiếp tuyến tính (linear – feedback shift register)”.

Phương pháp đồng dư cộng tính yêu cầu dữ liệu đã có là giá trị khởi đầu và một dãy gồm n số \(x_1,x_2,...,x_n\) đã được sinh ra bởi một phương pháp nào đó. Phương pháp đồng dư cộng tính cho phép sinh ra (thêm) dãy số giả ngẫu nhiên \(x_{n+1},x_{n+2}, x_{n+3},...\) Thuật toán của phương pháp này dựa trên công thức

\[x_j=(x_{j-1}+x_{j-n})\,\mathrm{mod}\,\mathrm{m}\]

Ưu điểm của phương pháp này là tốc độ. Không có bất kỳ phép nhân nào sử dụng ở đây và chu kỳ lớn hơn m.

3.3.5 Phương pháp đồng dư toàn phương (Quadratic congruential generator)

Phương pháp đồng dư toàn phương được sử dụng khi số modun m là một số mũ của 2. Quan hệ đệ quy cho phương pháp này được cho bởi

\[x_n=[x_n(x_n+1)]\,\mathrm{mod}\,\mathrm{m},n\geq0\]

4 CHƯƠNG 2. PHƯƠNG PHÁP NGHIÊN CỨU VÀ MÔ HÌNH

4.1 Mô hình đề xuất

Để mô phỏng các yếu tố tác động đến giá Bitcoin, mô hình hồi quy được xây dựng như sau:

\[BIT=\beta_{0}+\beta_{1}FS100+\beta_{2}NK225+\beta_{3}ND100+\beta_{4}DOLLA+\beta_{5}WTI+\beta_{6}GOLD\]

Trong đó:

  • Biến phụ thuộc: BIT: giá Bitcoin (USD)

  • Biến độc lập:

FS100: Chỉ số FTSE 100 (điểm)

NK225: Chỉ số Nikkei 225 (điểm)

ND100: Chỉ số Nasdaq 100 (điểm)

DOLLA: Chỉ số đô la Hoa Kỳ (điểm)

WTI: Giá dầu thô (USD)

GOLD: Giá vàng (USD)

\(\beta_0\) là hằng số của mô hình.

\(\beta_1,...,\beta_7\) là hệ số hồi quy.

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

Dữ liệu được sử dụng trong bài là chuỗi dữ liệu thời gian theo ngày của các chỉ số chứng khoán đóng cửa tại Anh (FTSE 100), Nhật Bản (Nikkei 225), Hoa kỳ (Nasdaq 100), chỉ số dolla Hoa kỳ, giá dầu thô, giá vàng và giá Bitcoin. Tác giả lấy dữ liệu từ 02 tháng 07 năm 2018 đến 30 tháng 06 năm 2023. Toàn bộ dữ liệu thực hành nghiên cứu được lấy từ website Investing (https://www.investing.com/).

BTC <- read.csv("D:/MPNN/bitcoin.csv")
str(BTC)
## 'data.frame':    1154 obs. of  7 variables:
##  $ BIT  : num  6620 6514 6546 6618 6667 ...
##  $ FS100: num  7548 7593 7603 7618 7688 ...
##  $ NK225: num  21812 21786 21547 21788 22052 ...
##  $ ND100: num  7098 7015 7101 7207 7276 ...
##  $ DOLLA: num  94.3 94 93.8 93.3 93.4 ...
##  $ WTI  : num  73.9 74.1 72.9 73.8 73.8 ...
##  $ GOLD : num  1242 1254 1262 1256 1260 ...

#CHương 3. KẾT QUẢ NGHIÊN CỨU

4.3 Mô tả thống kê

summary(BTC)
##       BIT            FS100          NK225           ND100      
##  Min.   : 3248   Min.   :4994   Min.   :16553   Min.   : 5899  
##  1st Qu.: 8187   1st Qu.:6881   1st Qu.:22199   1st Qu.: 7842  
##  Median :16969   Median :7204   Median :26144   Median :11550  
##  Mean   :21927   Mean   :7077   Mean   :25190   Mean   :11029  
##  3rd Qu.:33483   3rd Qu.:7473   3rd Qu.:28014   3rd Qu.:13387  
##  Max.   :67528   Max.   :8013   Max.   :33706   Max.   :16573  
##      DOLLA             WTI              GOLD     
##  Min.   : 89.39   Min.   : 10.01   Min.   :1184  
##  1st Qu.: 93.87   1st Qu.: 53.26   1st Qu.:1484  
##  Median : 96.46   Median : 64.97   Median :1763  
##  Mean   : 97.47   Mean   : 65.65   Mean   :1671  
##  3rd Qu.:100.23   3rd Qu.: 77.11   3rd Qu.:1852  
##  Max.   :114.05   Max.   :123.70   Max.   :2069
sd(BTC$FS100) #Độ lệch chuẩn biến FS100
## [1] 557.7601
sd(BTC$NK225) #Độ lệch chuẩn biến Nk225
## [1] 3375.166
sd(BTC$ND100) #Độ lệch chuẩn biến Nd100
## [1] 2930.29
sd(BTC$DOLLA) #Độ lệch chuẩn biến Dolla
## [1] 5.066646
sd(BTC$WTI) #Độ lệch chuẩn biến WTI
## [1] 19.97748
sd(BTC$GOLD) #Độ lệch chuẩn biến GOLD
## [1] 245.111

Thông qua kế quả ta thấy:

  • Giá Bitcoin (Bit) có giá trị trung bình là 21927 USD, giá trị nhỏ nhất là 3248 USD và giá trị lớn nhất là 67528 USD.

  • Chỉ số FTSE 100 (FS100) có giá trị trung bình là 7077 điểm, giá trị nhỏ nhất là 4994 điểm và giá trị lớn nhất là 8013 điểm. Độ lệch chuẩn là 557.7601 điểm

  • Chỉ số Nikkei 225 (Nk225) có giá trị trung bình là 25190 điểm, giá trị nhỏ nhất là 16553 điểm và giá trị lớn nhất là 33706 điểm. Độ lệch chuẩn là 3375.166 điểm

  • Chỉ số Nasdaq 100 (Nd100) có giá trị trung bình là 11029 điểm, giá trị nhỏ nhất là 5899 điểm và giá trị lớn nhất là 16573 điểm. Độ lệch chuẩn là 2930.29 điểm

  • Chỉ số đô la Hoa Kỳ (Dolla) có giá trị trung bình là 97.47 điểm, giá trị nhỏ nhất là 89.39 điểm và giá trị lớn nhất là 114.05 điểm. Độ lệch chuẩn là 5.066646 điểm

  • Giá dầu thô (WTI) có giá trị trung bình là 65.65 USD, giá trị nhỏ nhất là 10.01 USD và giá trị lớn nhất là 123.70 USD. Độ lệch chuẩn là 19.97748 USD

  • Giá vàng (GOLD) có giá trị trung bình là 1671 USD, giá trị nhỏ nhất là 1184 USD và giá trị lớn nhất là 2069 USD. Độ lệch chuẩn là 245.111 USD

4.4 Kiểm định phân phối các biến đầu vào

4.4.1 Chỉ số chứng khoán Anh - FS 100

Đồ thị phân phối chỉ số FTSE 100

hist(BTC$FS100, main="Đồ thị phân phối của chỉ số FTSE 100", col = "pink")

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

Giả thuyết:

\(H_{0}\): Biến FS100 tuân theo phân phối chuẩn

\(H_{1}\): Biến FS100 không tuân theo phân phối chuẩn

shapiro.test(BTC$FS100)
## 
##  Shapiro-Wilk normality test
## 
## data:  BTC$FS100
## W = 0.90454, p-value < 2.2e-16

Vì p_value = 2.2e-16 < 0.05 nên ta bác bỏ giả thuyết \(H_{0}\). Nghĩa là chỉ số FTSE 100 không có phân phối chuẩn.

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

Giả thuyết:

\(H_{0}\): Biến FS100 tuân theo phân phối t

\(H_{1}\): Biến FS100 không tuân theo phân phối t

t.test(BTC$FS100)
## 
##  One Sample t-test
## 
## data:  BTC$FS100
## t = 431.01, df = 1153, p-value < 2.2e-16
## alternative hypothesis: true mean is not equal to 0
## 95 percent confidence interval:
##  7044.465 7108.894
## sample estimates:
## mean of x 
##  7076.679

Vì p_value = 2.2e-16 < 0.05 nên ta bác bỏ giả thuyết \(H_{0}\). Nghĩa là chỉ số FTSE 100 không có phân phối t.

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

Giả thuyết:

\(H_{0}\): Biến FS100 tuân theo phân phối Lognormal

\(H_{1}\): Biến FS100 không tuân theo phân phối Lognormal

ks.test(BTC$FS100, "plnorm", meanlog = mean(log(BTC$FS100)), sdlog = sd(log(BTC$FS100)))
## Warning in ks.test.default(BTC$FS100, "plnorm", meanlog = mean(log(BTC$FS100)),
## : ties should not be present for the Kolmogorov-Smirnov test
## 
##  Asymptotic one-sample Kolmogorov-Smirnov test
## 
## data:  BTC$FS100
## D = 0.1697, p-value < 2.2e-16
## alternative hypothesis: two-sided

Vì p_value = 2.2e-16 < 0.05 nên ta bác bỏ giả thuyết \(H_{0}\). Nghĩa là chỉ số FTSE 100 không có phân phối Lognormal.

Mô phỏng biến FS100

Để mô phỏng các biến đầu vào, tác giả sử dụng hàm ‘sample’ để tạo ra một mẫu ngẫu nhiên từ chuỗi dữ liệu gốc với kích thước mẫu là 10000 quan sát.

set.seed(123)
# Tạo bảng tần suất
FS <- table(cut(BTC$FS100, 100, include.lowest = TRUE))

# Mô phỏng dữ liệu mới dựa trên bảng tần suất
FS100 <- sample(as.numeric(FS), size = 10000, replace = TRUE, prob = prop.table(FS))

4.4.2 Chỉ số chứng khoán Nhật Bản - NK225

Đồ thị phân phối chỉ số Nikkei 225

hist(BTC$NK225, main="Đồ thị phân phối của chỉ số Nikkei 225", col = "pink")

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

Giả thuyết:

\(H_{0}\): Biến NK225 tuân theo phân phối chuẩn

\(H_{1}\): Biến NK225 không tuân theo phân phối chuẩn

shapiro.test(BTC$NK225)
## 
##  Shapiro-Wilk normality test
## 
## data:  BTC$NK225
## W = 0.94581, p-value < 2.2e-16

Vì p_value = 2.2e-16 < 0.05 nên ta bác bỏ giả thuyết \(H_{0}\). Nghĩa là chỉ số Nikkei 225 không có phân phối chuẩn.

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

Giả thuyết:

\(H_{0}\): Biến NK225 tuân theo phân phối t

\(H_{1}\): Biến NK225 không tuân theo phân phối t

t.test(BTC$NK225)
## 
##  One Sample t-test
## 
## data:  BTC$NK225
## t = 253.54, df = 1153, p-value < 2.2e-16
## alternative hypothesis: true mean is not equal to 0
## 95 percent confidence interval:
##  24995.40 25385.28
## sample estimates:
## mean of x 
##  25190.34

Vì p_value = 2.2e-16 < 0.05 nên ta bác bỏ giả thuyết \(H_{0}\). Nghĩa là chỉ số Nikkei 225 không có phân phối t.

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

Giả thuyết:

\(H_{0}\): Biến NK225 tuân theo phân phối Lognormal

\(H_{1}\): Biến NK225 không tuân theo phân phối Lognormal

ks.test(BTC$NK225, "plnorm", meanlog = mean(log(BTC$NK225)), sdlog = sd(log(BTC$NK225)))
## Warning in ks.test.default(BTC$NK225, "plnorm", meanlog = mean(log(BTC$NK225)),
## : ties should not be present for the Kolmogorov-Smirnov test
## 
##  Asymptotic one-sample Kolmogorov-Smirnov test
## 
## data:  BTC$NK225
## D = 0.14273, p-value < 2.2e-16
## alternative hypothesis: two-sided

Vì p_value = 2.2e-16 < 0.05 nên ta bác bỏ giả thuyết \(H_{0}\). Nghĩa là chỉ số Nikkei 225 không có phân phối Lognormal.

Mô phỏng biến NK225

Để mô phỏng các biến đầu vào, tác giả sử dụng hàm ‘sample’ để tạo ra một mẫu ngẫu nhiên từ chuỗi dữ liệu gốc với kích thước mẫu là 10000 quan sát.

set.seed(123)
# Tạo bảng tần suất
NK <- table(cut(BTC$NK225, 100, include.lowest = TRUE))

# Mô phỏng dữ liệu mới dựa trên bảng tần suất
NK225 <- sample(as.numeric(NK), size = 10000, replace = TRUE, prob = prop.table(NK))

4.4.3 Chỉ số chứng khoán Hoa Kỳ

Đồ thị phân phối chỉ số Nasdaq 100

hist(BTC$ND100, main="Đồ thị phân phối của chỉ số Nasdaq 100", col = "pink")

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

Giả thuyết:

\(H_{0}\): Biến ND100 tuân theo phân phối chuẩn

\(H_{1}\): Biến ND100 không tuân theo phân phối chuẩn

shapiro.test(BTC$ND100)
## 
##  Shapiro-Wilk normality test
## 
## data:  BTC$ND100
## W = 0.92937, p-value < 2.2e-16

Vì p_value = 2.2e-16 < 0.05 nên ta bác bỏ giả thuyết \(H_{0}\). Nghĩa là chỉ số Nasdaq 100 không có phân phối chuẩn.

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

Giả thuyết:

\(H_{0}\): Biến ND100 tuân theo phân phối Lognormal

\(H_{1}\): Biến ND100 không tuân theo phân phối Lognormal

ks.test(BTC$ND100, "plnorm", meanlog = mean(log(BTC$ND100)), sdlog = sd(log(BTC$ND100)))
## 
##  Asymptotic one-sample Kolmogorov-Smirnov test
## 
## data:  BTC$ND100
## D = 0.12688, p-value < 2.2e-16
## alternative hypothesis: two-sided

Vì p_value = 2.22e-16 < 0.05 nên ta bác bỏ giả thuyết \(H_{0}\). Nghĩa là chỉ số Nasdaq 100 không có phân phối Lognormal.

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

Giả thuyết:

\(H_{0}\): Biến ND100 tuân theo phân phối t

\(H_{1}\): Biến ND100 không tuân theo phân phối t

t.test(BTC$ND100)
## 
##  One Sample t-test
## 
## data:  BTC$ND100
## t = 127.86, df = 1153, p-value < 2.2e-16
## alternative hypothesis: true mean is not equal to 0
## 95 percent confidence interval:
##  10860.15 11198.63
## sample estimates:
## mean of x 
##  11029.39

Vì p_value = 2.2e-16 < 0.05 nên ta bác bỏ giả thuyết \(H_{0}\). Nghĩa là chỉ số Nasdaq 100 không có phân phối t.

Mô phỏng biến ND100

Để mô phỏng các biến đầu vào, tác giả sử dụng hàm ‘sample’ để tạo ra một mẫu ngẫu nhiên từ chuỗi dữ liệu gốc với kích thước mẫu là 10000 quan sát.

set.seed(123)
# Tạo bảng tần suất
ND <- table(cut(BTC$ND100, 100, include.lowest = TRUE))

# Mô phỏng dữ liệu mới dựa trên bảng tần suất
ND100 <- sample(as.numeric(ND), size = 10000, replace = TRUE, prob = prop.table(ND))

4.4.4 Chỉ số đô la Hoa Kỳ

Đồ thị phân phối chỉ số đô la Hoa Kỳ

hist(BTC$DOLLA, main="Đồ thị phân phối của chỉ số đô la Hoa Kỳ", col = "pink")

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

Giả thuyết:

\(H_{0}\): Biến DOLLA tuân theo phân phối chuẩn

\(H_{1}\): Biến DOLLA không tuân theo phân phối chuẩn

shapiro.test(BTC$DOLLA)
## 
##  Shapiro-Wilk normality test
## 
## data:  BTC$DOLLA
## W = 0.9335, p-value < 2.2e-16

Vì p_value = 2.2e-16 < 0.05 nên ta bác bỏ giả thuyết \(H_{0}\). Nghĩa là chỉ số đô la Hoa Kỳ không có phân phối chuẩn.

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

Giả thuyết:

\(H_{0}\): Biến DOLLA tuân theo phân phối Lognormal

\(H_{1}\): Biến DOLLA không tuân theo phân phối Lognormal

ks.test(BTC$DOLLA, "plnorm", meanlog = mean(log(BTC$DOLLA)), sdlog = sd(log(BTC$DOLLA)))
## Warning in ks.test.default(BTC$DOLLA, "plnorm", meanlog = mean(log(BTC$DOLLA)),
## : ties should not be present for the Kolmogorov-Smirnov test
## 
##  Asymptotic one-sample Kolmogorov-Smirnov test
## 
## data:  BTC$DOLLA
## D = 0.13008, p-value < 2.2e-16
## alternative hypothesis: two-sided

Vì p_value = 2.2e-16 < 0.05 nên ta bác bỏ giả thuyết \(H_{0}\). Nghĩa là chỉ số đô la Hoa Kỳ không có phân phối Lognormal.

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

Giả thuyết:

\(H_{0}\): Biến DOLLA tuân theo phân phối t

\(H_{1}\): Biến DOLLA không tuân theo phân phối t

t.test(BTC$DOLLA)
## 
##  One Sample t-test
## 
## data:  BTC$DOLLA
## t = 653.53, df = 1153, p-value < 2.2e-16
## alternative hypothesis: true mean is not equal to 0
## 95 percent confidence interval:
##  97.17993 97.76520
## sample estimates:
## mean of x 
##  97.47256

Vì p_value = 2.2e-16 < 0.05 nên ta bác bỏ giả thuyết \(H_{0}\). Nghĩa là chỉ số đô la Hoa Kỳ không có phân phối t.

Mô phỏng biến DOLLA

Để mô phỏng các biến đầu vào, tác giả sử dụng hàm ‘sample’ để tạo ra một mẫu ngẫu nhiên từ chuỗi dữ liệu gốc với kích thước mẫu là 10000 quan sát.

set.seed(123)
# Tạo bảng tần suất
DLA <- table(cut(BTC$DOLLA, 100, include.lowest = TRUE))

# Mô phỏng dữ liệu mới dựa trên bảng tần suất
DOLLA <- sample(as.numeric(DLA), size = 10000, replace = TRUE, prob = prop.table(DLA))

4.4.5 Giá vàng

Đồ thị phân phối giá vàng

hist(BTC$GOLD, main="Đồ thị phân phối của giá vàng", col = "pink")

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

Giả thuyết:

\(H_{0}\): Biến GOLD tuân theo phân phối chuẩn

\(H_{1}\): Biến GOLD không tuân theo phân phối chuẩn

shapiro.test(BTC$GOLD)
## 
##  Shapiro-Wilk normality test
## 
## data:  BTC$GOLD
## W = 0.8967, p-value < 2.2e-16

Vì p_value = 2.2e-16 < 0.05 nên ta bác bỏ giả thuyết \(H_{0}\). Nghĩa là giá vàng không có phân phối chuẩn.

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

Giả thuyết:

\(H_{0}\): Biến GOLD tuân theo phân phối Lognormal

\(H_{1}\): Biến GOLD không tuân theo phân phối Lognormal

ks.test(BTC$GOLD, "plnorm", meanlog = mean(log(BTC$GOLD)), sdlog = sd(log(BTC$GOLD)))
## Warning in ks.test.default(BTC$GOLD, "plnorm", meanlog = mean(log(BTC$GOLD)), :
## ties should not be present for the Kolmogorov-Smirnov test
## 
##  Asymptotic one-sample Kolmogorov-Smirnov test
## 
## data:  BTC$GOLD
## D = 0.19193, p-value < 2.2e-16
## alternative hypothesis: two-sided

Vì p_value = 2.2e-16 < 0.05 nên ta bác bỏ giả thuyết \(H_{0}\). Nghĩa là giá vàng không có phân phối Lognormal.

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

Giả thuyết:

\(H_{0}\): Biến GOLD tuân theo phân phối t

\(H_{1}\): Biến GOLD không tuân theo phân phối t

t.test(BTC$GOLD)
## 
##  One Sample t-test
## 
## data:  BTC$GOLD
## t = 231.62, df = 1153, p-value < 2.2e-16
## alternative hypothesis: true mean is not equal to 0
## 95 percent confidence interval:
##  1657.064 1685.378
## sample estimates:
## mean of x 
##  1671.221

Vì p_value = 2.2e-16 < 0.05 nên ta bác bỏ giả thuyết \(H_{0}\). Nghĩa là giá vàng không có phân phối t.

Mô phỏng biến WTI

Để mô phỏng các biến đầu vào, tác giả sử dụng hàm ‘sample’ để tạo ra một mẫu ngẫu nhiên từ chuỗi dữ liệu gốc với kích thước mẫu là 10000 quan sát.

set.seed(123)
# Tạo bảng tần suất
DT <- table(cut(BTC$WTI, 100, include.lowest = TRUE))

# Mô phỏng dữ liệu mới dựa trên bảng tần suất
WTI <- sample(as.numeric(DT), size = 10000, replace = TRUE, prob = prop.table(DT))

4.4.6 Giá dầu thô

Đồ thị phân phối giá dầu thô

hist(BTC$WTI, main="Đồ thị phân phối của giá dầu thô", col = "pink")

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

Giả thuyết:

\(H_{0}\): Biến WTI tuân theo phân phối chuẩn

\(H_{1}\): Biến WTI không tuân theo phân phối chuẩn

shapiro.test(BTC$WTI)
## 
##  Shapiro-Wilk normality test
## 
## data:  BTC$WTI
## W = 0.98856, p-value = 7.75e-08

Vì p_value = 7.75e-08 < 0.05 nên ta bác bỏ giả thuyết \(H_{0}\). Nghĩa là giá dầu thô không có phân phối chuẩn.

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

Giả thuyết:

\(H_{0}\): Biến WTI tuân theo phân phối Lognormal

\(H_{1}\): Biến WTI không tuân theo phân phối Lognormal

ks.test(BTC$WTI, "plnorm", meanlog = mean(log(BTC$WTI)), sdlog = sd(log(BTC$WTI)))
## Warning in ks.test.default(BTC$WTI, "plnorm", meanlog = mean(log(BTC$WTI)), :
## ties should not be present for the Kolmogorov-Smirnov test
## 
##  Asymptotic one-sample Kolmogorov-Smirnov test
## 
## data:  BTC$WTI
## D = 0.08943, p-value = 1.925e-08
## alternative hypothesis: two-sided

Vì p_value = 1.925e-08 < 0.05 nên ta bác bỏ giả thuyết \(H_{0}\). Nghĩa là giá dầu thô không có phân phối Lognormal.

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

Giả thuyết:

\(H_{0}\): Biến WTI tuân theo phân phối t

\(H_{1}\): Biến WTI không tuân theo phân phối t

t.test(BTC$WTI)
## 
##  One Sample t-test
## 
## data:  BTC$WTI
## t = 111.64, df = 1153, p-value < 2.2e-16
## alternative hypothesis: true mean is not equal to 0
## 95 percent confidence interval:
##  64.49775 66.80541
## sample estimates:
## mean of x 
##  65.65158

Vì p_value = 2.2e-16 < 0.05 nên ta bác bỏ giả thuyết \(H_{0}\). Nghĩa là giá dầu thô không có phân phối t.

Mô phỏng biến GOLD

Để mô phỏng các biến đầu vào, tác giả sử dụng hàm ‘sample’ để tạo ra một mẫu ngẫu nhiên từ chuỗi dữ liệu gốc với kích thước mẫu là 10000 quan sát.

set.seed(123)
# Tạo bảng tần suất
VANG <- table(cut(BTC$GOLD, 100, include.lowest = TRUE))

# Mô phỏng dữ liệu mới dựa trên bảng tần suất
GOLD <- sample(as.numeric(VANG), size = 10000, replace = TRUE, prob = prop.table(VANG))

4.5 Mô hình mô phỏng

4.5.1 Xây dựng mô hình mô phỏng

model <- lm(BTC$BIT ~ BTC$FS100 + BTC$NK225 +BTC$ND100 + BTC$DOLLA + BTC$WTI + BTC$GOLD, data=BTC)
summary(model)
## 
## Call:
## lm(formula = BTC$BIT ~ BTC$FS100 + BTC$NK225 + BTC$ND100 + BTC$DOLLA + 
##     BTC$WTI + BTC$GOLD, data = BTC)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -14778.4  -4314.9   -799.8   3488.5  22162.3 
## 
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 49576.9947  5375.9374   9.222  < 2e-16 ***
## BTC$FS100      -1.6529     0.5583  -2.960  0.00314 ** 
## BTC$NK225       0.4376     0.1522   2.874  0.00412 ** 
## BTC$ND100       5.4913     0.2294  23.935  < 2e-16 ***
## BTC$DOLLA    -652.2946    50.5023 -12.916  < 2e-16 ***
## BTC$WTI       128.3412    17.3353   7.403 2.56e-13 ***
## BTC$GOLD      -19.3793     1.7391 -11.143  < 2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 6508 on 1147 degrees of freedom
## Multiple R-squared:  0.8479, Adjusted R-squared:  0.8471 
## F-statistic:  1066 on 6 and 1147 DF,  p-value: < 2.2e-16

Từ kết quả hồi quy, ta thấy các biến độc lập FS100, NK225, ND100, WTI và GOLD có ý nghĩa thống kê ở mức ý nghĩa 5%, nghĩa là các biến độc lập này có tác động đến biến phụ thuộc BIT.Kết quả nghiên cứu có phương trình như sau:

\[BIT=49576.9947-1.6529FS100+0.4376NK225+5.4913ND100-652.2946DOLLA+128.3412WTI-19.3793GOLD\]

Ý nghĩa:

\(\beta_{0}\) = 49576.9947 là hệ số tự do, khi các yếu tố độc lập bằng 0 thì giá Bitcoin có giá trị bằng 49576.9947 USD.

\(\beta_{1}\) = -1.6529, khi các yếu tố khác không đổi, chỉ số FTSE 100 tăng lên 1 điểm thì giá Bitcoin giảm 1.6529 USD.

\(\beta_{2}\) = 0.4376, khi các yếu tố khác không đổi, chỉ số Nikkei 225 tăng lên 1 điểm thì giá Bitcoin tăng 0.4376 USD.

\(\beta_{3}\) = 5.4913, khi các yếu tố khác không đổi, chỉ số Nasdaq 100 tăng lên 1 điểm thì giá Bitcoin tăng 5.4913 USD.

\(\beta_{4}\) = -652.2946, khi các yếu tố khác không đổi, chỉ số đô la Hoa Kỳ tăng lên 1 điểm thì giá Bitcoin giảm 652.2946 USD.

\(\beta_{5}\) = 128.3412, khi các yếu tố khác không đổi, giá dầu thô tăng lên 1 USD thì giá Bitcoin tăng 128.3412 USD.

\(\beta_{6}\) = -19.3793, khi các yếu tố khác không đổi, giá vàng tăng lên 1 USD thì giá Bitcoin tăng 19.3793 USD.

4.5.2 Kiểm định mô hình

Từ kết quả trên, ta thấy giá trị Multiple R-squared (\(R^2\)) = 0.8479 cho biết mức độ phù hợp của mô hình là 84,79%.

Thống kê F-statistic có p-value < 0.05 nên có thể kết luận hàm hồi quy mẫu phù hợp hay có ít nhất một biến độc lập có tác động đến biến phụ thuộc.

4.6 Kết quả mô phỏng

Ta sẽ mô phỏng giá Bitcoin trong 10000 phiên giao dịch mới. Ta có mô hình mô phỏng BIT với các hệ số hồi quy như sau:

\[BIT=49576.9947-1.6529FS100+0.4376NK225+5.4913ND100-652.2946DOLLA+128.3412WTI-19.3793GOLD\]

BIT <- 49576.9947 - 1.6529*FS100 + 0.4376*NK225 + 5.4913*ND100 - 652.2946*DOLLA + 128.3412*WTI - 19.3793*GOLD

head(BIT)
## [1] 33707.49 44318.17 37973.04 45811.18 47386.29 26234.25
hist(BIT)

summary(BIT)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   21014   32512   39838   37881   42948   49043

Dựa vào kết quả thống kê mô tả của dữ liệu mô phỏng giá Bitcoin với 10000 quan sát ta thấy giá bitcoin được mô phỏng dao động từ 21014 USD đến 49043 USD, giá trung bình là 37881 USD.

5 CHƯƠNG 4. KẾT LUẬN

6 TÀI LIỆU THAM KHẢO

Trần Lộc Hùng, Trần Mạnh Tường: “Giáo trình Mô phỏng ngẫu nhiên”, trường Đại học Tài chính – Marketing, Thành phố Hồ Chí Minh.

LS0tDQp0aXRsZTogIk3DlCBQSOG7jk5HIEPDgUMgWeG6vlUgVOG7kCDhuqJOSCBIxq/hu55ORyDEkOG6vk4gR0nDgSBCSVRDT0lOIg0KYXV0aG9yOiAiUGjhuqFtIFRo4buLIE5n4buNYyINCmRhdGU6ICIyMDIzLTA3LTMxIg0Kb3V0cHV0Og0KIGh0bWxfZG9jdW1lbnQ6DQogIHRvYzogdHJ1ZQ0KICBudW1iZXJfc2VjdGlvbnM6IHRydWUNCiAgdG9jX2Zsb2F0Og0KICAgIGNvbGxhcHNlZDogZmFsc2UNCiAgICBkZl9wcmludDogcGFnZWQNCiAgICBoaWdobGlnaHQ6IGthdGUNCiAgY29kZV9mb2xkaW5nOiBoaWRlDQogIGNvZGVfZG93bmxvYWQ6IHRydWUNCi0tLQ0KDQojIEzhu5xJIEPhuqJNIMagTg0KDQpFbSB4aW4gY2jDom4gdGjDoG5oIGPhuqNtIMahbiB0aOG6p3kgVHLhuqduIE3huqFuaCBUxrDhu51uZywgdHJvbmcgc3Xhu5F0IHF1w6EgdHLDrG5oIGjhu41jIHThuq1wIGLhu5kgbcO0biBNw7QgcGjhu49uZyBuZ+G6q3Ugbmhpw6puIGVtIMSRw6Mgbmjhuq1uIMSRxrDhu6NjIHPhu7EgcXVhbiB0w6JtLCBnacO6cCDEkeG7oSwgaMaw4bubbmcgZOG6q24gdOG6rW4gdMOsbmgsIG5oaeG7h3QgaHV54bq/dCBj4bunYSB0aOG6p3kuIFRo4bqneSDEkcOjIGdpw7pwIGVtIHTDrWNoIGzFqXkgxJHGsOG7o2MgdGjDqm0gbmhp4buBdSBraeG6v24gdGjhu6ljIGxpw6puIHF1YW4gxJHhur9uIG3DtG4gaOG7jWMuDQoNCkVtIGPFqW5nIHhpbiBj4bqjbSDGoW4gdHLGsOG7nW5nIMSQ4bqhaSBo4buNYyBUw6BpIENow61uaCAtIE1hcmtldGluZyDEkcOjIHThuqFvIMSRaeG7gXUga2nhu4duIHbhu4EgY8ahIHPhu58gduG6rXQgY2jhuqV0LCB0w6BpIGxp4buHdSDEkeG7gyBlbSBjw7MgbeG7mXQgbcO0aSB0csaw4budbmcgaOG7jWMgdOG6rXAgaGnhu4d1IHF14bqjLiANCg0KVHJvbmcgcXXDoSB0csOsbmggaOG7jWMgdOG6rXAsIGPFqW5nIG5oxrAgbMOgIHRyb25nIHF1w6EgdHLDrG5oIGzDoG0gYsOhbyBjw6FvIGtow7MgdHLDoW5oIGto4buPaSBuaOG7r25nIHRoaeG6v3Ugc8OzdCBy4bqldCBtb25nIHRo4bqneSBi4buPIHF1YS4gRW0gcuG6pXQgbW9uZyBuaOG6rW4gxJHGsOG7o2Mgbmjhu69uZyDDvSBraeG6v24gxJHDs25nIGfDs3AgY+G7p2EgdGjhuqd5IMSR4buDIGLhuqNuIHRow6JuIGPDsyB0aOG7gyBo4buNYyBo4buPaSB0aMOqbSBuaGnhu4F1IGtpbmggbmdoaeG7h20gdsOgIGhvw6BuIHRow6BuaCB04buRdCBoxqFuIHRyb25nIG5o4buvbmcgYsOgaSBiw6FvIGPDoW8gc+G6r3AgdOG7m2kuDQoNCiBFbSB4aW4gY2jDom4gdGjDoG5oIGPhuqNtIMahbiEgDQoNCg0KIyBQSOG6pk4gTeG7niDEkOG6plUNCg0KIyMgTMO9IGRvIGNo4buNbiDEkeG7gSB0w6BpDQoNCiAgS+G7gyB04burIGtoaSByYSDEkeG7nWkgdsOgbyBuxINtIDIwMDgsIHRo4buLIHRyxrDhu51uZyB0aeG7gW4gbcOjIGhvw6EgxJHDoyB0cuG6o2kgcXVhIG3hu5l0IGjDoG5oIHRyw6xuaCBkw6BpIHbDoCDEkcOhbmcgY2jDuiDDvSwgduG7m2kgaMahbiAxMi4wMDAgbG/huqFpIHRp4buBbiB04buHIGtow6FjIG5oYXUgaGnhu4duIMSRYW5nIGhv4bqhdCDEkeG7mW5nIHbDoCB0aHUgaMO6dCBow6BuZyB0cmnhu4d1IG5ow6AgxJHhuqd1IHTGsCB0aGFtIGdpYSBnaWFvIGThu4tjaCBow6BuZyBuZ8OgeS4gQml0Y29pbiwgduG7m2kgdmFpIHRyw7IgbMOgIMSR4buTbmcgdGnhu4FuIG3DoyBob8OhIGjDoG5nIMSR4bqndSwgxJHDoyB04burbmcgYsaw4bubYyB2xrDhu6N0IHF1YSBow6xuaCDhuqNuaCBiYW4gxJHhuqd1IGNo4buJIGTDoG5oIGNobyBuaOG7r25nICJr4bq7IG5naGnhu4duIGludGVybmV0IiwgdHLhu58gdGjDoG5oIG3hu5l0IHTDoGkgc+G6o24gcXXDvSBiw6F1IMSRxrDhu6NjIHTDrWNoIGjhu6NwIHbDoG8gZGFuaCBt4bulYyDEkeG6p3UgdMawIGPhu6dhIGPDoWMgcXXhu7kgaMOgbmcgxJHhuqd1IHRyw6puIHRvw6BuIGPhuqd1LiBT4buxIGzhuqFjIHF1YW4gduG7gSB0cmnhu4NuIHbhu41uZyBj4bunYSB0aOG7iyB0csaw4budbmcgdGnhu4FuIG3DoyBob8OhIGPDoG5nIHTEg25nIGzDqm4ga2hpIGNo4bupbmcgY2jhu4kgRVRGIEJpdGNvaW4gxJHhuqd1IHRpw6puIMSRw6MgxJHGsOG7o2MgbmnDqm0geeG6v3QgdHLDqm4gc8OgbiBnaWFvIGThu4tjaCBjaOG7qW5nIGtob8OhbiBOZXcgWW9yayAoTllTRSkgdsOgbyB0aMOhbmcgMTAgbsSDbSAyMDIxLCBt4bufIHJhIG3hu5l0IGNoxrDGoW5nIG3hu5tpIHRyb25nIHZp4buHYyB0aOG7gyBoaeG7h24gc+G7sSBjaOG6pXAgbmjhuq1uIHbDoCB0w61jaCBo4bujcCBj4bunYSBCaXRjb2luIHbDoG8gaOG7hyB0aOG7kW5nIHTDoGkgY2jDrW5oIHRvw6BuIGPhuqd1Lg0KDQogIE3hu5l0IHRyb25nIG5o4buvbmcgcsOgbyBj4bqjbiBjaMOtbmgga2hp4bq/biBuaOG7r25nIG5ow6AgxJHhuqd1IHTGsCBj4bqpbiB0cuG7jW5nIMSR4buRaSB24bubaSB0aOG7iyB0csaw4budbmcgQml0Y29pbiB2w6AgY8OhYyBsb+G6oWkgdGnhu4FuIG3DoyBob8OhIGtow6FjIGNow61uaCBsw6AgbeG7qWMgxJHhu5kgYmnhur9uIMSR4buZbmcgcXXDoSBjYW8gY+G7p2EgdOG7tyBnacOhIGjhu5FpIMSRb8OhaSBj4bunYSBjaMO6bmcgc28gduG7m2kgY8OhYyBsb+G6oWkgdGnhu4FuIHThu4cgcGjDoXAgxJHhu4tuaCBraMOhYy4gxJBp4buBdSBuw6B5IGzDoG0gY2hvIGdpw6EgQml0Y29pbiB0cuG7nyBuw6puIHF1w6EgYmnhur9uIMSR4buVaSwgdOG6oW8gcmEgbeG7mXQgdMOsbmggdHLhuqFuZyBraMO0bmcgY2jhuq9jIGNo4bqvbiB0cm9uZyB2aeG7h2MgxJHhuqd1IHTGsC4gVsOtIGThu6UsIGdpw6EgQml0Y29pbiDEkcOjIHRy4bqjaSBxdWEgbeG7mXQgc+G7sSB0xINuZyB24buNdCB04burIG3hu6ljIGfhuqduIDEwMDAgVVNEIHbDoG8gxJHhuqd1IG7Eg20gMjAxNyBsw6puIHThu5tpIGtob+G6o25nIDIwLjAwMCBVU0QgdsOgbyBjdeG7kWkgbsSDbSBjw7luZyBuxINtLCDEkeG6oXQgdOG7kWMgxJHhu5kgdMSDbmcgdHLGsOG7n25nIGzDqm4gdOG7m2kgMi4wMDAlIHRyb25nIG3hu5l0IG7Eg20uIFR1eSBuaGnDqm4sIHNhdSDEkcOzIG3hu5l0IGPDoWNoIG5oYW5oIGNow7NuZywgZ2nDoSBCaXRjb2luIGzhuqFpIGdp4bqjbSDEkWkgdOG7m2kgODAlIGdpw6EgdHLhu4sgdHJvbmcgbsSDbSB0aeG6v3AgdGhlbywgxJHhuql5IGjDoG5nIHRyaeG7h3UgbmjDoCDEkeG6p3UgdMawIHbDoG8gdMOsbmggdHLhuqFuZyB0aHVhIGzhu5cgxJHDoW5nIGvhu4MuIEvhu4MgdOG7qyBuxINtIDIwMjAsIGTGsOG7m2kgdMOhYyDEkeG7mW5nIGPhu6dhIMSR4bqhaSBk4buLY2ggQ292aWQtMTksIHPhu7EgY2jhuqN5IHbDoG8gY+G7p2EgZMOybmcgdGnhu4FuIG5ow6BuIHLhu5dpIHbDoCBuaHUgY+G6p3UgxJHhuqd1IHTGsCB04burIGto4bqvcCBuxqFpIHRyw6puIHRo4bq/IGdp4bubaSDEkcOjIMSR4bqpeSBnacOhIEJpdGNvaW4gbMOqbiBt4bupYyBr4bu3IGzhu6VjIHRyw6puIDYwLjAwMCBVU0QuIFR1eSBuaGnDqm4sIG5o4buvbmcgYmnhur9uIMSR4buZbmcga2jDtG5nIHRo4buDIGThu7EgxJFvw6FuIG7DoHksIGPDuW5nIHbhu5tpIGPDoWMgxJHhurdjIHTDrW5oIMSR4buZYyDEkcOhbyBj4bunYSBsb+G6oWkgdGnhu4FuIG7DoHksIGx1w7RuIGtoaeG6v24gY8OhYyBuaMOgIMSR4bqndSB0xrAgdOG7sSDEkeG6t3QgY8OidSBo4buPaSB24buBIGdpw6EgdHLhu4sgdGjhu7FjIHPhu7EgY+G7p2EgQml0Y29pbi4NCg0KVOG7qyB0aOG7sWMgdHLhuqFuZyB0csOqbiwgdMOhYyBnaeG6oyDEkcOjIGzhu7FhIGNo4buNbiDEkeG7gSB0w6BpIG5naGnDqm4gY+G7qXU6IOKAnCoqTcO0IHBo4buPbmcgY8OhYyB54bq/dSB04buRIOG6o25oIGjGsOG7n25nIMSR4bq/biBnacOhIEJpdGNvaW4qKuKAnSDEkeG7gyBtw7QgcGjhu49uZyBnacOhIGJpdGNvaW4gdHJvbmcgdGjhu51pIGdpYW4gdOG7m2kNCg0KIyMgTeG7pWMgxJHDrWNoIG5naGnDqm4gY+G7qXUNCg0KIC0gWMOhYyDEkeG7i25oIGPDoWMgeeG6v3UgdOG7kSDhuqNuaCBoxrDhu59uZyDEkeG6v24gZ2nDoSBiaXRjb2luLiBU4burIMSRw7MgbcO0IHBo4buPbmcgY8OhYyB54bq/dSB04buRIHbDoCBnacOhIGJpdGNvaW4gdHJvbmcgdGjhu51pIGdpYW4gdOG7m2kgDQoNCiMjIMSQ4buRaSB0xrDhu6NuZywgcGjhuqFtIHZpIG5naGnDqm4gY+G7qXUNCg0KxJDhu5FpIHTGsOG7o25nOiBDw6FjIHnhur91IHThu5Eg4bqjbmggaMaw4bufbmcgxJHhur9uIGdpw6EgYml0Y29pbg0KDQpQaOG6oW0gdmk6IEPDoWMgeeG6v3UgdOG7kSDhuqNuaCBoxrDhu59uZyDEkeG6v24gZ2nDoSBiaXRjb2luIGdpYWkgxJFv4bqhbiAyMDE4IC0gMjAyMy4gDQoNCiMgQ0jGr8agTkcgMS4gVOG7lE5HIFFVQU4gTMOdIFRIVVnhur5UDQoNCiMjIFBoxrDGoW5nIHBow6FwIG3DtCBwaOG7j25nIE1vbnRlIENhcmxvDQoNClBoxrDGoW5nIHBow6FwIE1vbnRlIENhcmxvIMSRxrDhu6NjIHPhu60gZOG7pW5nIMSR4buDIMaw4bubYyBsxrDhu6NuZyBnacOhIHRy4buLIHRydW5nIGLDrG5oICRcbXUkIGPhu6dhIG3hu5l0IGJp4bq/biBuZ+G6q3Ugbmhpw6puIFguIEdp4bqjIHPhu60gcXXDoSB0csOsbmggbcO0IHBo4buPbmcgc2luaCDEkcaw4bujYyBiaeG6v24gbmfhuqt1IG5oacOqbiBYLiBRdcOhIHRyw6xuaCDEkcOzIMSRxrDhu6NjIGzhurdwIGzhuqFpIG4gbOG6p24gxJHhu5ljIGzhuq1wLCBzaW5oIHJhIG4gYmnhur9uIG5n4bqrdSBuaGnDqm4gxJHhu5ljIGzhuq1wLCBjw7luZyBwaMOibiBwaOG7kWkgJFhfMSwgWF8yLC4uLiwgWF9uJC4gxq/hu5tjIGzGsOG7o25nICRcbXU9RVgkIHRow7RuZyBxdWENCg0KJCRcbXVfbj1cZnJhY3sxfXtufVxzdW1fezF9XntufSBYX2kkJA0KR2nDoSB0cuG7iyAkXG11X24kIMSRxrDhu6NjIGfhu41pIGzDoCDGsOG7m2MgbMaw4bujbmcgdGjhu60gbOG6rXAgaGF5IMaw4bubYyBsxrDhu6NuZyB0aOG7rSB0aOG7kW5nIGvDqiDEkeG7kWkgduG7m2kgJFxtdSQuIEx14bqtdCB54bq/dSBjw6FjIHPhu5EgbOG7m24gS2hpbmNoaW4ga2jhurNuZyDEkeG7i25oOg0KDQpO4bq/dSAkRXxYXzF8PFxpbmZ0eSQsIHRow6wgJFxtdV9uXGxvbmdyaWdodGFycm93IFxtdSQuIE5oxrAgduG6rXksICRcbXVfbiQgIGzDoCBt4buZdCDGsOG7m2MgbMaw4bujbmcgduG7r25nIGNobyAkXG11JC4gTeG6t2Mga2jDoWMgdGEgY8WpbmcgY8OzICRFXG11X249XG11JCBuw6puICRcbXUkIGPFqW5nIGzDoCBt4buZdCDGsOG7m2MgbMaw4bujbmcga2jDtG5nIGNow6puaCBs4buHY2ggY2hvICRcbXUkLiAgRG8gxJHDsyBu4bq/dSBjaMO6bmcgdGEgdGnhur9uIGjDoG5oIHPhu5EgbiBs4bqnbiBs4bq3cCBs4bqhaSBtw7QgcGjhu49uZyBraMOhIGzhu5tuIHRow6wgJFxtdV9uJCBz4bq9IHLhuqV0IGfhuqduICRcbXUkLiDEkGnhu4F1IG7DoHkgY2hvIHRo4bqleSBMdeG6rXQgeeG6v3UgY8OhYyBz4buRIGzhu5tuIGThuqFuZyBLaGluY2hpbiBsw6AgY8ahIHPhu58gdG/DoW4gaOG7jWMgY2hvIHBoxrDGoW5nIHBow6FwIE1vbnRlIENhcmxvLg0KDQrEkOG7gyDEkcOhbmggZ2nDoSBzYWkgc+G7kSB2w6AgdOG7kWMgxJHhu5kgaOG7mWkgdOG7pSB0cm9uZyDGsOG7m2MgbMaw4bujbmcgYuG6sW5nIHBoxrDGoW5nIHBow6FwIE1vbnRlIENhcmxvLCB4w6l0IGPDoWMga+G6v3QgcXXhuqMgY+G7lSDEkWnhu4NuIHRyb25nIEzDvSB0aHV54bq/dCB4w6FjIHN14bqldC4NCg0KR2nhuqMgc+G7rSAkXG11X24kIGzDoCDGsOG7m2MgbMaw4bujbmcgdGjhu60gdGjhu5FuZyBrw6ogY+G7p2EgJFxtdT1FKFgpJCBzYW8gY2hvICRWYXIoWCk9XHNpZ21hXjI8XGluZnR5JC4gS2hpIMSRw7MsIGPDsyBt4buZdA0KxJHDoW5oIGdpw6Egc2FpIHPhu5EgY+G7p2EgxrDhu5tjIGzGsOG7o25nIHRo4butIHRo4buRbmcga8OqIHRow7RuZyBxdWEgYuG6pXQgxJHhurNuZyB0aOG7qWMgQ2hlYnlzaGV2IG5oxrAgc2F1Og0KDQokJFAofFxtdV9uLVxtdXxcbGVxXGZyYWN7a1xzaWdtYX17XHNxcnR7bn19KVxnZXExLVxmcmFjezF9e2teMn0kJA0KDQp24bubaSBt4buNaSBrID4gMA0KDQpOaMawIHbhuq15LCBraGkgxJHDoW5oIGdpw6Egc2FpIHPhu5EgY+G7p2EgxrDhu5tjIGzGsOG7o25nIHRo4butIHRo4buRbmcga8OqIHRow7RuZyBxdWEgYuG6pXQgxJHhurNuZyB0aOG7qWMgQ2hlYnlzaGV2LCB0YSB0aOG6pXkgcuG6sW5nIHbhu5tpIHjDoWMgc3XhuqV0IGtow7RuZyBiw6kgaMahbiAkMS1cZnJhY3sxfXtrXjJ9JCwgc2FpIHPhu5EgY+G7p2EgxrDhu5tjIGzGsOG7o25nIHRo4butIHRo4buRbmcga8OqIGzDoCAkXGZyYWN7a1xzaWdtYX17XHNxcnR7bn19JCB24bubaSBrID4gMCBi4bqldCBr4buzIChjaOG6s25nIGjhuqFuLCB24bubaSBrID0gMTAsIHRow6wgduG7m2kgeMOhYyBzdeG6pXQga2jDtG5nIGLDqSBoxqFuIDAsOTksIHNhaSBz4buRIMaw4bubYyBsxrDhu6NuZyB0aOG7rSB0aOG7kW5nIGvDqiBsw6AgJFxmcmFjezEwXHNpZ21hfXtcc3FydHtufX0kKS4NCg0KR2nhuqMgc+G7rSAkVmFyKFgpPVxzaWdtYV4yPFxpbmZ0eSQsIMSQ4buLbmggbMO9IGdp4bubaSBo4bqhbiB0cnVuZyB0w6JtIGNobyB0aOG6pXk6DQoNCiQkbl57LTEvMn0oXG11X24tXG11KVxsb25ncmlnaHRhcnJvd1xzaWdtYSBOKDAsMSksa2hpOiAgblxsb25ncmlnaHRhcnJvd1xpbmZ0eSQkDQoNCuG7nyDEkcOieSDihpIgY2jhu4kgc+G7pSBo4buZaSB04bulIHRoZW8gcGjDom4gcGjhu5FpLiBHaeG7m2kgaOG6oW4gdHLDqm4gY8OzIHRo4buDIGJp4buDdSBkaeG7hW4gZMaw4bubaSBk4bqhbmcgc2F1Og0KDQokJFxtdVxhcHByb3hcbXUrXGZyYWN7XHNpZ21hfXtcc3FydHtufX1OKDAsMSkkJA0KDQpraGkgbiBs4bubbi4NCg0K4bufIMSRw6J5IOKJiCBsw6Aga8O9IGhp4buHdSBjaOG7iSBz4buxIHjhuqVwIHjhu4kgdGhlbyBwaMOibiBwaOG7kWkuIERvIMSRw7MgbuG6v3Ugc+G7kSBs4bqnbiBtw7QgcGjhu49uZyBuIGzDoCBs4bubbiwgc2FpIHPhu5EgdHJvbmcgcGjGsMahbmcgcGjDoXAgTW9udGUgQ2FybG8gc+G6vToNCg0KMS4gZ2nhuqNtIHRoZW8gdOG7tyBs4buHICRuXnstMS8yfSQgdOG7qWMgbMOgIHNhaSBz4buRIGPhu6dhIMaw4bubYyBsxrDhu6NuZyB0aOG7rSB0aOG7kW5nIGvDqiBjw7MgZOG6oW5nIDAoJG5eey0xLzJ9JCkuDQoNCjIuIHjhuqVwIHjhu4kgcGjDom4gcGjhu5FpIGNodeG6qW4gY2jDrW5oIHThuq9jLg0KDQozLiBwaOG7pSB0aHXhu5ljIGThu68gbGnhu4d1IGLDoGkgdG/DoW4gY2jhu4kgcXVhIHBoxrDGoW5nIHNhaSAkXHNpZ21hXjI9VmFyKFgpJC4NCg0KTmjGsCB24bqteSwgduG7m2kgbiDEkeG7pyBs4bubbiBzYWkgc+G7kSBj4bunYSDGsOG7m2MgbMaw4bujbmcgdGjhu60gdGjhu5FuZyBrw6ogY8OzIHRo4buDIMSRxrDhu6NjIMSRw6FuaCBnacOhIHF1YSBr4bq/dCBxdeG6oyBzYXU6IEdp4bqjIHPhu60gJFxtdV9uJCBsw6AgxrDhu5tjIGzGsOG7o25nIHRo4butIHRo4buRbmcga8OqIGPhu6dhICRcbXU9RShYKSQsIHNhbyBjaG8gJFZhcihYKT1cc2lnbWFeMjxcaW5mdHkkLiAgS2hpIMSRw7MgduG7m2kgbiDEkeG7pyBs4bubbiwgdGEgY8OzIHRo4buDIGPDsyBt4buZdCDEkcOhbmggZ2nDoSBzYWkgc+G7kSBj4bunYSDGsOG7m2MgbMaw4bujbmcgdGjhu60gdGjhu5FuZyBrw6ogJFxtdV9uJCDEkeG7kWkgduG7m2kgJFxtdSQgdGhlbyBxdXkgdOG6r2MgJGstXHNpZ21hJCBzYXU6DQoNCiQkUCh8XG11X24tXG11fFxsZXFcZnJhY3trXHNpZ21hfXtcc3FydHtufX0pXGFwcHJveCBcUGhpKGspLVxQaGkoLWspLCQkDQoNCnRyb25nIMSRw7MNCg0KJCRcUGhpKHgpPVxmcmFjezF9e1xzcXJ0ezJccGl9fVxpbnRfey1caW5mdHl9XnggXG1hdGhybXtlfV57XGZyYWN7LTF9ezJ9dF4yfVwsXG1hdGhybXtkfXQuJCQNCg0KIyMgQ8OhYyBwaMOibiBwaOG7kWkgeMOhYyBzdeG6pXQNCg0KIyMjIFBow6JuIHBo4buRaSDEkeG7gXUgcuG7nWkgcuG6oWMNCg0KUGjDom4gcGjhu5FpIMSR4buBdSBy4budaSBy4bqhYyBsw6AgcGjDom4gcGjhu5FpIGPhu6dhIGJp4bq/biBuZ+G6q3Ugbmhpw6puIFggdHJvbmcgxJHDsyBYIG5ow6JuIGdpw6EgdHLhu4sgdHJvbmcgbeG7mXQgdOG6rXAgaOG7r3UgaOG6oW4gdsOgIFggbmjhuq1uIGdpw6EgdHLhu4sgYuG6sW5nIG3hu5dpIHBo4bqnbiB04butIGPhu6dhIHThuq1wIMSRw7MgduG7m2kgeMOhYyBzdeG6pXQgYuG6sW5nIG5oYXUuDQoNCk3hu5dpIGdpw6EgdHLhu4sgY8OzIGPDuW5nIHjDoWMgc3XhuqV0IHjhuqN5IHJhIGzDoCAkXGZyYWN7MX17bn0kLiBLw60gaGnhu4d1ICRYXGJhY2tzaW0gVShhLGIpO2EsYlxpbiBOJCB24bubaSAoYSxiKSBsw6Aga2hv4bqjbmcgZ2nDoSB0cuG7iyBj4bunYSBYLg0KDQpWw60gZOG7pTogVHVuZyBt4buZdCB4w7pjIHPhuq9jIMSR4buTbmcgY2jhuqV0LCBn4buNaSBYIGzDoCBz4buRIG7DunQgeHXhuqV0IGhp4buHbiwga2hpIMSRw7MgJFhcYmFja3NpbSBVKDEsNik7IGYoeCk9MS82OyB4PTEsMiwuLi4sNjsgXG11PTMuNTtcc2lnbWFeMj0zNS8xMiQNCg0KIyMjIFBo4bqnbiBwaOG7kWkgQmVyb3VsbGkNCg0KUGjDom4gcGjhu5FpIEJlcm5vdWxsaSBsw6AgbeG7mXQgcGjDom4gcGjhu5FpIHjDoWMgc3XhuqV0IHLhu51pIHLhuqFjIGPhu6dhIGJp4bq/biBuZ+G6q3Ugbmhpw6puIGNo4buJIG5o4bqtbiBoYWkgZ2nDoSB0cuG7iyAwIGhv4bq3YyAxLCB0cm9uZyDEkcOzIGdpw6EgdHLhu4sgMSDEkeG6oXQgxJHGsOG7o2MgduG7m2kgeMOhYyBzdeG6pXQgcCAoZ+G7jWkgbMOgIHjDoWMgc3XhuqV0IHRow6BuaCBjw7RuZykgdsOgIGdpw6EgdHLhu4sgMCDEkeG6oXQgxJHGsOG7o2MgduG7m2kgeMOhYyBzdeG6pXQgIHEgPSAxIC0gcCAoZ+G7jWkgbMOgIHjDoWMgc3XhuqV0IHRo4bqldCBi4bqhaSkuDQoNClbDrSBk4bulOiBH4buNaSBYIGzDoCBr4bq/dCBxdeG6oyB04burIHRow60gbmdoaeG7h20gdHVuZyDEkeG7k25nIHh1IGPDom4gxJHhu5FpLCBu4bq/dSDEkeG7k25nIHh1IHh14bqldCBoaeG7h24gbeG6t3Qgc+G6pXAgdGEgY2hvIFg9MSwgbmfGsOG7o2MgbOG6oWkgbuG6v3UgWCB4deG6pXQgaGnhu4duIG3hurd0IG5n4butYSB0aMOsIGNobyBYPTAuIFRhIGPDsyAkUChYPTEpPVAoWD0wKT0xLzI7XG11PTEvMjtcc2lnbWFeMj0xLzQkDQoNCiMjIyBQaMOibiBwaOG7kWkgbmjhu4sgdGjhu6ljDQoNClBow6JuIHBo4buRaSBuaOG7iyB0aOG7qWMgbMOgIG3hu5l0IHBow6JuIHBo4buRaSB4w6FjIHN14bqldCB0w7NtIHThuq90IGto4bqjIG7Eg25nIMSR4buDIG3hu5l0IGdpw6EgdHLhu4sgbOG6pXkgbeG7mXQgdHJvbmcgaGFpIGdpw6EgdHLhu4sgxJHhu5ljIGzhuq1wIHRyb25nIG3hu5l0IHThuq1wIGjhu6NwIGPDoWMgdGhhbSBz4buRIGhv4bq3YyBnaeG6oyDEkeG7i25oIG5o4bqldCDEkeG7i25oLg0KDQpQaMOibiBwaOG7kWkgbmjhu4sgdGjhu6ljIHRo4buDIGhp4buHbiB4w6FjIHN14bqldCDEkeG7gyB4IHRow6BuaCBjw7RuZyB0cm9uZyBuIHBow6lwIHRo4butLCB24bubaSB4w6FjIHN14bqldCB0aMOgbmggY8O0bmcgcCBj4bunYSBt4buXaSBwaMOpcCB0aOG7rS4NCg0KVsOtIGThu6U6IE3hu5l0IGNhc2lubyDEkcawYSByYSBt4buZdCB0csOyIGNoxqFpIG3DoCBuZ8aw4budaSB0aGFtIGdpYSBjw7MgdGjhu4MgxJHhurd0IGPGsOG7o2MgdsOgbyBz4buRIGzhuqduIHJhIG3hurd0IG5n4butYSBoYXkgbeG6t3Qgc+G6pXAgdHJvbmcgbeG7mXQgc+G7kSBs4bqnbiB0dW5nIMSR4buTbmcgeHUgbmjhuqV0IMSR4buLbmguIEdp4bqjIHPhu60gbeG7mXQgbmfGsOG7nWkgY2jGoWkgxJHhurd0IGPGsOG7o2MgMTUkIGzDoCBz4bq9IGPDsyA2IGzhuqduIHJhIG3hurd0IG5n4butYSB0cm9uZyAyMCBs4bqnbiB0dW5nIMSR4buTbmcgeHUuIE5nxrDhu51pIGNoxqFpIMSRw7MgbXXhu5FuIHTDrW5oIHjDoWMgc3XhuqV0IHjhuqN5IHJhIGPhu6dhIHRyxrDhu51uZyBo4bujcCBuw6B5IG7Dqm4gYW5oIOG6pXkgc+G7rSBk4bulbmcgcGjDom4gcGjhu5FpIG5o4buLIHRo4bupYy4gS+G6v3QgcXXhuqNsw6AgeMOhYyBzdeG6pXQgxJHhu4MgeHXhuqV0IGhp4buHbiBjaMOtbmggeMOhYyA2IG3hurd0IG5n4butYSB0cm9uZyAyMCBs4bqnbiB0dW5nIMSR4buTbmcgeHUgbMOgIDAsMDM3IGhheSAzLDclLiBHacOhIHRy4buLIMaw4bubYyB0w61uaCBsw6AgMTUsIHbDrCB0aOG6vyBuZ8aw4budaSBjaMahaSBuw6B5IMSRw6MgxJHhurd0IGPGsOG7o2MgdsOgbyBj4butYSBraMO0bmcgdOG7kXQuDQoNCiMjIyBQaMOibiBwaOG7kWkgUG9pc3Nvbg0KDQpUcm9uZyBsw70gdGh1eeG6v3QgeMOhYyBzdeG6pXQgdsOgIHRo4buRbmcga8OqLCBwaMOibiBwaOG7kWkgUG9pc3NvbiBsw6AgbeG7mXQgcGjDom4gcGjhu5FpIHjDoWMgc3XhuqV0IHLhu51pIHLhuqFjLiBOw7Mga2jDoWMgduG7m2kgY8OhYyBwaMOibiBwaOG7kWkgeMOhYyBzdeG6pXQgcuG7nWkgcuG6oWMga2jDoWMg4bufIGNo4buXIHRow7RuZyB0aW4gYmnhur90IGtow7RuZyBwaOG6o2kgbMOgIHjDoWMgc3XhuqV0IMSR4buDIG3hu5l0IHPhu7Ega2nhu4duIHjhuqN5IHJhIHRow6BuaCBjw7RuZyB0cm9uZyBt4buZdCBs4bqnbiB0aOG7rSBuaMawIHRyb25nIHBow6JuIHBo4buRaSBCZXJub3VsbGkgaGF5IGzDoCBz4buRIGzhuqduIG3DoCBz4buxIGtp4buHbiDEkcOzIHjhuqN5IHJhIHRyb25nIG4gbOG6p24gdGjhu60gbmjGsCB0cm9uZyBwaMOibiBwaOG7kWkgbmjhu4sgdGjhu6ljLCBtw6AgY2jDrW5oIGzDoCB0cnVuZyBiw6xuaCBz4buRIGzhuqduIHjhuqN5IHJhIHRow6BuaCBjw7RuZyBj4bunYSBt4buZdCBz4buxIGtp4buHbiB0cm9uZyBt4buZdCBraG/huqNuZyB0aOG7nWkgZ2lhbiBuaOG6pXQgxJHhu4tuaC4gR8OtYSB0cuG7iyB0cnVuZyBiw6xuaCBuw6B5IMSRxrDhu6NjIGfhu41pIGzDoCBsYW1iZGEsIGvDrSBoaeG7h3UgbMOgIM67IC4gUGjDom4gcGjhu5FpIFBvaXNzb24gY8OybiDEkcaw4bujYyBkw7luZyBjaG8ga2hv4bqjbmcgbcOgIMSRxqFuIHbhu4sga2jDoWMgdGjhu51pIGdpYW4gbmjGsDoga2hv4bqjbmcgY8OhY2gsIGRp4buHbiB0w61jaCBoYXkgdGjhu4MgdMOtY2guIE3hu5l0IHbDrSBk4bulIGPhu5UgxJFp4buDbiBsw6Agc+G7sSBwaMOibiByw6MgaOG6oXQgbmjDom4gY+G7p2EgY8OhYyBuZ3V5w6puIHThu60uDQoNClbDrSBk4bulOiBUcnVuZyBiw6xuaCBt4buXaSBwaMO6dCBjw7MgNCBsxrDhu6N0IMSR4bq3dCBs4buHbmggZ+G7rWkgxJHhur9uIGjhu4cgdGjhu5FuZyBzw6BuIGdpYW8gZOG7i2NoIGNo4bupbmcga2hvw6FuLiBH4buNaSBYIGzDoCBz4buRIGzGsOG7o3QgxJHhurd0IGzhu4duaCDEkcOzIHRyb25nIDEgcGjDunQsIGtoaSDEkcOzIFggY8OzIHBow6JuIHBo4buRaSBQb2lzc29uIHbhu5tpIHRydW5nIGLDrG5oIM67ID0gNC4NCg0KIyMjIFBow6JuIHBo4buRaSBzacOqdSBi4buZaQ0KDQpQaMOibiBwaOG7kWkgeMOhYyBzdeG6pXQgY+G7p2EgYmnhur9uIHNpw6p1IGLhu5lpIG5n4bqrdSBuaGnDqm4gxJHGsOG7o2MgZ+G7jWkgbMOgIHBow6JuIHBo4buRaSBzacOqdSBi4buZaS4NCg0KUGjDom4gcGjhu5FpIHNpw6p1IGLhu5lpIMSRxrDhu6NjIGTDuW5nIMSR4buDIHTDrW5oIHjDoWMgc3XhuqV0IGPDsyBYIHBo4bqnbiB04butIG1hbmcgZOG6pXUgaGnhu4d1IEEgbsOgbyDEkcOzIGtoaSBs4bqleSBuZ+G6q3Ugbmhpw6puIG4gcGjhuqduIHThu60gdGhlbyBwaMawxqFuZyB0aOG7qWMga2jDtG5nIGhvw6BuIGzhuqFpIHThu6sgbeG7mXQgdOG6rXAgaOG7o3AgZ+G7k20gTiBwaOG6p24gdOG7rS4NCg0KVsOtIGThu6U6IE3hu5l0IGPDtG5nIHR5IHPhuqNuIHh14bqldCBuxrDhu5tjIHN14buRaSAxIG5nw6B5IHPhuqNuIHh14bqldCByYSAxMDAwIGNoYWksIHRyb25nIMSRw7MgY8OzIDE1IGNoYWkga2jDtG5nIMSR4bqhdCBjaHXhuqluLiBM4bqleSBuZ+G6q3Ugbmhpw6puIDUgY2hhaSBuxrDhu5tjIHN14buRaSB04burIGPDtG5nIHR5LiBH4buNaSBYIGzDoCBz4buRIGNoYWkga2jDtG5nIMSR4bqhdCBjaHXhuqluIHRyb25nIDUgY2hhaSBs4bqleSByYSwgbMO6YyBuw6B5IFggbMOgIG3hu5l0IGJp4bq/biBuZ+G6q3Ugbmhpw6puIHR1w6JuIHRoZW8gcGjDom4gcGjhu5FpIHNpw6p1IGLhu5lpLg0KDQojIyMgUGjDom4gcGjhu5FpIG3FqQ0KDQpUcm9uZyBsw70gdGh1eeG6v3QgeMOhYyBzdeG6pXQgdsOgIHRo4buRbmcga8OqLCBwaMOibiBwaOG7kWkgbcWpIGzDoCBt4buZdCBs4bubcCBj4bunYSBjw6FjIHBow6JuIGLhu5EgeMOhYyBzdeG6pXQgbGnDqm4gdOG7pWMuIENow7puZyB0aMaw4budbmcgxJHGsOG7o2MgZMO5bmcgxJHhu4MgbcO0IGjDrG5oIHRo4budaSBnaWFuIGdp4buvYSBjw6FjIGJp4bq/biBj4buRIHjhuqN5IHJhIHRoZW8gbeG7mXQgdOG7tyBs4buHIHRydW5nIGLDrG5oIGzDoCBo4bqxbmcgc+G7kS4NCg0KUGjDom4gcGjhu5FpIG3FqSDEkeG6oWkgZGnhu4duIGNobyBt4buZdCBwaMOibiBwaOG7kWkgeMOhYyBzdeG6pXQgZ2nDunAgbcO0IHThuqMgdGjhu51pIGdpYW4gZ2nhu69hIGhhaSBz4buxIGtp4buHbiB0cm9uZyBt4buZdCBxdcOhIHRyw6xuaCBQb2lzc29uLiBUcm9uZyBxdcOhIHRyw6xuaCBQb2lzc29uLCBjw6FjIHPhu7Ega2nhu4duIHjhuqN5IHJhIGxpw6puIHThu6VjIHbDoCDEkeG7mWMgbOG6rXAgdGhlbyBt4buZdCB04bqnbiBzdeG6pXQgdHJ1bmcgYsOsbmgga2jDtG5nIMSR4buVaS4gUGjDom4gcGjhu5FpIG3FqSBsw6AgbeG7mXQgdHLGsOG7nW5nIGjhu6NwIMSR4bq3YyBiaeG7h3QgY+G7p2EgcGjDom4gcGjhu5FpIGdhbW1hLg0KDQpWw60gZOG7pTogc+G7kSBs4bqnbiB0aOG6oyB4w7pjIHjhuq9jIGPhuqduIHRoaeG6v3QgY2hvIMSR4bq/biBraGkgYuG6oW4gdGjhuqMgxJHGsOG7o2MgbOG7pWMgbGnDqm4gdOG7pWMgMTEgbOG6p24uDQoNCiMjIyBQaMOibiBwaOG7kWkgeMOhYyBzdeG6pXQgV2VpYnVsbA0KDQpQaMOibiBwaOG7kWkgeMOhYyBzdeG6pXQgV2VpYnVsbCBsw6AgbeG7mXQgcGjDom4gcGjhu5FpIGThu68gbGnhu4d1IGxpw6puIHThu6VjIHRyb25nIGjhu40gcGjDom4gcGjhu5FpIGjDoG0gbcWpLg0KDQpQaMOibiBwaOG7kWkgeMOhYyBzdeG6pXQgV2VpYnVsbCBsw6AgbeG7mXQgZOG6oW5nIHRoxrDhu51uZyBkw7luZyDEkeG7gyBtw7QgdOG6oyB0aOG7kW5nIGvDqiBz4buxIHh14bqldCBoaeG7h24gY+G7p2EgY8OhYyDEkeG6oWkgbMaw4bujbmcgY+G7sWMgdHLhu4sgdHJvbmcga2jDrSB0xrDhu6NuZywgdGh14bu3IHbEg24gdsOgIGThu7EgYsOhbyB0aOG7nWkgdGnhur90IG5oxrAgZMOybmcgY2jhuqN5IGzFqSwgc8OzbmcsIGdpw7MgbOG7m24gbmjhuqV0LiBOZ2/DoGkgcmEgcGjDom4gYuG7kSBuw6B5IGPFqW5nIGhheSDEkcaw4bujYyBkw7luZyB0cm9uZyBwaMOibiB0w61jaCB4w6FjIHN14bqldCBz4buRbmcgc8OzdCBob+G6t2MgcGjDoSBodeG7tyB0cm9uZyBsw70gdGh1eeG6v3QgxJHhu5kgdGluIGPhuq15LCBkw7luZyB0cm9uZyBsw70gdGh1eeG6v3QgY+G7sWMgdHLhu4s7IGJp4buDdSBkaeG7hW4gdGjhu51pIGdpYW4gc+G6o24geHXhuqV0IHbDoCBwaMOibiBwaOG7kWkgdHJvbmcgY8O0bmcgbmdoaeG7h3A7IHPhu7EgcGjDom4gdMOhbiB0w61uIGhp4buHdSByYWRhciB2w6Agc+G7sSBzdXkgZ2nhuqNtIHTDrW4gaGnhu4d1IHRyb25nIGxpw6puIGzhuqFjIGtow7RuZyBkw6J5DQoNCiMjIyBQaMOibiBwaOG7kWkgR2FtbWENCg0KUGjDom4gcGjhu5FpIGdhbW1hIGzDoCBt4buZdCBsb+G6oWkgcGjDom4gcGjhu5FpIHRo4buRbmcga8OqIGPDsyBsacOqbiBxdWFuIMSR4bq/biBwaMOibiBwaOG7kWkgYmV0YS4gUGjDom4gcGjhu5FpIG7DoHkgcGjDoXQgc2luaCB04buxIG5oacOqbiB0cm9uZyDEkcOzIHRo4budaSBnaWFuIGNo4budIGdp4buvYSBjw6FjIHPhu7Ega2nhu4duIMSRxrDhu6NjIHBow6JuIHBo4buRaSBQb2lzc29uIGPDsyBsacOqbiBxdWFuIMSR4bq/biBuaGF1Lg0KDQpQaMOibiBwaOG7kWkgR2FtbWEgYmnhu4N1IGRp4buFbiBwaMOibiBwaOG7kWkgeMOhYyBzdeG6pXQgbGnDqm4gdOG7pWMgY+G7p2EgaGFpIGjhu40gdGhhbSBz4buRLiBQaMOibiBwaOG7kWkgR2FtbWEgxJHGsOG7o2MgxJHGsGEgcmEgduG7m2kgYmEgZOG6oW5nIGvhur90IGjhu6NwIHRoYW0gc+G7kToNCg0KLSBN4buZdCB0aGFtIHPhu5EgxJHhu4tuaCBk4bqhbmcgayB2w6AgbeG7mXQgdGhhbSBz4buRIHBo4bqhbSB2aSDOuC4NCg0KLSBN4buZdCB0aGFtIHPhu5EgxJHhu4tuaCBk4bqhbmcgzrEgPSBrIHbDoCBt4buZdCB0aGFtIHPhu5EgcGjhuqFtIHZpIG5nxrDhu6NjIM6yPTEvzrgsIMSRxrDhu6NjIGfhu41pIGzDoCB0aGFtIHPhu5EgdOG7iSBs4buHLg0KDQotIE3hu5l0IHRoYW0gc+G7kSDEkeG7i25oIGThuqFuZyBrIHbDoCBt4buZdCB0aGFtIHPhu5EgdHJ1bmcgYsOsbmggzrw9ay/Osg0KDQojIyMgUGjDom4gcGjhu5FpIENhdWNoeQ0KDQpQaMOibiBwaOG7kWkgQ2F1Y2h5IMSRxrDhu6NjIMSR4bq3dCB0w6puIHRoZW8gbmjDoCB0b8OhbiBo4buNYyBuZ8aw4budaSBQaMOhcCBBdWd1c3Rpbi1Mb3VpcyBDYXVjaHkgKDE3ODkgLSAxODU3KS4gTeG6t2MgZMO5IHBow6JuIHBo4buRaSBuw6B5IMSRxrDhu6NjIMSR4bq3dCB0w6puIGNobyBDYXVjaHksIG5oxrBuZyB0aMO0bmcgdGluIGxpw6puIHF1YW4gxJHhur9uIHZp4buHYyBwaMOibiBwaOG7kWkgbOG6p24gxJHhuqd1IHRpw6puIMSRxrDhu6NjIHh14bqldCBi4bqjbiBi4bufaSBQb2lzc29uLiBQaMOibiBwaOG7kWkgQ2F1Y2h5IGzDoCBt4buZdCBwaMOibiBwaOG7kWkga2jDtG5nIGPDsyBr4buzIHbhu41uZyBoYXkgcGjGsMahbmcgc2FpLg0KDQojIyMgUGjDom4gcGjhu5FpIFBhcmV0bw0KDQpQaMOibiBwaOG7kWkgUGFyZXRvIGzDoCBwaMOibiBwaOG7kWkgeMOhYyBzdeG6pXQgdGhlbyBsdeG6rXQgcXV54buBbiBs4buxYyDEkcaw4bujYyDEkeG6t3QgdMOqbiB0aGVvIGvhu7kgc8awIGTDom4gZOG7pW5nLCBuaMOgIGtpbmggdOG6vyBo4buNYyB2w6AgbmjDoCB4w6MgaOG7mWkgaOG7jWMgbmfGsOG7nWkgw50gVmlsZnJlZG8gUGFyZXRvICwgxJHGsOG7o2Mgc+G7rSBk4bulbmcgxJHhu4MgbcO0IHThuqMgeMOjIGjhu5lpLCBraG9hIGjhu41jLCDEkeG7i2EgduG6rXQgbMO9LCB0w61uaCB0b8OhbiB2w6Agbmhp4buBdSBsb+G6oWkgaGnhu4duIHTGsOG7o25nIHF1YW4gc8OhdCDEkcaw4bujYyBraMOhYy4gUGjDom4gcGjhu5FpIFBhcmV0byDEkcO0aSBraGkgY8OybiDEkcaw4bujYyBn4buNaSBsw6AgTmd1ecOqbiB04bqvYyBQYXJldG8gaG/hurdjIHF1eSB04bqvYyAnODAg4oCTMjAgJywgdsOsIHF1eSB04bqvYyBuw7NpIHLhurFuZyA4MCUgY+G7p2EgY+G6o2kgY+G7p2EgeMOjIGjhu5lpIGRvIDIwJSBkw6JuIHPhu5EgbuG6r20gZ2nhu68uIFBow6JuIHBo4buRaSBQYXJldG8ga2jDtG5nIHBo4bqjaSBsw6AgcXV5IGx14bqtdCB04buxIG5oacOqbiwgbcOgIGzDoCBt4buZdCBxdWFuIHPDoXQuIE7DsyBo4buvdSDDrWNoIHRyb25nIG5oaeG7gXUgduG6pW4gxJHhu4EgdHJvbmcgdGjhur8gZ2nhu5tpIHRo4buxYy4gTsOzIGzDoCBt4buZdCBwaMOibiBwaOG7kWkgbOG7h2NoIG5oaeG7gXUuDQoNClBow6JuIHBo4buRaSBQYXJldG8sIG5nb8OgaSB2aeG7h2MgbcO0IHThuqMgcGjDom4gcGjhu5FpIHTDoGkgc+G6o24gaGF5IHRodSBuaOG6rXAsIGPDsm4gZMO5bmcgxJHhu4MgbcO0IHThuqMgbmjhu69uZyB0cuG6oW5nIHRow6FpLCBz4buxIHZp4buHYyBtw6Agc+G7sSBjw6JuIGLhurFuZyDEkcaw4bujYyByw7p0IHJhIHThu6sgcGjDom4gcGjhu5FpIGPhu6dhIOKAnGPDoWkgbmjhu4/igJ0gxJHhur9uIOKAnGPDoWkgbOG7m27igJ0uDQoNClbDrSBk4bulOiBU4bqnbiBz4buRIHh14bqldCBoaeG7h24gY8OhYyB04burIHRyb25nIGLDoGkgdsSDbiBkw6BpLg0KDQojIyMgUGjDom4gcGjhu5FpIGxvZ2EtY2h14bqpbg0KDQpQaMOibiBwaOG7kWkgeMOhYyBzdeG6pXQgbG9nYSBjaHXhuqluIGPDsyB0aOG7gyDEkcaw4bujYyBjaHV54buDbiBow7NhIHRow6BuaCBwaMOibiBwaOG7kWkgY2h14bqpbiB2w6AgbmfGsOG7o2MgbOG6oWkgYuG6sW5nIGPDoWNoIHPhu60gZOG7pW5nIGPDoWMgdMOtbmggdG/DoW4gbG9nYXJpdCBsacOqbiBxdWFuLiBQaMOibiBwaOG7kWkgY2h14bqpbiDEkcaw4bujYyBoaeG7g3UgbMOgIHBow6JuIHBo4buRaSB4w6FjIHN14bqldCBj4bunYSBjw6FjIGvhur90IHF14bqjIMSR4buRaSB44bupbmcgaG/hurdjIHThuqFvIHRow6BuaCBt4buZdCDEkcaw4budbmcgY29uZyBow6xuaCBjaHXDtG5nLiBUcm9uZyBt4buZdCBwaMOibiBwaOG7kWkgY2h14bqpbiwgNjglIGvhur90IHF14bqjIG7hurFtIHRyb25nIG3hu5l0IMSR4buZIGzhu4djaCBjaHXhuqluIHbDoCA5NSUgbuG6sW0gdHJvbmcgaGFpIMSR4buZIGzhu4djaCBjaHXhuqluIHNvIHbhu5tpIGdpw6EgdHLhu4sgdHJ1bmcgYsOsbmguIFBow6JuIHBo4buRaSBjaHXhuqluIGNobyBwaMOpcCBjw6FjIGJp4bq/biBuZ+G6q3Ugbmhpw6puIGPDsyB0aOG7gyDDom0gdHJvbmcga2hpIHBow6JuIHBo4buRaSBsb2dhIGNodeG6qW4gY8OzIHThuqV0IGPhuqMgY8OhYyBiaeG6v24gxJHhu4F1IGTGsMahbmcNCg0KIyMgVGh14bqtdCB0b8OhbiB04bqhbyByYSBjw6FjIHPhu5EgZ2nhuqMgbmfhuqt1IG5oacOqbg0KDQojIyMgUGjGsMahbmcgcGjDoXAgbuG7rWEgYsOsbmggcGjGsMahbmcgKE1pZHNxdWFyZSBtZXRob2QpDQoNClBoxrDGoW5nIHBow6FwIG7hu61hIGLDrG5oIHBoxrDGoW5nIMSRxrDhu6NjIGdp4bubaSB0aGnhu4d1IHbDoG8gbsSDbSAxOTQ5IGLhu59pIEpvaG4gdm9uIE5ldW1hbm4uIFBoxrDGoW5nIHBow6FwIG7DoHkga2jDtG5nIHBo4bqjaSBsw6AgcGjGsMahbmcgcGjDoXAgdOG7kXQgbmjhuqV0LCB2w6wgdGjhu51pIGdpYW4gY+G7p2EgbsOzIHRoxrDhu51uZyBy4bqldCBuZ+G6r24gdsOgIG7DsyBjw7MgbeG7mXQgc+G7kSDEkWnhu4NtIHnhur91LiBUdXkgbmhpw6puLCBuw7MgxJHDoyDEkcOzbmcgdmFpIHRyw7IgcXVhbiB0cuG7jW5nIGJ14buVaSBiYW4gxJHhuqd1IGtoaSBjw6FjIHBoxrDGoW5nIHBow6FwIHNpbmggc+G7kSBuZ+G6q3Ugbmhpw6puIGNoxrBhIHBow6F0IHRyaeG7g24uDQoNCsSQ4buDIHThuqFvIHJhIG3hu5l0IGNodeG7l2kgY8OhYyBz4buRIGdp4bqjIG5n4bqrdSBuaGnDqm4gY8OzIG4gY2jhu68gc+G7kSwgdGEgY2jhu41uIG3hu5l0IGdpw6EgdHLhu4sgZMawxqFuZyBjw7MgbiBjaOG7ryBz4buRLiDEkOG6p3UgdGnDqm4gdGEgYsOsbmggcGjGsMahbmcgc+G7kSDEkcOzIGzDqm4sIHbDoCBuaOG6rW4gxJHGsOG7o2MgbeG7mXQgc+G7kSBjw7MgMm4gY2jhu68gc+G7kSwgbiBjaOG7ryBz4buRIGdp4buvYSBj4bunYSBz4buRIGLDrG5oIHBoxrDGoW5nIG7DoHkgxJHGsOG7o2MgZMO5bmcgbMOgbSBz4buRIHRo4bupIDIgY+G7p2EgZMOjeSBz4buRLiBO4bq/dSBr4bq/dCBxdeG6oyBjw7Mgw610IGjGoW4gMm4gY2jhu68gc+G7kSwgc+G7kSAwIHPhur0gxJHGsOG7o2MgdGjDqm0gdsOgbyDEkeG6p3Ugc+G7kSDEkeG7gyBiw7kgY2hvIMSR4bunIDJuIGNo4buvIHPhu5EuIFRp4bq/cCB0aGVvLCBiw6xuaCBwaMawxqFuZyBz4buRIHRo4bupIG4rMSAobeG7m2kgeMOhYyDEkeG7i25oIMSRxrDhu6NjKSBsw6puIHbDoCBuIHPhu5EgZ2nhu69hIGPhu6dhIHPhu5EgYsOsbmggcGjGsMahbmcgbsOgeSDEkcaw4bujYyBkw7luZyBsw6BtIHPhu5EgZ2nhuqMgbmfhuqt1IG5oacOqbiB0aOG7qSAzIGPhu6dhIGTDo3kgc+G7kS4gVGh14bqtdCB0b8OhbiBz4bq9IHRp4bq/cCB04bulYyBuaMawIHbhuq15IGNobyB04bubaSBraGkgY2jhu41uIMSRxrDhu6NjIGTDo3kgc+G7kSBnaeG6oyBuZ+G6q3Ugbmhpw6puIHnDqnUgY+G6p3UgaG/hurdjIGThu6tuZyBs4bqhaSBraGkgbiBz4buRIGdp4buvYSBj4bunYSBt4buZdCBz4buRIGdp4buvYSBj4bunYSBt4buZdCBz4buRIGdp4bqjIG5n4bqrdSBuaGnDqm4gxJHGsOG7o2MgY2jhu41uIMSR4buBdSBjw7MgZ2nDoSB0cuG7iyBi4bqxbmcgMC4NCg0KTmjhuq1uIHjDqXQ6IA0KDQotIETDo3kgbmjhuq1uIMSRxrDhu6NjIGtow7RuZyBob8OgbiB0b8OgbiBsw6Ag4oCcIG5n4bqrdSBuaGnDqm4g4oCdIGRvIHBo4bulIHRodeG7mWMgdsOgbyBz4buRIGJhbiDEkeG6p3UgJHhfMCQuDQoNCi0gRMOjeSBz4buRIGdp4bqjIG5n4bqrdSBuaGnDqm4gxJHGsOG7o2Mgc2luaCBi4bufaSBwaMawxqFuZyBwaMOhcCBu4butYSBiw6xuaCBwaMawxqFuZyBjw7MgY2h1IGvhu7Mgbmfhuq9uLg0KDQotIEjhuqd1IG5oxrAgY8OhYyBk4buvIGxp4buHdSDEkeG6p3UgcmEgbHXDtG4gaOG7mWkgdOG7pSB24buBIHPhu5EgMC4NCg0KIyMjIFBoxrDGoW5nIHBow6FwIMSR4buTbmcgZMawIHR1eeG6v24gdMOtbmggKExpbmVhciBjb25ncnVlbnRpYWwgbWV0aG9kKQ0KDQpQaMawxqFuZyBwaMOhcCDEkeG7k25nIGTGsCB0dXnhur9uIHTDrW5oIMSRxrDhu6NjIEQuTGVobmVyIMSRxrBhIHJhIHbDoG8gMTk1MSwgbMOgIG3hu5l0IHRodeG6rXQgdG/DoW4gdOG6oW8gcmEgbeG7mXQgY2h14buXaSBjw6FjIHPhu5EgZ2nhuqMgbmfhuqt1IG5oacOqbiDEkcaw4bujYyB0w61uaCB0b8OhbiB24bubaSBt4buZdCBwaMawxqFuZyB0csOsbmggdHV54bq/biB0w61uaCBraMO0bmcgbGnDqm4gdOG7pWMuIFBoxrDGoW5nIHBow6FwIG7DoHkgbMOgIG3hu5l0IHRyb25nIG5o4buvbmcgdGh14bqtdCB0b8OhbiB04bqhbyBz4buRIGdp4bqjIG5n4bqrdSBuaGnDqm4gbMOidSDEkeG7nWkgbmjhuqV0IHbDoCDEkcaw4bujYyBiaeG6v3QgxJHhur9uIG5oaeG7gXUgbmjhuqV0LiBQaMawxqFuZyBwaMOhcCBuw6B5IHTGsMahbmcgxJHhu5FpIGThu4UgaGnhu4N1IHbDoCDEkcaw4bujYyB0aOG7sWMgaGnhu4duIGThu4UgZMOgbmcsIG5oYW5oIGNow7NuZy4NCg0KUGjGsMahbmcgcGjDoXAgxJHhu5NuZyBkxrAgdHV54bq/biB0w61uaCBjw7MgaMOgbSBjaHV54buDbiBk4bqhbmcgc2F1Og0KDQokJGYoeCk9KGF4K2MpXCxcbWF0aHJte21vZH1cLFxtYXRocm17bX0kJA0KVHJvbmcgxJHDszogYSBsw6AgYuG7mWkgc+G7kSwgYyBsw6AgZ2lhIHPhu5EgdsOgIG0gbMOgIG1vZHVuLiBOZ2/DoGkgcmEgY8OhYyBz4buRIHgsIGEsIGMsIG0g4oiIIE4uDQoNClbhuq15IHBoxrDGoW5nIHBow6FwIG7DoHkgY2hvIHBow6lwIHNpbmggcmEgZMOjeSBjw6FjIHPhu5EgZ2nhuqMgbmfhuqt1IG5oacOqbiB0aGVvIHBow6lwIMSR4buTbmcgZMawIHR1eeG6v24gdMOtbmggbmjGsCBzYXU6DQoNCiQkeF97bisxfT0oYXhfbitjKVwsXG1hdGhybXttb2R9XCxcbWF0aHJte219LG5cZ2VxMCQkDQoNCnbhu5tpIGdpw6EgdHLhu4sga2jhu59pIMSR4bqndSAkeF8wJCDEkcaw4bujYyBjaG8gdHLGsOG7m2Mgc2FvIGNobyAkMFxsZXEgeF8wIDxtLTEkLiBEbyAkMFxsZXEgeF9pIDxtLTEkLCBuw6puIMSR4buDIG5o4bqtbiDEkcaw4bujYyBkw6N5IHPhu5Egbmfhuqt1IG5oacOqbiBjw7MgcGjDom4gcGjhu5FpIMSR4buBdSB0csOqbiBbMCwgMV0gbMOgICR4X2lcc2ltIFVuaWYoMCwxKSQsIGNow7puZyB0YSDEkeG6t3QgJHVfaT14X2kvbSQuDQoNCiMjIyAgUGjGsMahbmcgcGjDoXAgxJHhu4cgcXV5IGLhu5lpDQoNCk3hu5l0IHPhu7EgcGjDoXQgdHJp4buDbiBj4bunYSBwaMawxqFuZyBwaMOhcCDEkeG7k25nIGTGsCB0dXnhur9uIHTDrW5oIGzDoCBwaMawxqFuZyBwaMOhcCDEkeG7hyBxdXkgYuG7mWksIMSRxrDhu6NjIHjDonkgZOG7sW5nIHRyw6puIGPGoSBz4bufIHBow6lwIMSR4buHIHF1eSBzYXU6DQoNCiQkeF9uPShhXzF4X3tuLTF9Ky4uLit4X2t4X3tuLWt9KVwsXG1hdGhybXttb2R9XCxcbWF0aHJte219JCQNCg0KVHJvbmcgxJHDsyBrIGzDoCBt4buZdCBz4buRIG5ndXnDqm4uIFRow6BuaCBwaOG6p24gdGjhu6kgbiBj4bunYSBkw6N5IHBo4bulIHRodeG7mWMgdsOgbyBrIHRow6BuaCBwaOG6p24gdHLGsOG7m2MgxJHDsyBj4bunYSBkw6N5Lg0KDQojIyMgIFBoxrDGoW5nIHBow6FwIMSR4buTbmcgZMawIGPhu5luZyB0w61uaCAoQWRkaXRpdmUgY29uZ3J1YW50aWFsIGdlbmVyYXRvcikNCg0KUGjGsMahbmcgcGjDoXAgxJHhu5NuZyBkxrAgY+G7mW5nIHTDrW5oIMSRxrDhu6NjIHBow6F0IHRyaeG7g24gdOG7qyBwaMawxqFuZyBwaMOhcCDEkeG7k25nIGTGsCB0dXnhur9uIHTDrW5oIGThu7FhIHRyw6puIMO9IHTGsOG7n25nIOKAnHRoYW5oIGdoaSBk4buLY2ggY2h1eeG7g24gaOG7k2kgdGnhur9wIHR1eeG6v24gdMOtbmggKGxpbmVhciDigJMgZmVlZGJhY2sgc2hpZnQgDQpyZWdpc3RlcinigJ0uDQoNClBoxrDGoW5nIHBow6FwIMSR4buTbmcgZMawIGPhu5luZyB0w61uaCB5w6p1IGPhuqd1IGThu68gbGnhu4d1IMSRw6MgY8OzIGzDoCBnacOhIHRy4buLIGto4bufaSDEkeG6p3UgdsOgIG3hu5l0IGTDo3kgZ+G7k20gbiBz4buRICR4XzEseF8yLC4uLix4X24kIMSRw6MgxJHGsOG7o2Mgc2luaCByYSBi4bufaSBt4buZdCBwaMawxqFuZyBwaMOhcCBuw6BvIMSRw7MuIFBoxrDGoW5nIHBow6FwIMSR4buTbmcgZMawIGPhu5luZyB0w61uaCBjaG8gcGjDqXAgc2luaCByYSAodGjDqm0pIGTDo3kgc+G7kSBnaeG6oyBuZ+G6q3Ugbmhpw6puICR4X3tuKzF9LHhfe24rMn0sIHhfe24rM30sLi4uJCBUaHXhuq10IHRvw6FuIA0KY+G7p2EgcGjGsMahbmcgcGjDoXAgbsOgeSBk4buxYSB0csOqbiBjw7RuZyB0aOG7qWMNCg0KJCR4X2o9KHhfe2otMX0reF97ai1ufSlcLFxtYXRocm17bW9kfVwsXG1hdGhybXttfSQkDQoNCsavdSDEkWnhu4NtIGPhu6dhIHBoxrDGoW5nIHBow6FwIG7DoHkgbMOgIHThu5FjIMSR4buZLiBLaMO0bmcgY8OzIGLhuqV0IGvhu7MgcGjDqXAgbmjDom4gbsOgbyBz4butIGThu6VuZyDhu58gxJHDonkgdsOgIGNodSBr4buzIGzhu5tuIGjGoW4gbS4NCg0KIyMjICBQaMawxqFuZyBwaMOhcCDEkeG7k25nIGTGsCB0b8OgbiBwaMawxqFuZyAoUXVhZHJhdGljIGNvbmdydWVudGlhbCBnZW5lcmF0b3IpDQoNClBoxrDGoW5nIHBow6FwIMSR4buTbmcgZMawIHRvw6BuIHBoxrDGoW5nIMSRxrDhu6NjIHPhu60gZOG7pW5nIGtoaSBz4buRIG1vZHVuIG0gbMOgIG3hu5l0IHPhu5EgbcWpIGPhu6dhIDIuIFF1YW4gaOG7hyDEkeG7hyBxdXkgY2hvIHBoxrDGoW5nIHBow6FwIG7DoHkgxJHGsOG7o2MgY2hvIGLhu59pDQoNCiQkeF9uPVt4X24oeF9uKzEpXVwsXG1hdGhybXttb2R9XCxcbWF0aHJte219LG5cZ2VxMCQkDQoNCiMgQ0jGr8agTkcgMi4gUEjGr8agTkcgUEjDgVAgTkdIScOKTiBD4buoVSBWw4AgTcOUIEjDjE5IDQoNCiMjIE3DtCBow6xuaCDEkeG7gSB4deG6pXQNCg0KxJDhu4MgbcO0IHBo4buPbmcgY8OhYyB54bq/dSB04buRIHTDoWMgxJHhu5luZyDEkeG6v24gZ2nDoSBCaXRjb2luLCBtw7QgaMOsbmggaOG7k2kgcXV5IMSRxrDhu6NjIHjDonkgZOG7sW5nIG5oxrAgc2F1Og0KDQogICQkQklUPVxiZXRhX3swfStcYmV0YV97MX1GUzEwMCtcYmV0YV97Mn1OSzIyNStcYmV0YV97M31ORDEwMCtcYmV0YV97NH1ET0xMQStcYmV0YV97NX1XVEkrXGJldGFfezZ9R09MRCQkDQogIA0KICBUcm9uZyDEkcOzOg0KICANCiAgLSBCaeG6v24gcGjhu6UgdGh14buZYzogQklUOiBnacOhIEJpdGNvaW4gKFVTRCkNCiAgDQogIC0gQmnhur9uIMSR4buZYyBs4bqtcDogDQogIA0KICBGUzEwMDogQ2jhu4kgc+G7kSBGVFNFIDEwMCAoxJFp4buDbSkNCiAgICANCiAgTksyMjU6IENo4buJIHPhu5EgTmlra2VpIDIyNSAoxJFp4buDbSkNCiAgICANCiAgTkQxMDA6IENo4buJIHPhu5EgTmFzZGFxIDEwMCAoxJFp4buDbSkNCiAgICANCiAgRE9MTEE6IENo4buJIHPhu5EgxJHDtCBsYSBIb2EgS+G7syAoxJFp4buDbSkNCiAgICANCiAgV1RJOiBHacOhIGThuqd1IHRow7QgKFVTRCkNCiAgICANCiAgR09MRDogR2nDoSB2w6BuZyAoVVNEKQ0KICANCiAgJFxiZXRhXzAkIGzDoCBo4bqxbmcgc+G7kSBj4bunYSBtw7QgaMOsbmguDQoNCiAgJFxiZXRhXzEsLi4uLFxiZXRhXzckIGzDoCBo4buHIHPhu5EgaOG7k2kgcXV5Lg0KDQojIyBE4buvIGxp4buHdSBuZ2hpw6puIGPhu6l1DQoNCkThu68gbGnhu4d1IMSRxrDhu6NjIHPhu60gZOG7pW5nIHRyb25nIGLDoGkgbMOgIGNodeG7l2kgZOG7ryBsaeG7h3UgdGjhu51pIGdpYW4gdGhlbyBuZ8OgeSBj4bunYSBjw6FjIGNo4buJIHPhu5EgY2jhu6luZyBraG/DoW4gxJHDs25nIGPhu61hIHThuqFpIEFuaCAoRlRTRSAxMDApLCBOaOG6rXQgQuG6o24gKE5pa2tlaSAyMjUpLCBIb2Ega+G7syAoTmFzZGFxIDEwMCksIGNo4buJIHPhu5EgZG9sbGEgSG9hIGvhu7MsIGdpw6EgZOG6p3UgdGjDtCwgZ2nDoSB2w6BuZyB2w6AgZ2nDoSBCaXRjb2luLiBUw6FjIGdp4bqjIGzhuqV5IGThu68gbGnhu4d1IHThu6sgMDIgdGjDoW5nIDA3IG7Eg20gMjAxOCDEkeG6v24gMzAgdGjDoW5nIDA2IG7Eg20gMjAyMy4gVG/DoG4gYuG7mSBk4buvIGxp4buHdSB0aOG7sWMgaMOgbmggbmdoacOqbiBj4bupdSDEkcaw4bujYyBs4bqleSB04burIHdlYnNpdGUgSW52ZXN0aW5nIChodHRwczovL3d3dy5pbnZlc3RpbmcuY29tLykuDQoNCmBgYHtyfQ0KQlRDIDwtIHJlYWQuY3N2KCJEOi9NUE5OL2JpdGNvaW4uY3N2IikNCnN0cihCVEMpDQpgYGANCg0KI0NIxrDGoW5nIDMuIEvhur5UIFFV4bqiIE5HSEnDik4gQ+G7qFUNCg0KIyMgTcO0IHThuqMgdGjhu5FuZyBrw6oNCg0KYGBge3J9DQpzdW1tYXJ5KEJUQykNCnNkKEJUQyRGUzEwMCkgI8SQ4buZIGzhu4djaCBjaHXhuqluIGJp4bq/biBGUzEwMA0Kc2QoQlRDJE5LMjI1KSAjxJDhu5kgbOG7h2NoIGNodeG6qW4gYmnhur9uIE5rMjI1DQpzZChCVEMkTkQxMDApICPEkOG7mSBs4buHY2ggY2h14bqpbiBiaeG6v24gTmQxMDANCnNkKEJUQyRET0xMQSkgI8SQ4buZIGzhu4djaCBjaHXhuqluIGJp4bq/biBEb2xsYQ0Kc2QoQlRDJFdUSSkgI8SQ4buZIGzhu4djaCBjaHXhuqluIGJp4bq/biBXVEkNCnNkKEJUQyRHT0xEKSAjxJDhu5kgbOG7h2NoIGNodeG6qW4gYmnhur9uIEdPTEQNCmBgYA0KVGjDtG5nIHF1YSBr4bq/IHF14bqjIHRhIHRo4bqleToNCiANCiAtIEdpw6EgQml0Y29pbiAoQml0KSBjw7MgZ2nDoSB0cuG7iyB0cnVuZyBiw6xuaCBsw6AgMjE5MjcgVVNELCBnacOhIHRy4buLIG5o4buPIG5o4bqldCBsw6AgMzI0OCBVU0QgdsOgIGdpw6EgdHLhu4sgbOG7m24gbmjhuqV0IGzDoCA2NzUyOCBVU0QuDQogDQogLSBDaOG7iSBz4buRIEZUU0UgMTAwIChGUzEwMCkgY8OzIGdpw6EgdHLhu4sgdHJ1bmcgYsOsbmggbMOgIDcwNzcgxJFp4buDbSwgZ2nDoSB0cuG7iyBuaOG7jyBuaOG6pXQgbMOgIDQ5OTQgxJFp4buDbSB2w6AgZ2nDoSB0cuG7iyBs4bubbiBuaOG6pXQgbMOgIDgwMTMgxJFp4buDbS4gxJDhu5kgbOG7h2NoIGNodeG6qW4gbMOgIDU1Ny43NjAxIMSRaeG7g20NCiANCiAtIENo4buJIHPhu5EgTmlra2VpIDIyNSAoTmsyMjUpIGPDsyBnacOhIHRy4buLIHRydW5nIGLDrG5oIGzDoCAyNTE5MCDEkWnhu4NtLCBnacOhIHRy4buLIG5o4buPIG5o4bqldCBsw6AgMTY1NTMgxJFp4buDbSB2w6AgZ2nDoSB0cuG7iyBs4bubbiBuaOG6pXQgbMOgIDMzNzA2IMSRaeG7g20uIMSQ4buZIGzhu4djaCBjaHXhuqluIGzDoCAzMzc1LjE2NiDEkWnhu4NtDQogDQogLSBDaOG7iSBz4buRIE5hc2RhcSAxMDAgKE5kMTAwKSBjw7MgZ2nDoSB0cuG7iyB0cnVuZyBiw6xuaCBsw6AgMTEwMjkgxJFp4buDbSwgZ2nDoSB0cuG7iyBuaOG7jyBuaOG6pXQgbMOgIDU4OTkgxJFp4buDbSB2w6AgZ2nDoSB0cuG7iyBs4bubbiBuaOG6pXQgbMOgIDE2NTczIMSRaeG7g20uIMSQ4buZIGzhu4djaCBjaHXhuqluIGzDoCAyOTMwLjI5IMSRaeG7g20NCiANCiAtIENo4buJIHPhu5EgxJHDtCBsYSBIb2EgS+G7syAoRG9sbGEpIGPDsyBnacOhIHRy4buLIHRydW5nIGLDrG5oIGzDoCA5Ny40NyDEkWnhu4NtLCBnacOhIHRy4buLIG5o4buPIG5o4bqldCBsw6AgODkuMzkgxJFp4buDbSB2w6AgZ2nDoSB0cuG7iyBs4bubbiBuaOG6pXQgbMOgIDExNC4wNSDEkWnhu4NtLiDEkOG7mSBs4buHY2ggY2h14bqpbiBsw6AgNS4wNjY2NDYgxJFp4buDbQ0KIA0KIC0gR2nDoSBk4bqndSB0aMO0IChXVEkpIGPDsyBnacOhIHRy4buLIHRydW5nIGLDrG5oIGzDoCA2NS42NSBVU0QsIGdpw6EgdHLhu4sgbmjhu48gbmjhuqV0IGzDoCAxMC4wMSBVU0QgdsOgIGdpw6EgdHLhu4sgbOG7m24gbmjhuqV0IGzDoCAxMjMuNzAgVVNELiDEkOG7mSBs4buHY2ggY2h14bqpbiBsw6AgMTkuOTc3NDggVVNEDQogDQogLSBHacOhIHbDoG5nIChHT0xEKSBjw7MgZ2nDoSB0cuG7iyB0cnVuZyBiw6xuaCBsw6AgMTY3MSBVU0QsIGdpw6EgdHLhu4sgbmjhu48gbmjhuqV0IGzDoCAxMTg0IFVTRCB2w6AgZ2nDoSB0cuG7iyBs4bubbiBuaOG6pXQgbMOgIDIwNjkgVVNELiDEkOG7mSBs4buHY2ggY2h14bqpbiBsw6AgMjQ1LjExMSBVU0QNCiANCiMjIEtp4buDbSDEkeG7i25oIHBow6JuIHBo4buRaSBjw6FjIGJp4bq/biDEkeG6p3UgdsOgbw0KDQojIyMgQ2jhu4kgc+G7kSBjaOG7qW5nIGtob8OhbiBBbmggLSBGUyAxMDANCg0KKioqxJDhu5MgdGjhu4sgcGjDom4gcGjhu5FpIGNo4buJIHPhu5EgRlRTRSAxMDAqKioNCg0KYGBge3J9DQpoaXN0KEJUQyRGUzEwMCwgbWFpbj0ixJDhu5MgdGjhu4sgcGjDom4gcGjhu5FpIGPhu6dhIGNo4buJIHPhu5EgRlRTRSAxMDAiLCBjb2wgPSAicGluayIpDQpgYGANCg0KKioqS2nhu4NtIMSR4buLbmggcGjDom4gcGjhu5FpIGNodeG6qW4qKioNCg0KKkdp4bqjIHRodXnhur90OioNCg0KICAkSF97MH0kOiBCaeG6v24gRlMxMDAgdHXDom4gdGhlbyBwaMOibiBwaOG7kWkgY2h14bqpbg0KDQogICRIX3sxfSQ6IEJp4bq/biBGUzEwMCBraMO0bmcgdHXDom4gdGhlbyBwaMOibiBwaOG7kWkgY2h14bqpbg0KDQpgYGB7cn0NCnNoYXBpcm8udGVzdChCVEMkRlMxMDApDQpgYGANClbDrCBwX3ZhbHVlID0gMi4yZS0xNiA8IDAuMDUgbsOqbiB0YSBiw6FjIGLhu48gZ2nhuqMgdGh1eeG6v3QgJEhfezB9JC4gTmdoxKlhIGzDoCBjaOG7iSBz4buRIEZUU0UgMTAwIGtow7RuZyBjw7MgcGjDom4gcGjhu5FpIGNodeG6qW4uDQoNCioqKktp4buDbSDEkeG7i25oIHBow6JuIHBo4buRaSB0KioqDQoNCipHaeG6oyB0aHV54bq/dDoqDQoNCiAgJEhfezB9JDogQmnhur9uIEZTMTAwIHR1w6JuIHRoZW8gcGjDom4gcGjhu5FpIHQNCg0KICAkSF97MX0kOiBCaeG6v24gRlMxMDAga2jDtG5nIHR1w6JuIHRoZW8gcGjDom4gcGjhu5FpIHQNCg0KYGBge3J9DQp0LnRlc3QoQlRDJEZTMTAwKQ0KYGBgDQpWw6wgcF92YWx1ZSA9IDIuMmUtMTYgPCAwLjA1IG7Dqm4gdGEgYsOhYyBi4buPIGdp4bqjIHRodXnhur90ICRIX3swfSQuIE5naMSpYSBsw6AgY2jhu4kgc+G7kSBGVFNFIDEwMCBraMO0bmcgY8OzIHBow6JuIHBo4buRaSB0Lg0KDQoqKipLaeG7g20gxJHhu4tuaCBwaMOibiBwaOG7kWkgTG9nbm9tYWwqKioNCg0KKkdp4bqjIHRodXnhur90OioNCg0KICAkSF97MH0kOiBCaeG6v24gRlMxMDAgdHXDom4gdGhlbyBwaMOibiBwaOG7kWkgTG9nbm9ybWFsDQoNCiAgJEhfezF9JDogQmnhur9uIEZTMTAwIGtow7RuZyB0dcOibiB0aGVvIHBow6JuIHBo4buRaSBMb2dub3JtYWwNCg0KYGBge3J9DQprcy50ZXN0KEJUQyRGUzEwMCwgInBsbm9ybSIsIG1lYW5sb2cgPSBtZWFuKGxvZyhCVEMkRlMxMDApKSwgc2Rsb2cgPSBzZChsb2coQlRDJEZTMTAwKSkpDQpgYGANClbDrCBwX3ZhbHVlID0gMi4yZS0xNiA8IDAuMDUgbsOqbiB0YSBiw6FjIGLhu48gZ2nhuqMgdGh1eeG6v3QgJEhfezB9JC4gTmdoxKlhIGzDoCBjaOG7iSBz4buRIEZUU0UgMTAwIGtow7RuZyBjw7MgcGjDom4gcGjhu5FpIExvZ25vcm1hbC4NCg0KKioqTcO0IHBo4buPbmcgYmnhur9uIEZTMTAwKioqDQoNCsSQ4buDIG3DtCBwaOG7j25nIGPDoWMgYmnhur9uIMSR4bqndSB2w6BvLCB0w6FjIGdp4bqjIHPhu60gZOG7pW5nIGjDoG0gJ3NhbXBsZScgxJHhu4MgdOG6oW8gcmEgbeG7mXQgbeG6q3Ugbmfhuqt1IG5oacOqbiB04burIGNodeG7l2kgZOG7ryBsaeG7h3UgZ+G7kWMgduG7m2kga8OtY2ggdGjGsOG7m2MgbeG6q3UgbMOgIDEwMDAwIHF1YW4gc8OhdC4NCg0KYGBge3J9DQpzZXQuc2VlZCgxMjMpDQojIFThuqFvIGLhuqNuZyB04bqnbiBzdeG6pXQNCkZTIDwtIHRhYmxlKGN1dChCVEMkRlMxMDAsIDEwMCwgaW5jbHVkZS5sb3dlc3QgPSBUUlVFKSkNCg0KIyBNw7QgcGjhu49uZyBk4buvIGxp4buHdSBt4bubaSBk4buxYSB0csOqbiBi4bqjbmcgdOG6p24gc3XhuqV0DQpGUzEwMCA8LSBzYW1wbGUoYXMubnVtZXJpYyhGUyksIHNpemUgPSAxMDAwMCwgcmVwbGFjZSA9IFRSVUUsIHByb2IgPSBwcm9wLnRhYmxlKEZTKSkNCmBgYA0KDQojIyMgQ2jhu4kgc+G7kSBjaOG7qW5nIGtob8OhbiBOaOG6rXQgQuG6o24gLSBOSzIyNQ0KDQoqKirEkOG7kyB0aOG7iyBwaMOibiBwaOG7kWkgY2jhu4kgc+G7kSBOaWtrZWkgMjI1KioqDQoNCmBgYHtyfQ0KaGlzdChCVEMkTksyMjUsIG1haW49IsSQ4buTIHRo4buLIHBow6JuIHBo4buRaSBj4bunYSBjaOG7iSBz4buRIE5pa2tlaSAyMjUiLCBjb2wgPSAicGluayIpDQpgYGANCg0KKioqS2nhu4NtIMSR4buLbmggcGjDom4gcGjhu5FpIGNodeG6qW4qKioNCg0KKkdp4bqjIHRodXnhur90OioNCg0KICAkSF97MH0kOiBCaeG6v24gTksyMjUgdHXDom4gdGhlbyBwaMOibiBwaOG7kWkgY2h14bqpbg0KDQogICRIX3sxfSQ6IEJp4bq/biBOSzIyNSBraMO0bmcgdHXDom4gdGhlbyBwaMOibiBwaOG7kWkgY2h14bqpbg0KDQpgYGB7cn0NCnNoYXBpcm8udGVzdChCVEMkTksyMjUpDQpgYGANClbDrCBwX3ZhbHVlID0gMi4yZS0xNiA8IDAuMDUgbsOqbiB0YSBiw6FjIGLhu48gZ2nhuqMgdGh1eeG6v3QgJEhfezB9JC4gTmdoxKlhIGzDoCBjaOG7iSBz4buRIE5pa2tlaSAyMjUga2jDtG5nIGPDsyBwaMOibiBwaOG7kWkgY2h14bqpbi4NCg0KKioqS2nhu4NtIMSR4buLbmggcGjDom4gcGjhu5FpIHQqKioNCg0KKkdp4bqjIHRodXnhur90OioNCg0KICAkSF97MH0kOiBCaeG6v24gTksyMjUgdHXDom4gdGhlbyBwaMOibiBwaOG7kWkgdA0KDQogICRIX3sxfSQ6IEJp4bq/biBOSzIyNSBraMO0bmcgdHXDom4gdGhlbyBwaMOibiBwaOG7kWkgdA0KDQpgYGB7cn0NCnQudGVzdChCVEMkTksyMjUpDQpgYGANClbDrCBwX3ZhbHVlID0gMi4yZS0xNiA8IDAuMDUgbsOqbiB0YSBiw6FjIGLhu48gZ2nhuqMgdGh1eeG6v3QgJEhfezB9JC4gTmdoxKlhIGzDoCBjaOG7iSBz4buRIE5pa2tlaSAyMjUga2jDtG5nIGPDsyBwaMOibiBwaOG7kWkgdC4NCg0KKioqS2nhu4NtIMSR4buLbmggcGjDom4gcGjhu5FpIExvZ25vbWFsKioqDQoNCipHaeG6oyB0aHV54bq/dDoqDQoNCiAgJEhfezB9JDogQmnhur9uIE5LMjI1IHR1w6JuIHRoZW8gcGjDom4gcGjhu5FpIExvZ25vcm1hbA0KDQogICRIX3sxfSQ6IEJp4bq/biBOSzIyNSBraMO0bmcgdHXDom4gdGhlbyBwaMOibiBwaOG7kWkgTG9nbm9ybWFsDQoNCmBgYHtyfQ0Ka3MudGVzdChCVEMkTksyMjUsICJwbG5vcm0iLCBtZWFubG9nID0gbWVhbihsb2coQlRDJE5LMjI1KSksIHNkbG9nID0gc2QobG9nKEJUQyROSzIyNSkpKQ0KYGBgDQpWw6wgcF92YWx1ZSA9IDIuMmUtMTYgPCAwLjA1IG7Dqm4gdGEgYsOhYyBi4buPIGdp4bqjIHRodXnhur90ICRIX3swfSQuIE5naMSpYSBsw6AgY2jhu4kgc+G7kSBOaWtrZWkgMjI1IGtow7RuZyBjw7MgcGjDom4gcGjhu5FpIExvZ25vcm1hbC4NCg0KKioqTcO0IHBo4buPbmcgYmnhur9uIE5LMjI1KioqDQoNCsSQ4buDIG3DtCBwaOG7j25nIGPDoWMgYmnhur9uIMSR4bqndSB2w6BvLCB0w6FjIGdp4bqjIHPhu60gZOG7pW5nIGjDoG0gJ3NhbXBsZScgxJHhu4MgdOG6oW8gcmEgbeG7mXQgbeG6q3Ugbmfhuqt1IG5oacOqbiB04burIGNodeG7l2kgZOG7ryBsaeG7h3UgZ+G7kWMgduG7m2kga8OtY2ggdGjGsOG7m2MgbeG6q3UgbMOgIDEwMDAwIHF1YW4gc8OhdC4NCg0KYGBge3J9DQpzZXQuc2VlZCgxMjMpDQojIFThuqFvIGLhuqNuZyB04bqnbiBzdeG6pXQNCk5LIDwtIHRhYmxlKGN1dChCVEMkTksyMjUsIDEwMCwgaW5jbHVkZS5sb3dlc3QgPSBUUlVFKSkNCg0KIyBNw7QgcGjhu49uZyBk4buvIGxp4buHdSBt4bubaSBk4buxYSB0csOqbiBi4bqjbmcgdOG6p24gc3XhuqV0DQpOSzIyNSA8LSBzYW1wbGUoYXMubnVtZXJpYyhOSyksIHNpemUgPSAxMDAwMCwgcmVwbGFjZSA9IFRSVUUsIHByb2IgPSBwcm9wLnRhYmxlKE5LKSkNCmBgYA0KDQojIyMgQ2jhu4kgc+G7kSBjaOG7qW5nIGtob8OhbiBIb2EgS+G7sw0KDQoqKirEkOG7kyB0aOG7iyBwaMOibiBwaOG7kWkgY2jhu4kgc+G7kSBOYXNkYXEgMTAwKioqDQoNCmBgYHtyfQ0KaGlzdChCVEMkTkQxMDAsIG1haW49IsSQ4buTIHRo4buLIHBow6JuIHBo4buRaSBj4bunYSBjaOG7iSBz4buRIE5hc2RhcSAxMDAiLCBjb2wgPSAicGluayIpDQpgYGANCg0KKioqS2nhu4NtIMSR4buLbmggcGjDom4gcGjhu5FpIGNodeG6qW4qKioNCg0KKkdp4bqjIHRodXnhur90OioNCg0KICAkSF97MH0kOiBCaeG6v24gTkQxMDAgdHXDom4gdGhlbyBwaMOibiBwaOG7kWkgY2h14bqpbg0KDQogICRIX3sxfSQ6IEJp4bq/biBORDEwMCBraMO0bmcgdHXDom4gdGhlbyBwaMOibiBwaOG7kWkgY2h14bqpbg0KDQpgYGB7cn0NCnNoYXBpcm8udGVzdChCVEMkTkQxMDApDQpgYGANClbDrCBwX3ZhbHVlID0gMi4yZS0xNiA8IDAuMDUgbsOqbiB0YSBiw6FjIGLhu48gZ2nhuqMgdGh1eeG6v3QgJEhfezB9JC4gTmdoxKlhIGzDoCBjaOG7iSBz4buRIE5hc2RhcSAxMDAga2jDtG5nIGPDsyBwaMOibiBwaOG7kWkgY2h14bqpbi4NCg0KKioqS2nhu4NtIMSR4buLbmggcGjDom4gcGjhu5FpIExvZ25vbWFsKioqDQoNCipHaeG6oyB0aHV54bq/dDoqDQoNCiAgJEhfezB9JDogQmnhur9uIE5EMTAwIHR1w6JuIHRoZW8gcGjDom4gcGjhu5FpIExvZ25vcm1hbA0KDQogICRIX3sxfSQ6IEJp4bq/biBORDEwMCBraMO0bmcgdHXDom4gdGhlbyBwaMOibiBwaOG7kWkgTG9nbm9ybWFsDQoNCmBgYHtyfQ0Ka3MudGVzdChCVEMkTkQxMDAsICJwbG5vcm0iLCBtZWFubG9nID0gbWVhbihsb2coQlRDJE5EMTAwKSksIHNkbG9nID0gc2QobG9nKEJUQyRORDEwMCkpKQ0KYGBgDQpWw6wgcF92YWx1ZSA9IDIuMjJlLTE2IDwgMC4wNSBuw6puIHRhIGLDoWMgYuG7jyBnaeG6oyB0aHV54bq/dCAkSF97MH0kLiBOZ2jEqWEgbMOgIGNo4buJIHPhu5EgTmFzZGFxIDEwMCBraMO0bmcgY8OzIHBow6JuIHBo4buRaSBMb2dub3JtYWwuDQoNCioqKktp4buDbSDEkeG7i25oIHBow6JuIHBo4buRaSB0KioqDQoNCipHaeG6oyB0aHV54bq/dDoqDQoNCiAgJEhfezB9JDogQmnhur9uIE5EMTAwIHR1w6JuIHRoZW8gcGjDom4gcGjhu5FpIHQNCg0KICAkSF97MX0kOiBCaeG6v24gTkQxMDAga2jDtG5nIHR1w6JuIHRoZW8gcGjDom4gcGjhu5FpIHQNCg0KYGBge3J9DQp0LnRlc3QoQlRDJE5EMTAwKQ0KYGBgDQpWw6wgcF92YWx1ZSA9IDIuMmUtMTYgPCAwLjA1IG7Dqm4gdGEgYsOhYyBi4buPIGdp4bqjIHRodXnhur90ICRIX3swfSQuIE5naMSpYSBsw6AgY2jhu4kgc+G7kSBOYXNkYXEgMTAwIGtow7RuZyBjw7MgcGjDom4gcGjhu5FpIHQuDQoNCioqKk3DtCBwaOG7j25nIGJp4bq/biBORDEwMCoqKg0KDQrEkOG7gyBtw7QgcGjhu49uZyBjw6FjIGJp4bq/biDEkeG6p3UgdsOgbywgdMOhYyBnaeG6oyBz4butIGThu6VuZyBow6BtICdzYW1wbGUnIMSR4buDIHThuqFvIHJhIG3hu5l0IG3huqt1IG5n4bqrdSBuaGnDqm4gdOG7qyBjaHXhu5dpIGThu68gbGnhu4d1IGfhu5FjIHbhu5tpIGvDrWNoIHRoxrDhu5tjIG3huqt1IGzDoCAxMDAwMCBxdWFuIHPDoXQuDQoNCmBgYHtyfQ0Kc2V0LnNlZWQoMTIzKQ0KIyBU4bqhbyBi4bqjbmcgdOG6p24gc3XhuqV0DQpORCA8LSB0YWJsZShjdXQoQlRDJE5EMTAwLCAxMDAsIGluY2x1ZGUubG93ZXN0ID0gVFJVRSkpDQoNCiMgTcO0IHBo4buPbmcgZOG7ryBsaeG7h3UgbeG7m2kgZOG7sWEgdHLDqm4gYuG6o25nIHThuqduIHN14bqldA0KTkQxMDAgPC0gc2FtcGxlKGFzLm51bWVyaWMoTkQpLCBzaXplID0gMTAwMDAsIHJlcGxhY2UgPSBUUlVFLCBwcm9iID0gcHJvcC50YWJsZShORCkpDQpgYGANCg0KIyMjIENo4buJIHPhu5EgxJHDtCBsYSBIb2EgS+G7sw0KDQoqKirEkOG7kyB0aOG7iyBwaMOibiBwaOG7kWkgY2jhu4kgc+G7kSDEkcO0IGxhIEhvYSBL4buzKioqDQoNCmBgYHtyfQ0KaGlzdChCVEMkRE9MTEEsIG1haW49IsSQ4buTIHRo4buLIHBow6JuIHBo4buRaSBj4bunYSBjaOG7iSBz4buRIMSRw7QgbGEgSG9hIEvhu7MiLCBjb2wgPSAicGluayIpDQpgYGANCg0KKioqS2nhu4NtIMSR4buLbmggcGjDom4gcGjhu5FpIGNodeG6qW4qKioNCg0KKkdp4bqjIHRodXnhur90OioNCg0KICAkSF97MH0kOiBCaeG6v24gRE9MTEEgdHXDom4gdGhlbyBwaMOibiBwaOG7kWkgY2h14bqpbg0KDQogICRIX3sxfSQ6IEJp4bq/biBET0xMQSBraMO0bmcgdHXDom4gdGhlbyBwaMOibiBwaOG7kWkgY2h14bqpbg0KDQpgYGB7cn0NCnNoYXBpcm8udGVzdChCVEMkRE9MTEEpDQpgYGANClbDrCBwX3ZhbHVlID0gMi4yZS0xNiA8IDAuMDUgbsOqbiB0YSBiw6FjIGLhu48gZ2nhuqMgdGh1eeG6v3QgJEhfezB9JC4gTmdoxKlhIGzDoCBjaOG7iSBz4buRIMSRw7QgbGEgSG9hIEvhu7Mga2jDtG5nIGPDsyBwaMOibiBwaOG7kWkgY2h14bqpbi4NCg0KKioqS2nhu4NtIMSR4buLbmggcGjDom4gcGjhu5FpIExvZ25vbWFsKioqDQoNCipHaeG6oyB0aHV54bq/dDoqDQoNCiAgJEhfezB9JDogQmnhur9uIERPTExBIHR1w6JuIHRoZW8gcGjDom4gcGjhu5FpIExvZ25vcm1hbA0KDQogICRIX3sxfSQ6IEJp4bq/biBET0xMQSBraMO0bmcgdHXDom4gdGhlbyBwaMOibiBwaOG7kWkgTG9nbm9ybWFsDQoNCmBgYHtyfQ0Ka3MudGVzdChCVEMkRE9MTEEsICJwbG5vcm0iLCBtZWFubG9nID0gbWVhbihsb2coQlRDJERPTExBKSksIHNkbG9nID0gc2QobG9nKEJUQyRET0xMQSkpKQ0KYGBgDQpWw6wgcF92YWx1ZSA9IDIuMmUtMTYgPCAwLjA1IG7Dqm4gdGEgYsOhYyBi4buPIGdp4bqjIHRodXnhur90ICRIX3swfSQuIE5naMSpYSBsw6AgY2jhu4kgc+G7kSDEkcO0IGxhIEhvYSBL4buzIGtow7RuZyBjw7MgcGjDom4gcGjhu5FpIExvZ25vcm1hbC4NCg0KKioqS2nhu4NtIMSR4buLbmggcGjDom4gcGjhu5FpIHQqKioNCg0KKkdp4bqjIHRodXnhur90OioNCg0KICAkSF97MH0kOiBCaeG6v24gRE9MTEEgdHXDom4gdGhlbyBwaMOibiBwaOG7kWkgdA0KDQogICRIX3sxfSQ6IEJp4bq/biBET0xMQSBraMO0bmcgdHXDom4gdGhlbyBwaMOibiBwaOG7kWkgdA0KDQpgYGB7cn0NCnQudGVzdChCVEMkRE9MTEEpDQpgYGANClbDrCBwX3ZhbHVlID0gMi4yZS0xNiA8IDAuMDUgbsOqbiB0YSBiw6FjIGLhu48gZ2nhuqMgdGh1eeG6v3QgJEhfezB9JC4gTmdoxKlhIGzDoCBjaOG7iSBz4buRIMSRw7QgbGEgSG9hIEvhu7Mga2jDtG5nIGPDsyBwaMOibiBwaOG7kWkgdC4NCg0KKioqTcO0IHBo4buPbmcgYmnhur9uIERPTExBKioqDQoNCsSQ4buDIG3DtCBwaOG7j25nIGPDoWMgYmnhur9uIMSR4bqndSB2w6BvLCB0w6FjIGdp4bqjIHPhu60gZOG7pW5nIGjDoG0gJ3NhbXBsZScgxJHhu4MgdOG6oW8gcmEgbeG7mXQgbeG6q3Ugbmfhuqt1IG5oacOqbiB04burIGNodeG7l2kgZOG7ryBsaeG7h3UgZ+G7kWMgduG7m2kga8OtY2ggdGjGsOG7m2MgbeG6q3UgbMOgIDEwMDAwIHF1YW4gc8OhdC4NCg0KYGBge3J9DQpzZXQuc2VlZCgxMjMpDQojIFThuqFvIGLhuqNuZyB04bqnbiBzdeG6pXQNCkRMQSA8LSB0YWJsZShjdXQoQlRDJERPTExBLCAxMDAsIGluY2x1ZGUubG93ZXN0ID0gVFJVRSkpDQoNCiMgTcO0IHBo4buPbmcgZOG7ryBsaeG7h3UgbeG7m2kgZOG7sWEgdHLDqm4gYuG6o25nIHThuqduIHN14bqldA0KRE9MTEEgPC0gc2FtcGxlKGFzLm51bWVyaWMoRExBKSwgc2l6ZSA9IDEwMDAwLCByZXBsYWNlID0gVFJVRSwgcHJvYiA9IHByb3AudGFibGUoRExBKSkNCmBgYA0KDQoNCiMjIyBHacOhIHbDoG5nDQoNCioqKsSQ4buTIHRo4buLIHBow6JuIHBo4buRaSBnacOhIHbDoG5nKioqDQoNCmBgYHtyfQ0KaGlzdChCVEMkR09MRCwgbWFpbj0ixJDhu5MgdGjhu4sgcGjDom4gcGjhu5FpIGPhu6dhIGdpw6EgdsOgbmciLCBjb2wgPSAicGluayIpDQpgYGANCg0KKioqS2nhu4NtIMSR4buLbmggcGjDom4gcGjhu5FpIGNodeG6qW4qKioNCg0KKkdp4bqjIHRodXnhur90OioNCg0KICAkSF97MH0kOiBCaeG6v24gR09MRCB0dcOibiB0aGVvIHBow6JuIHBo4buRaSBjaHXhuqluDQoNCiAgJEhfezF9JDogQmnhur9uIEdPTEQga2jDtG5nIHR1w6JuIHRoZW8gcGjDom4gcGjhu5FpIGNodeG6qW4NCg0KYGBge3J9DQpzaGFwaXJvLnRlc3QoQlRDJEdPTEQpDQpgYGANClbDrCBwX3ZhbHVlID0gMi4yZS0xNiA8IDAuMDUgbsOqbiB0YSBiw6FjIGLhu48gZ2nhuqMgdGh1eeG6v3QgJEhfezB9JC4gTmdoxKlhIGzDoCBnacOhIHbDoG5nIGtow7RuZyBjw7MgcGjDom4gcGjhu5FpIGNodeG6qW4uDQoNCioqKktp4buDbSDEkeG7i25oIHBow6JuIHBo4buRaSBMb2dub21hbCoqKg0KDQoqR2nhuqMgdGh1eeG6v3Q6Kg0KDQogICRIX3swfSQ6IEJp4bq/biBHT0xEIHR1w6JuIHRoZW8gcGjDom4gcGjhu5FpIExvZ25vcm1hbA0KDQogICRIX3sxfSQ6IEJp4bq/biBHT0xEIGtow7RuZyB0dcOibiB0aGVvIHBow6JuIHBo4buRaSBMb2dub3JtYWwNCg0KYGBge3J9DQprcy50ZXN0KEJUQyRHT0xELCAicGxub3JtIiwgbWVhbmxvZyA9IG1lYW4obG9nKEJUQyRHT0xEKSksIHNkbG9nID0gc2QobG9nKEJUQyRHT0xEKSkpDQpgYGANClbDrCBwX3ZhbHVlID0gMi4yZS0xNiA8IDAuMDUgbsOqbiB0YSBiw6FjIGLhu48gZ2nhuqMgdGh1eeG6v3QgJEhfezB9JC4gTmdoxKlhIGzDoCBnacOhIHbDoG5nIGtow7RuZyBjw7MgcGjDom4gcGjhu5FpIExvZ25vcm1hbC4NCg0KKioqS2nhu4NtIMSR4buLbmggcGjDom4gcGjhu5FpIHQqKioNCg0KKkdp4bqjIHRodXnhur90OioNCg0KICAkSF97MH0kOiBCaeG6v24gR09MRCB0dcOibiB0aGVvIHBow6JuIHBo4buRaSB0DQoNCiAgJEhfezF9JDogQmnhur9uIEdPTEQga2jDtG5nIHR1w6JuIHRoZW8gcGjDom4gcGjhu5FpIHQNCg0KYGBge3J9DQp0LnRlc3QoQlRDJEdPTEQpDQpgYGANClbDrCBwX3ZhbHVlID0gMi4yZS0xNiA8IDAuMDUgbsOqbiB0YSBiw6FjIGLhu48gZ2nhuqMgdGh1eeG6v3QgJEhfezB9JC4gTmdoxKlhIGzDoCBnacOhIHbDoG5nIGtow7RuZyBjw7MgcGjDom4gcGjhu5FpIHQuDQoNCioqKk3DtCBwaOG7j25nIGJp4bq/biBXVEkqKioNCg0KxJDhu4MgbcO0IHBo4buPbmcgY8OhYyBiaeG6v24gxJHhuqd1IHbDoG8sIHTDoWMgZ2nhuqMgc+G7rSBk4bulbmcgaMOgbSAnc2FtcGxlJyDEkeG7gyB04bqhbyByYSBt4buZdCBt4bqrdSBuZ+G6q3Ugbmhpw6puIHThu6sgY2h14buXaSBk4buvIGxp4buHdSBn4buRYyB24bubaSBrw61jaCB0aMaw4bubYyBt4bqrdSBsw6AgMTAwMDAgcXVhbiBzw6F0Lg0KDQpgYGB7cn0NCnNldC5zZWVkKDEyMykNCiMgVOG6oW8gYuG6o25nIHThuqduIHN14bqldA0KRFQgPC0gdGFibGUoY3V0KEJUQyRXVEksIDEwMCwgaW5jbHVkZS5sb3dlc3QgPSBUUlVFKSkNCg0KIyBNw7QgcGjhu49uZyBk4buvIGxp4buHdSBt4bubaSBk4buxYSB0csOqbiBi4bqjbmcgdOG6p24gc3XhuqV0DQpXVEkgPC0gc2FtcGxlKGFzLm51bWVyaWMoRFQpLCBzaXplID0gMTAwMDAsIHJlcGxhY2UgPSBUUlVFLCBwcm9iID0gcHJvcC50YWJsZShEVCkpDQpgYGANCiANCiMjIyBHacOhIGThuqd1IHRow7QNCg0KKioqxJDhu5MgdGjhu4sgcGjDom4gcGjhu5FpIGdpw6EgZOG6p3UgdGjDtCoqKg0KDQpgYGB7cn0NCmhpc3QoQlRDJFdUSSwgbWFpbj0ixJDhu5MgdGjhu4sgcGjDom4gcGjhu5FpIGPhu6dhIGdpw6EgZOG6p3UgdGjDtCIsIGNvbCA9ICJwaW5rIikNCmBgYA0KDQoqKipLaeG7g20gxJHhu4tuaCBwaMOibiBwaOG7kWkgY2h14bqpbioqKg0KDQoqR2nhuqMgdGh1eeG6v3Q6Kg0KDQogICRIX3swfSQ6IEJp4bq/biBXVEkgdHXDom4gdGhlbyBwaMOibiBwaOG7kWkgY2h14bqpbg0KDQogICRIX3sxfSQ6IEJp4bq/biBXVEkga2jDtG5nIHR1w6JuIHRoZW8gcGjDom4gcGjhu5FpIGNodeG6qW4NCg0KYGBge3J9DQpzaGFwaXJvLnRlc3QoQlRDJFdUSSkNCmBgYA0KVsOsIHBfdmFsdWUgPSA3Ljc1ZS0wOCA8IDAuMDUgbsOqbiB0YSBiw6FjIGLhu48gZ2nhuqMgdGh1eeG6v3QgJEhfezB9JC4gTmdoxKlhIGzDoCBnacOhIGThuqd1IHRow7Qga2jDtG5nIGPDsyBwaMOibiBwaOG7kWkgY2h14bqpbi4NCg0KKioqS2nhu4NtIMSR4buLbmggcGjDom4gcGjhu5FpIExvZ25vbWFsKioqDQoNCipHaeG6oyB0aHV54bq/dDoqDQoNCiAgJEhfezB9JDogQmnhur9uIFdUSSB0dcOibiB0aGVvIHBow6JuIHBo4buRaSBMb2dub3JtYWwNCg0KICAkSF97MX0kOiBCaeG6v24gV1RJIGtow7RuZyB0dcOibiB0aGVvIHBow6JuIHBo4buRaSBMb2dub3JtYWwNCg0KYGBge3J9DQprcy50ZXN0KEJUQyRXVEksICJwbG5vcm0iLCBtZWFubG9nID0gbWVhbihsb2coQlRDJFdUSSkpLCBzZGxvZyA9IHNkKGxvZyhCVEMkV1RJKSkpDQpgYGANClbDrCBwX3ZhbHVlID0gMS45MjVlLTA4IDwgMC4wNSBuw6puIHRhIGLDoWMgYuG7jyBnaeG6oyB0aHV54bq/dCAkSF97MH0kLiBOZ2jEqWEgbMOgIGdpw6EgZOG6p3UgdGjDtCBraMO0bmcgY8OzIHBow6JuIHBo4buRaSBMb2dub3JtYWwuDQoNCioqKktp4buDbSDEkeG7i25oIHBow6JuIHBo4buRaSB0KioqDQoNCipHaeG6oyB0aHV54bq/dDoqDQoNCiAgJEhfezB9JDogQmnhur9uIFdUSSB0dcOibiB0aGVvIHBow6JuIHBo4buRaSB0DQoNCiAgJEhfezF9JDogQmnhur9uIFdUSSBraMO0bmcgdHXDom4gdGhlbyBwaMOibiBwaOG7kWkgdA0KDQpgYGB7cn0NCnQudGVzdChCVEMkV1RJKQ0KYGBgDQpWw6wgcF92YWx1ZSA9IDIuMmUtMTYgPCAwLjA1IG7Dqm4gdGEgYsOhYyBi4buPIGdp4bqjIHRodXnhur90ICRIX3swfSQuIE5naMSpYSBsw6AgZ2nDoSBk4bqndSB0aMO0IGtow7RuZyBjw7MgcGjDom4gcGjhu5FpIHQuDQoNCioqKk3DtCBwaOG7j25nIGJp4bq/biBHT0xEKioqDQoNCsSQ4buDIG3DtCBwaOG7j25nIGPDoWMgYmnhur9uIMSR4bqndSB2w6BvLCB0w6FjIGdp4bqjIHPhu60gZOG7pW5nIGjDoG0gJ3NhbXBsZScgxJHhu4MgdOG6oW8gcmEgbeG7mXQgbeG6q3Ugbmfhuqt1IG5oacOqbiB04burIGNodeG7l2kgZOG7ryBsaeG7h3UgZ+G7kWMgduG7m2kga8OtY2ggdGjGsOG7m2MgbeG6q3UgbMOgIDEwMDAwIHF1YW4gc8OhdC4NCg0KYGBge3J9DQpzZXQuc2VlZCgxMjMpDQojIFThuqFvIGLhuqNuZyB04bqnbiBzdeG6pXQNClZBTkcgPC0gdGFibGUoY3V0KEJUQyRHT0xELCAxMDAsIGluY2x1ZGUubG93ZXN0ID0gVFJVRSkpDQoNCiMgTcO0IHBo4buPbmcgZOG7ryBsaeG7h3UgbeG7m2kgZOG7sWEgdHLDqm4gYuG6o25nIHThuqduIHN14bqldA0KR09MRCA8LSBzYW1wbGUoYXMubnVtZXJpYyhWQU5HKSwgc2l6ZSA9IDEwMDAwLCByZXBsYWNlID0gVFJVRSwgcHJvYiA9IHByb3AudGFibGUoVkFORykpDQpgYGANCg0KDQojIyBNw7QgaMOsbmggbcO0IHBo4buPbmcNCg0KIyMjIFjDonkgZOG7sW5nIG3DtCBow6xuaCBtw7QgcGjhu49uZw0KDQpgYGB7cn0NCm1vZGVsIDwtIGxtKEJUQyRCSVQgfiBCVEMkRlMxMDAgKyBCVEMkTksyMjUgK0JUQyRORDEwMCArIEJUQyRET0xMQSArIEJUQyRXVEkgKyBCVEMkR09MRCwgZGF0YT1CVEMpDQpzdW1tYXJ5KG1vZGVsKQ0KYGBgDQpU4burIGvhur90IHF14bqjIGjhu5NpIHF1eSwgdGEgdGjhuqV5IGPDoWMgYmnhur9uIMSR4buZYyBs4bqtcCBGUzEwMCwgTksyMjUsIE5EMTAwLCBXVEkgdsOgIEdPTEQgY8OzIMO9IG5naMSpYSB0aOG7kW5nIGvDqiDhu58gbeG7qWMgw70gbmdoxKlhIDUlLCBuZ2jEqWEgbMOgIGPDoWMgYmnhur9uIMSR4buZYyBs4bqtcCBuw6B5IGPDsyB0w6FjIMSR4buZbmcgxJHhur9uIGJp4bq/biBwaOG7pSB0aHXhu5ljIEJJVC5L4bq/dCBxdeG6oyBuZ2hpw6puIGPhu6l1IGPDsyBwaMawxqFuZyB0csOsbmggbmjGsCBzYXU6DQoNCiQkQklUPTQ5NTc2Ljk5NDctMS42NTI5RlMxMDArMC40Mzc2TksyMjUrNS40OTEzTkQxMDAtNjUyLjI5NDZET0xMQSsxMjguMzQxMldUSS0xOS4zNzkzR09MRCQkDQoNCsOdIG5naMSpYToNCg0KICAkXGJldGFfezB9JCA9IDQ5NTc2Ljk5NDcgbMOgIGjhu4cgc+G7kSB04buxIGRvLCBraGkgY8OhYyB54bq/dSB04buRIMSR4buZYyBs4bqtcCBi4bqxbmcgMCB0aMOsIGdpw6EgQml0Y29pbiBjw7MgZ2nDoSB0cuG7iyBi4bqxbmcgNDk1NzYuOTk0NyBVU0QuDQogIA0KICAkXGJldGFfezF9JCA9IC0xLjY1MjksIGtoaSBjw6FjIHnhur91IHThu5Ega2jDoWMga2jDtG5nIMSR4buVaSwgY2jhu4kgc+G7kSBGVFNFIDEwMCB0xINuZyBsw6puIDEgxJFp4buDbSB0aMOsIGdpw6EgQml0Y29pbiBnaeG6o20gMS42NTI5IFVTRC4NCiAgDQogICRcYmV0YV97Mn0kID0gMC40Mzc2LCBraGkgY8OhYyB54bq/dSB04buRIGtow6FjIGtow7RuZyDEkeG7lWksIGNo4buJIHPhu5EgTmlra2VpIDIyNSB0xINuZyBsw6puIDEgxJFp4buDbSB0aMOsIGdpw6EgQml0Y29pbiB0xINuZyAwLjQzNzYgVVNELg0KICANCiAgJFxiZXRhX3szfSQgPSA1LjQ5MTMsIGtoaSBjw6FjIHnhur91IHThu5Ega2jDoWMga2jDtG5nIMSR4buVaSwgY2jhu4kgc+G7kSBOYXNkYXEgMTAwIHTEg25nIGzDqm4gMSDEkWnhu4NtIHRow6wgZ2nDoSBCaXRjb2luIHTEg25nIDUuNDkxMyBVU0QuDQogIA0KICAkXGJldGFfezR9JCA9IC02NTIuMjk0Niwga2hpIGPDoWMgeeG6v3UgdOG7kSBraMOhYyBraMO0bmcgxJHhu5VpLCBjaOG7iSBz4buRIMSRw7QgbGEgSG9hIEvhu7MgdMSDbmcgbMOqbiAxIMSRaeG7g20gdGjDrCBnacOhIEJpdGNvaW4gZ2nhuqNtIDY1Mi4yOTQ2IFVTRC4NCiAgDQogICRcYmV0YV97NX0kID0gMTI4LjM0MTIsIGtoaSBjw6FjIHnhur91IHThu5Ega2jDoWMga2jDtG5nIMSR4buVaSwgZ2nDoSBk4bqndSB0aMO0IHTEg25nIGzDqm4gMSBVU0QgdGjDrCBnacOhIEJpdGNvaW4gdMSDbmcgMTI4LjM0MTIgVVNELg0KICANCiAgJFxiZXRhX3s2fSQgPSAtMTkuMzc5Mywga2hpIGPDoWMgeeG6v3UgdOG7kSBraMOhYyBraMO0bmcgxJHhu5VpLCBnacOhIHbDoG5nIHTEg25nIGzDqm4gMSBVU0QgdGjDrCBnacOhIEJpdGNvaW4gdMSDbmcgMTkuMzc5MyBVU0QuDQogIA0KIyMjIEtp4buDbSDEkeG7i25oIG3DtCBow6xuaA0KDQogVOG7qyBr4bq/dCBxdeG6oyB0csOqbiwgdGEgdGjhuqV5IGdpw6EgdHLhu4sgTXVsdGlwbGUgUi1zcXVhcmVkICgkUl4yJCkgPSAwLjg0NzkgY2hvIGJp4bq/dCBt4bupYyDEkeG7mSBwaMO5IGjhu6NwIGPhu6dhIG3DtCBow6xuaCBsw6AgODQsNzklLg0KIA0KIFRo4buRbmcga8OqIEYtc3RhdGlzdGljIGPDsyBwLXZhbHVlIDwgMC4wNSBuw6puIGPDsyB0aOG7gyBr4bq/dCBsdeG6rW4gaMOgbSBo4buTaSBxdXkgbeG6q3UgcGjDuSBo4bujcCBoYXkgY8OzIMOtdCBuaOG6pXQgbeG7mXQgYmnhur9uIMSR4buZYyBs4bqtcCBjw7MgdMOhYyDEkeG7mW5nIMSR4bq/biBiaeG6v24gcGjhu6UgdGh14buZYy4NCiANCiMjIEvhur90IHF14bqjIG3DtCBwaOG7j25nDQoNClRhIHPhur0gbcO0IHBo4buPbmcgZ2nDoSBCaXRjb2luIHRyb25nIDEwMDAwIHBoacOqbiBnaWFvIGThu4tjaCBt4bubaS4gVGEgY8OzIG3DtCBow6xuaCBtw7QgcGjhu49uZyBCSVQgduG7m2kgY8OhYyBo4buHIHPhu5EgaOG7k2kgcXV5IG5oxrAgc2F1Og0KDQokJEJJVD00OTU3Ni45OTQ3LTEuNjUyOUZTMTAwKzAuNDM3Nk5LMjI1KzUuNDkxM05EMTAwLTY1Mi4yOTQ2RE9MTEErMTI4LjM0MTJXVEktMTkuMzc5M0dPTEQkJA0KDQpgYGB7cn0NCkJJVCA8LSA0OTU3Ni45OTQ3IC0gMS42NTI5KkZTMTAwICsgMC40Mzc2Kk5LMjI1ICsgNS40OTEzKk5EMTAwIC0gNjUyLjI5NDYqRE9MTEEgKyAxMjguMzQxMipXVEkgLSAxOS4zNzkzKkdPTEQNCg0KaGVhZChCSVQpDQpoaXN0KEJJVCkNCnN1bW1hcnkoQklUKQ0KYGBgDQpE4buxYSB2w6BvIGvhur90IHF14bqjIHRo4buRbmcga8OqIG3DtCB04bqjIGPhu6dhIGThu68gbGnhu4d1IG3DtCBwaOG7j25nIGdpw6EgQml0Y29pbiB24bubaSAxMDAwMCBxdWFuIHPDoXQgdGEgdGjhuqV5IGdpw6EgYml0Y29pbiDEkcaw4bujYyBtw7QgcGjhu49uZyBkYW8gxJHhu5luZyB04burIDIxMDE0IFVTRCDEkeG6v24gNDkwNDMgVVNELCBnacOhIHRydW5nIGLDrG5oIGzDoCAzNzg4MSBVU0QuDQoNCiMgQ0jGr8agTkcgNC4gS+G6vlQgTFXhuqxODQoNCg0KDQojIFTDgEkgTEnhu4ZVIFRIQU0gS0jhuqJPDQoNClRy4bqnbiBM4buZYyBIw7luZywgVHLhuqduIE3huqFuaCBUxrDhu51uZzog4oCcR2nDoW8gdHLDrG5oIE3DtCBwaOG7j25nIG5n4bqrdSBuaGnDqm7igJ0sIHRyxrDhu51uZyDEkOG6oWkgaOG7jWMgVMOgaSBjaMOtbmgg4oCTIE1hcmtldGluZywgVGjDoG5oIHBo4buRIEjhu5MgQ2jDrSBNaW5oLg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0K