Pendahuluan
Dalam dunia bisnis, pemahaman terhadap hubungan antara aktivitas
pemasaran (marketing) dan penjualan (sales) menjadi aspek penting dalam
merumuskan strategi yang efektif. Salah satu pendekatan yang dapat
digunakan untuk mengevaluasi kekuatan dan arah hubungan tersebut adalah
melalui analisis korelasi.
Analisis korelasi merupakan uji statistika yang mengukur keeratan
hubungan antara dua variabel. Keeratan hubungan antara dua variabel
dapat diukur kekuatannya. Indeks yang mengukur keeratan hubungan dua
variabel disebut koefisien korelasi. Ketika data tidak memenuhi asumsi
normalitas atau bersifat ordinal, metode korelasi non-parametrik seperti
korelasi Spearman menjadi pilihan yang lebih tepat.
Korelasi Spearman merupakan pengukuran nonparametrik. Koefisien korelasi
ini mempuyai simbol \(\rho\) (rho).
Pengukuran dengan menggunakan koefisien korelasi Spearman digunakan
untuk menilai adanya seberapa baik fungsi monotonik (suatu fungsi yang
sesuai perintah) yang digunakan untuk menggambarkan hubungan dua
variabel dengan tanpa membuat asumsi distribusi frekuensi dari
variabel-variabel yang diteliti.
Nilai koefisien korelasi Spearman (\(\rho\)) harus memenuhi \(-1 \leq \rho \leq 1\). Rumusnya adalah:
\[
\rho = 1 - \frac{6\sum_{i=1}^{n} d_i^2}{n(n^2-1)}
\]
dimana
\[\sum_{i=1}^{n} d_i^2 = \sum_{i=1}^{n}
\left[ R(X_i) - R(Y_i) \right]^2
\] yaitu jumlah kuadrat dari selisih-selisih antara rank-rank
\(X_i\) dan \(Y_i\) untuk masing-masing pengamatan.
Keterangan:
\(\rho\) : Koefisien korelasi rank
Spearman
\(d_i^2\) : Ranking yang
dikuadratkan
\(n\) : Banyaknya data
Tabel Interpretasi Nilai \(\rho\) Spearman
|
Nilai \(\rho\)
|
|
|
rho_positif
|
rho_negatif
|
Kategori
|
|
0.9 ≤ ρ < 1
|
-0.9 ≤ ρ < -1
|
Sangat kuat
|
|
0.7 ≤ ρ < 0.9
|
-0.7 ≤ ρ < -0.9
|
Kuat
|
|
0.5 ≤ ρ < 0.7
|
-0.5 ≤ ρ < -0.7
|
Moderat
|
|
0.3 ≤ ρ < 0.5
|
-0.3 ≤ ρ < -0.5
|
Lemah
|
|
0 ≤ ρ < 0.3
|
-0 ≤ ρ < -0.3
|
Sangat lemah
|
Insight
Insight yang ingin diperoleh dari analisis ini adalah apakah peningkatan
aktivitas marketing memiliki hubungan signifikan secara statistik dengan
kenaikan angka penjualan, yang dapat memberikan dasar bagi optimalisasi
strategi promosi.
Pengujian Data
Uji Normalitas
Hipotesis
\(H_0\) : Data
berdistribusi normal
\(H_1\) : Data
tidak berdistribusi normal
Taraf Signifikansi (α)
Daerah Kritis \(H_0\) ditolak
jika p−value < \(\alpha\)
Statistik Uji Menggunakan saphiro.test() untuk menguji normalitas
pada masing-masing variabel.
Kesimpulan Jika p-value < 0,05 → Tolak \(H_0\) → Data tidak berdistribusi
normal.
Jika p-value ≥ 0,05 → Gagal tolak \(H_0\) → Data berdistribusi normal.
Uji Korelasi Spearman
Hipotesis
\(H_0\) : Tidak
terdapat hubungan (korelasi) yang signifikan antara dua variabel
\(H_1\) : Terdapat hubungan (korelasi)
yang signifikan antara dua variabel
Taraf Signifikansi (α)
Daerah Kritis \(H_0\) ditolak
jika p−value < \(\alpha\)
Statistik Uji Menggunakan cor.test() untuk menguji korelasi
antara kedua variabel.
Kesimpulan Jika p-value < 0,05 → Tolak \(H_0\) → Terdapat hubungan (korelasi) yang
signifikan antara dua variabel.
Jika p-value ≥ 0,05 → Gagal tolak
\(H_0\) → Tidak terdapat hubungan
(korelasi) yang signifikan antara dua variabel.
Deskripsi Data
- Aktifkan library yang digunakan
library(readxl) # Untuk membaca file Excel
library(dplyr) # Untuk manipulasi data
library(ggplot2) # Untuk visualisasi data
library(scales) # Untuk formatting axis
library(DT) # Untuk tabel interaktif
library(tidyverse) # Koleksi paket data science
library(knitr) # Mengatur tampilan output di RMarkdown
library(ggpubr) # Untuk membuat grafik dan menambahkan uji statistik pada grafik ggplot
library(patchwork) # Untuk menggabungkan plot
- Input Data
Data02 <- read_excel("~/Semester 4/SIM/CM 1/3. CM1 - Coffee Chain Datasets.xlsx")
- Tampilkan Data
library(DT)
library(dplyr)
marketing_sales <- Data02 %>% select(Marketing, Sales)
DT::datatable(marketing_sales)
Analisis Korelasi Spearman
Uji Normalitas
- Uji Normalitas Variabel Marketing
library(ggpubr)
ggqqplot(marketing_sales$Marketing) +
labs(title = "Q-Q Plot Variabel Marketing") +
theme(
plot.title = element_text(
hjust = 0.5,
size = 14,
face = "bold",
margin = margin(b = 15)
))

shapiro.test(marketing_sales$Marketing)
##
## Shapiro-Wilk normality test
##
## data: marketing_sales$Marketing
## W = 0.81776, p-value < 2.2e-16
Kesimpulan
Karena p-value = 2.2e-16 < 0,05
maka \(H_0\) ditolak yang berarti data
tidak berdistribusi normal.
- Uji Normalitas Variabel Sales
ggqqplot(marketing_sales$Sales) +
labs(title = "Q-Q Plot Variabel Sales") +
theme(
plot.title = element_text(
hjust = 0.5,
size = 14,
face = "bold",
margin = margin(b = 15))
)

shapiro.test(marketing_sales$Sales)
##
## Shapiro-Wilk normality test
##
## data: marketing_sales$Sales
## W = 0.78969, p-value < 2.2e-16
Kesimpulan
Karena p-value = 2.2e-16 < 0,05
maka \(H_0\) ditolak yang berarti data
tidak berdistribusi normal.
Uji Korelasi Spearman
library(ggplot2)
library(patchwork)
# Plot untuk Marketing
plot_marketing <- ggplot(marketing_sales, aes(x = Marketing)) +
geom_histogram(bins = 30, fill = "#9A7E6F", color = "#54473F", alpha = 0.7) +
labs(title = "Distribusi Nilai Marketing",
x = "Marketing",
y = "Frekuensi") +
theme_minimal()
# Plot untuk Sales
plot_sales <- ggplot(marketing_sales, aes(x = Sales)) +
geom_histogram(bins = 30, fill = "#B59F78", color = "#54473F", alpha = 0.7) +
labs(title = "Distribusi Nilai Sales",
x = "Sales",
y = "Frekuensi") +
theme_minimal()
# Menggabungkan plot secara horizontal
combined_plots <- plot_marketing + plot_sales +
plot_annotation(title = "Distribusi Variabel Marketing dan Sales",
theme = theme(plot.title = element_text(hjust = 0.5, size = 14)))
# Menampilkan plot gabungan
combined_plots

cor_result <- cor.test(marketing_sales$Marketing, marketing_sales$Sales,
method = "spearman", exact = FALSE)
print(cor_result)
##
## Spearman's rank correlation rho
##
## data: marketing_sales$Marketing and marketing_sales$Sales
## S = 2463882518, p-value < 2.2e-16
## alternative hypothesis: true rho is not equal to 0
## sample estimates:
## rho
## 0.8071508
Kesimpulan
Karena p-value = 2.2e-16 < 0,05
maka \(H_0\) ditolak yang berarti
terdapat hubungan (korelasi) yang signifikan antara marketing dengan
sales.
Didapatkan nilai rho \(\rho\)
sebesar 0.8071508 yang termasuk dalam kategori korelasi
kuat karena > 0,7. Terdapat hubungan positif kuat antara variabel
marketing dan sales. Setiap peningkatan pada aktivitas marketing
cenderung diikuti peningkatan sales.
library(ggplot2)
ggplot(marketing_sales, aes(x = Marketing, y = Sales)) +
geom_point(alpha = 0.5, size = 1.5) +
geom_smooth(method = "lm", se = FALSE, color = "blue", linewidth = 1) +
ggtitle("Hubungan antara Marketing dan Sales") +
xlab("Biaya Marketing") +
ylab("Total Sales") +
theme(
plot.title = element_text(
hjust = 0.5,
size = 14,
color = "#333333",
family = "Times New Roman"
),
axis.title = element_text(
size = 14,
color = "#555555"
),
axis.text = element_text(
size = 12,
color = "#666666"
),
plot.background = element_rect(fill = "#FFF8E7"),
panel.background = element_rect(fill = "#FFF8E7"),
panel.grid.major = element_line(color = "gray80", linewidth = 0.5),
panel.grid.minor = element_blank(),
panel.border = element_rect(color = "black", fill = NA, linewidth = 1)
)
Garis biru menunjukkan kemiringan positif, yang menandakan bahwa secara
umum, semakin tinggi biaya marketing, maka semakin tinggi pula total
penjualan (sales). Titik-titik data tersebar cukup luas di sekitar
garis. Ini menunjukkan bahwa meskipun ada kecenderungan positif,
hubungan antara biaya marketing dan penjualan tidak selalu konsisten.
Ada pengaruh faktor lain atau variasi alami dalam data. Terdapat
beberapa titik yang menyimpang jauh dari garis (baik di bawah maupun di
atas), yang bisa dianggap sebagai outlier. Ini menunjukkan bahwa dalam
beberapa kasus, biaya marketing tinggi tidak selalu menghasilkan sales
tinggi atau sebaliknya.
Kesimpulan
Berdasarkan uji normalitas menggunakan Shapiro-Wilk, diketahui bahwa
data pada variabel marketing dan sales tidak berdistribusi normal.
Analisis dilanjutkan dengan uji korelasi non-parametrik menggunakan
Spearman. Hasil uji korelasi Spearman menunjukkan bahwa nilai
p-value < 0,05, sehingga \(H_0\) ditolak. Ini berarti terdapat
hubungan yang signifikan antara variabel marketing dan sales. Nilai
koefisien korelasi \(\rho\) (rho)
sebesar 0,8071508 mengindikasikan adanya hubungan positif yang kuat
antara keduanya, yang menunjukkan bahwa setiap peningkatan aktivitas
marketing cenderung diikuti oleh peningkatan otal sales.
Dengan demikian, dapat disimpulkan bahwa strategi marketing yang
dilakukan selama ini telah berjalan secara efektif dan sesuai dengan
tujuan pemasaran, karena terbukti mampu mendorong peningkatan total
penjualan. Hal ini menunjukkan bahwa alokasi anggaran dan upaya dalam
kegiatan marketing memberikan dampak yang nyata terhadap total
penjualan.
Referensi
Nelvidawati, & Kasman, M. (2023). Penggunaan korelasi
Spearman untuk menguji hubungan suhu dan besarnya curah hujan bulanan di
Kota Padang. Jurnal Daur Lingkungan, 6(1), 34–39.
Nugroho, S., Akbar, S., & Vusvitasari, R. (2008). Kajian
hubungan koefisien korelasi Pearson (r), Spearman-rho (\(\rho\)),ρ Kendall-Tau (\(\tau\)), Gamma (\(\Gamma\)), dan Somers (\(d_{yx}\)). Jurnal Gradien, 4(2),
372–381.
Yanti, C. A., & Akhri, I. J. (2021). Perbedaan uji korelasi
Pearson, Spearman dan Kendall Tau dalam menganalisis kejadian diare.
Jurnal Endurance: Kajian Ilmiah Problema Kesehatan, 6(1),
51–58.
Amelia, D. G., Natasya, M., Septiana, M., Dewi, Z. K., &
Halizah, N. (2024). Analisis korelasi antara kuantitas waktu tidur
dengan konsentrasi belajar mahasiswa Agribisnis Universitas Sultan Ageng
Tirtayasa. IJEDR: Indonesian Journal of Education and Development
Research, 2(1).
LS0tDQp0aXRsZTogIkFOQUxJU0lTIEtPUkVMQVNJIFNQRUFSTUFOIEFOVEFSQSBNQVJLRVRJTkcgREVOR0FOIFNBTEVTIFBBREEgUEVOSlVBTEFOIENPRkZFRSBDSEFJTiINCmF1dGhvcjogIlphaHJhIE51ciBBaW5pIC0gTTA3MjMwOTMiDQpkYXRlOiANCm91dHB1dDogb3BlbmludHJvOjpsYWJfcmVwb3J0DQotLS0NCg0KYGBge3Igc2V0dXAsIGluY2x1ZGU9RkFMU0V9DQprbml0cjo6b3B0c19jaHVuayRzZXQoZWNobyA9IFRSVUUpDQpgYGANCg0KPHN0eWxlPg0KYm9keSB7DQogIGZvbnQtZmFtaWx5OiAiVGltZXMgTmV3IFJvbWFuIiwgVGltZXMsIHNlcmlmOw0KICBiYWNrZ3JvdW5kLWNvbG9yOiNlMGRkY2M7DQogIGZvbnQtc2l6ZTogMThweDsNCiAgdGV4dC1hbGlnbjoganVzdGlmeTsNCiAgZm9udC1zaXplOiAxOHB4Ow0KICB0ZXh0LWp1c3RpZnk6IGludGVyLXdvcmQ7DQp9DQoNCnRhYmxlLmRhdGFUYWJsZSB7DQogIGJhY2tncm91bmQtY29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7DQogIGNvbG9yOiBibGFjayAhaW1wb3J0YW50Ow0KfQ0KDQovKiBUaXRsZSAqLw0KLnRpdGxlLCAuc3VidGl0bGUsIC5hdXRob3IsIC5kYXRlIHsNCiAgdGV4dC1hbGlnbjogY2VudGVyOw0KICBmb250LWZhbWlseTogIlRpbWVzIE5ldyBSb21hbiIsIFRpbWVzLCBzZXJpZjsNCiAgY29sb3I6ICMwMDAwMDA7DQp9DQoNCmgxIHsNCiAgY29sb3I6ICM2RjRFMzc7IA0KICBmb250LXNpemU6IDMwcHg7DQogIGZvbnQtZmFtaWx5OiBUaW1lcyBOZXcgUm9tYW47DQp9DQpoMiB7DQogIGNvbG9yOiAjOEI0NTEzOyANCiAgZm9udC1zaXplOiAyNHB4Ow0KICBmb250LWZhbWlseTogIlRpbWVzIE5ldyBSb21hbiIsIFRpbWVzLCBzZXJpZjsNCn0NCg0KaDMgew0KICBjb2xvcjogI0JEQjc2QjsgLyogV2FybmEgb2xpdmUvZ29sZCAoc2VwZXJ0aSAiRnVuZ3NpIE1ldG9kZSIpICovDQogIGZvbnQtc2l6ZTogMThweDsNCiAgZm9udC1mYW1pbHk6ICJUaW1lcyBOZXcgUm9tYW4iLCBUaW1lcywgc2VyaWY7DQp9DQoNCi50b2NpZnkgLnRvY2lmeS1pdGVtLmFjdGl2ZSwNCi50b2NpZnkgLnRvY2lmeS1pdGVtLmhpZ2hsaWdodCB7DQogIGJhY2tncm91bmQtY29sb3I6ICM5NDg5NzkgIWltcG9ydGFudDsgDQogIGNvbG9yOiB3aGl0ZSFpbXBvcnRhbnQ7DQoNCi8qIFRhYmxlIG9mIGNvbnRlbnRzIChzaWRlYmFyKSBzdHlsZSAqLw0KLnRvY2lmeSB7DQogIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7DQogIGJvcmRlci1yYWRpdXM6IDZweDsNCiAgcGFkZGluZzogMTBweDsNCiAgZm9udC1mYW1pbHk6ICJUaW1lcyBOZXcgUm9tYW4iLCBUaW1lcywgc2VyaWY7DQogIGZvbnQtc2l6ZTogMjBweDsNCn0NCg0KLnRvY2lmeS1oZWFkZXIgew0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDY4MkI0OyAvKiBiaXJ1IHVudHVrIGJhZ2lhbiBhdGFzIHNpZGViYXIgKi8NCiAgY29sb3I6IHdoaXRlOw0KICBmb250LXdlaWdodDogYm9sZDsNCiAgcGFkZGluZzogNnB4Ow0KICB0ZXh0LWFsaWduOiBjZW50ZXI7DQogIGJvcmRlci1yYWRpdXM6IDRweDsNCiAgbWFyZ2luLWJvdHRvbTogMTBweDsNCn0NCg0KLnRvY2lmeS1pdGVtIHsNCiAgY29sb3I6ICM4QjQ1MTM7DQp9DQoNCnByZSwgY29kZSB7DQogIGJhY2tncm91bmQtY29sb3I6ICM5NDg5NzkgIWltcG9ydGFudDsNCiAgY29sb3I6ICM5NDg5NzkgIWltcG9ydGFudDsNCiAgYm9yZGVyLXJhZGl1czogNHB4Ow0KICBwYWRkaW5nOiA0cHg7DQp9DQo8L3N0eWxlPg0KDQoNCjxkaXYgc3R5bGU9ImNvbG9yOiBibGFjazsgYmFja2dyb3VuZC1jb2xvcjogI0Q3RDNCRjsgcGFkZGluZzogMjBweDsgYm9yZGVyLXJhZGl1czogMTBweDsgYm94LXNoYWRvdzogMCA0cHggOHB4IHJnYmEoMCwwLDAsMC4xKTsiPg0KIyAqKlBlbmRhaHVsdWFuKiogDQo8cCBzdHlsZT0idGV4dC1pbmRlbnQ6IDMwcHg7Ij4NCkRhbGFtIGR1bmlhIGJpc25pcywgcGVtYWhhbWFuIHRlcmhhZGFwIGh1YnVuZ2FuIGFudGFyYSBha3Rpdml0YXMgcGVtYXNhcmFuIChtYXJrZXRpbmcpIGRhbiBwZW5qdWFsYW4gKHNhbGVzKSBtZW5qYWRpIGFzcGVrIHBlbnRpbmcgZGFsYW0gbWVydW11c2thbiBzdHJhdGVnaSB5YW5nIGVmZWt0aWYuIFNhbGFoIHNhdHUgcGVuZGVrYXRhbiB5YW5nIGRhcGF0IGRpZ3VuYWthbiB1bnR1ayBtZW5nZXZhbHVhc2kga2VrdWF0YW4gZGFuIGFyYWggaHVidW5nYW4gdGVyc2VidXQgYWRhbGFoIG1lbGFsdWkgYW5hbGlzaXMga29yZWxhc2kuIA0KPC9wPg0KDQo8cCBzdHlsZT0idGV4dC1pbmRlbnQ6IDMwcHg7Ij4NCkFuYWxpc2lzIGtvcmVsYXNpIG1lcnVwYWthbiB1amkgc3RhdGlzdGlrYSB5YW5nIG1lbmd1a3VyIGtlZXJhdGFuIGh1YnVuZ2FuIGFudGFyYSBkdWEgdmFyaWFiZWwuIEtlZXJhdGFuIGh1YnVuZ2FuIGFudGFyYSBkdWEgdmFyaWFiZWwgZGFwYXQgZGl1a3VyIGtla3VhdGFubnlhLiBJbmRla3MgeWFuZyBtZW5ndWt1ciBrZWVyYXRhbiBodWJ1bmdhbiBkdWEgdmFyaWFiZWwgZGlzZWJ1dCBrb2VmaXNpZW4ga29yZWxhc2kuIEtldGlrYSBkYXRhIHRpZGFrIG1lbWVudWhpIGFzdW1zaSBub3JtYWxpdGFzIGF0YXUgYmVyc2lmYXQgb3JkaW5hbCwgbWV0b2RlIGtvcmVsYXNpIG5vbi1wYXJhbWV0cmlrIHNlcGVydGkga29yZWxhc2kgU3BlYXJtYW4gbWVuamFkaSBwaWxpaGFuIHlhbmcgbGViaWggdGVwYXQuDQo8L3A+DQoNCjxwIHN0eWxlPSJ0ZXh0LWluZGVudDogMzBweDsiPg0KS29yZWxhc2kgU3BlYXJtYW4gbWVydXBha2FuIHBlbmd1a3VyYW4gbm9ucGFyYW1ldHJpay4gS29lZmlzaWVuIGtvcmVsYXNpIGluaSBtZW1wdXlhaSBzaW1ib2wgJFxyaG8kIChyaG8pLiBQZW5ndWt1cmFuIGRlbmdhbiBtZW5nZ3VuYWthbiBrb2VmaXNpZW4ga29yZWxhc2kgU3BlYXJtYW4gZGlndW5ha2FuIHVudHVrIG1lbmlsYWkgYWRhbnlhIHNlYmVyYXBhIGJhaWsgZnVuZ3NpIG1vbm90b25payAoc3VhdHUgZnVuZ3NpIHlhbmcgc2VzdWFpIHBlcmludGFoKSB5YW5nIGRpZ3VuYWthbiB1bnR1ayBtZW5nZ2FtYmFya2FuIGh1YnVuZ2FuIGR1YSB2YXJpYWJlbCBkZW5nYW4gdGFucGEgbWVtYnVhdCBhc3Vtc2kgZGlzdHJpYnVzaSBmcmVrdWVuc2kgZGFyaSB2YXJpYWJlbC12YXJpYWJlbCB5YW5nIGRpdGVsaXRpLg0KPC9wPg0KDQoNCmBgYHtyLCByZXN1bHRzPSdhc2lzJywgZWNobz1GQUxTRX0NCmNhdCgiDQpOaWxhaSBrb2VmaXNpZW4ga29yZWxhc2kgU3BlYXJtYW4gKCRcXHJobyQpIGhhcnVzIG1lbWVudWhpICQtMSBcXGxlcSBcXHJobyBcXGxlcSAxJC4gDQpSdW11c255YSBhZGFsYWg6DQokJA0KXFxyaG8gPSAxIC0gXFxmcmFjezZcXHN1bV97aT0xfV57bn0gZF9pXjJ9e24obl4yLTEpfQ0KJCQNCiIpDQpgYGANCg0KPHAgYWxpZ249ImNlbnRlciI+DQpkaW1hbmEgDQo8L3A+DQoNCmBgYHtyLCByZXN1bHRzPSdhc2lzJywgZWNobz1GQUxTRX0NCmNhdCgiDQokJFxcc3VtX3tpPTF9XntufSBkX2leMiA9IFxcc3VtX3tpPTF9XntufSBcXGxlZnRbIFIoWF9pKSAtIFIoWV9pKSBcXHJpZ2h0XV4yDQokJCB5YWl0dSBqdW1sYWgga3VhZHJhdCBkYXJpIHNlbGlzaWgtc2VsaXNpaCBhbnRhcmEgcmFuay1yYW5rICRYX2kkIGRhbiAkWV9pJCB1bnR1ayBtYXNpbmctbWFzaW5nIHBlbmdhbWF0YW4uDQoiKQ0KYGBgDQoNCioqS2V0ZXJhbmdhbjoqKiAgDQokXHJobyQgICAgICA6IEtvZWZpc2llbiBrb3JlbGFzaSByYW5rIFNwZWFybWFuICANCiRkX2leMiQgICAgIDogUmFua2luZyB5YW5nIGRpa3VhZHJhdGthbiAgDQokbiQgICAgICAgICA6IEJhbnlha255YSBkYXRhICANCg0KDQpgYGB7ciB0YWJsZSwgZWNobz1GQUxTRSwgcmVzdWx0cz0nYXNpcycsIHdhcm5pbmc9RkFMU0V9DQpsaWJyYXJ5KGthYmxlRXh0cmEpDQpsaWJyYXJ5KGh0bWx0b29scykNCg0KIyBNZW1idWF0IGRhdGEgZnJhbWUgdW50dWsgdGFiZWwNCnRhYmVsX3JobyA8LSBkYXRhLmZyYW1lKA0KICAicmhvX3Bvc2l0aWYiID0gYygNCiAgICAiMC45IFwg4omkIFwgKs+BKiA8IDEiLA0KICAgICIwLjcgXCDiiaQgXCAqz4EqIDwgMC45IiwNCiAgICAiMC41IFwg4omkIFwgKs+BKiA8IDAuNyIsDQogICAgIjAuMyBcIOKJpCBcICrPgSogPCAwLjUiLA0KICAgICIwIFwg4omkIFwgKs+BKiA8IDAuMyINCiAgKSwNCiAgInJob19uZWdhdGlmIiA9IGMoDQogICAgIi0wLjkgXCDiiaQgXCAqz4EqIDwgLTEiLA0KICAgICItMC43IFwg4omkIFwgKs+BKiA8IC0wLjkiLA0KICAgICItMC41IFwg4omkIFwgKs+BKiA8IC0wLjciLA0KICAgICItMC4zIFwg4omkIFwgKs+BKiA8IC0wLjUiLA0KICAgICItMCBcIOKJpCBcICrPgSogPCAtMC4zIg0KICApLA0KICAiS2F0ZWdvcmkiID0gYygNCiAgICAiU2FuZ2F0IGt1YXQiLA0KICAgICJLdWF0IiwNCiAgICAiTW9kZXJhdCIsDQogICAgIkxlbWFoIiwNCiAgICAiU2FuZ2F0IGxlbWFoIg0KICApDQopDQoNCmtibCh0YWJlbF9yaG8sDQogICAgY2FwdGlvbiA9ICI8Y2VudGVyPjxiPlRhYmVsPC9iPiBJbnRlcnByZXRhc2kgTmlsYWkgJFxccmhvJCBTcGVhcm1hbjwvY2VudGVyPiIsDQogICAgZm9ybWF0ID0gImh0bWwiLA0KICAgIGFsaWduID0gImMiLA0KICAgIGVzY2FwZSA9IEZBTFNFKSAlPiUNCiAga2FibGVfc3R5bGluZygNCiAgICBib290c3RyYXBfb3B0aW9ucyA9IGMoInN0cmlwZWQiLCAiaG92ZXIiKSwNCiAgICBmdWxsX3dpZHRoID0gRkFMU0UsDQogICAgcG9zaXRpb24gPSAiY2VudGVyIiwNCiAgICBmb250X3NpemUgPSAxNA0KICApICU+JQ0KICByb3dfc3BlYygwLCBiYWNrZ3JvdW5kID0gIndoaXRlIikgJT4lICAjIGhlYWRlciBwdXRpaA0KICByb3dfc3BlYygxOm5yb3codGFiZWxfcmhvKSwgYmFja2dyb3VuZCA9ICJ3aGl0ZSIpICU+JSAgIyBpc2kgcHV0aWgNCiAgYWRkX2hlYWRlcl9hYm92ZShjKCJOaWxhaSAkXFxyaG8kIiA9IDIsICIgIiA9IDEpKQ0KYGBgDQojIyAqKkluc2lnaHQqKg0KPHAgc3R5bGU9InRleHQtaW5kZW50OiAzMHB4OyI+DQpJbnNpZ2h0IHlhbmcgaW5naW4gZGlwZXJvbGVoIGRhcmkgYW5hbGlzaXMgaW5pIGFkYWxhaCBhcGFrYWggcGVuaW5na2F0YW4gYWt0aXZpdGFzIG1hcmtldGluZyBtZW1pbGlraSBodWJ1bmdhbiBzaWduaWZpa2FuIHNlY2FyYSBzdGF0aXN0aWsgZGVuZ2FuIGtlbmFpa2FuIGFuZ2thIHBlbmp1YWxhbiwgeWFuZyBkYXBhdCBtZW1iZXJpa2FuIGRhc2FyIGJhZ2kgb3B0aW1hbGlzYXNpIHN0cmF0ZWdpIHByb21vc2kuDQo8L3A+DQoNCjwvZGl2Pg0KDQo8ZGl2IHN0eWxlPSJoZWlnaHQ6IDIwcHg7Ij48L2Rpdj4NCg0KPGRpdiBzdHlsZT0iY29sb3I6IGJsYWNrOyBiYWNrZ3JvdW5kLWNvbG9yOiAjRDdEM0JGOyBwYWRkaW5nOiAyMHB4OyBib3JkZXItcmFkaXVzOiAxMHB4OyBib3gtc2hhZG93OiAwIDRweCA4cHggcmdiYSgwLDAsMCwwLjEpOyI+DQojICoqUGVuZ3VqaWFuIERhdGEqKnsudGFic2V0fQ0KIyMgKipVamkgTm9ybWFsaXRhcyoqDQoxLiBIaXBvdGVzaXM8YnI+DQogICRIXzAkIDogRGF0YSBiZXJkaXN0cmlidXNpIG5vcm1hbDxicj4NCiAgJEhfMSQgOiBEYXRhIHRpZGFrIGJlcmRpc3RyaWJ1c2kgbm9ybWFsDQogICAgDQoyLiBUYXJhZiBTaWduaWZpa2Fuc2kgKM6xKQ0KDQozLiBEYWVyYWggS3JpdGlzICRIXzAkIGRpdG9sYWsgamlrYSAqcOKIknZhbHVlKiA8ICRcYWxwaGEkDQo0LiBTdGF0aXN0aWsgVWppDQogICAgTWVuZ2d1bmFrYW4gc2FwaGlyby50ZXN0KCkgdW50dWsgbWVuZ3VqaSBub3JtYWxpdGFzIHBhZGEgbWFzaW5nLW1hc2luZyB2YXJpYWJlbC4NCjUuIEtlc2ltcHVsYW4NCiAgICBKaWthIHAtdmFsdWUgPCAwLDA1IOKGkiBUb2xhayAkSF8wJCDihpIgRGF0YSB0aWRhayBiZXJkaXN0cmlidXNpIG5vcm1hbC48YnI+DQogICAgSmlrYSBwLXZhbHVlIOKJpSAwLDA1IOKGkiBHYWdhbCB0b2xhayAkSF8wJCDihpIgRGF0YSBiZXJkaXN0cmlidXNpIG5vcm1hbC4NCiAgICANCiMjICoqVWppIEtvcmVsYXNpIFNwZWFybWFuKioNCjEuIEhpcG90ZXNpczxicj4NCiAgICAkSF8wJCA6IFRpZGFrIHRlcmRhcGF0IGh1YnVuZ2FuIChrb3JlbGFzaSkgeWFuZyBzaWduaWZpa2FuIGFudGFyYSBkdWEgdmFyaWFiZWwgPGJyPg0KICAgICRIXzEkIDogVGVyZGFwYXQgaHVidW5nYW4gKGtvcmVsYXNpKSB5YW5nIHNpZ25pZmlrYW4gYW50YXJhIGR1YSB2YXJpYWJlbA0KICAgIA0KMi4gVGFyYWYgU2lnbmlmaWthbnNpICjOsSkNCg0KMy4gRGFlcmFoIEtyaXRpcyAkSF8wJCBkaXRvbGFrIGppa2EgICpw4oiSdmFsdWUqIDwgJFxhbHBoYSQNCg0KNC4gU3RhdGlzdGlrIFVqaQ0KICAgIE1lbmdndW5ha2FuIGNvci50ZXN0KCkgdW50dWsgbWVuZ3VqaSBrb3JlbGFzaSBhbnRhcmEga2VkdWEgdmFyaWFiZWwuDQogICAgDQo1LiBLZXNpbXB1bGFuDQogIEppa2EgcC12YWx1ZSA8IDAsMDUg4oaSIFRvbGFrICRIXzAkIOKGkiBUZXJkYXBhdCBodWJ1bmdhbiAoa29yZWxhc2kpIHlhbmcgc2lnbmlmaWthbiBhbnRhcmEgZHVhIHZhcmlhYmVsLjxicj4NCiAgSmlrYSBwLXZhbHVlIOKJpSAwLDA1IOKGkiBHYWdhbCB0b2xhayAkSF8wJCDihpIgVGlkYWsgdGVyZGFwYXQgaHVidW5nYW4gKGtvcmVsYXNpKSB5YW5nIHNpZ25pZmlrYW4gYW50YXJhIGR1YSB2YXJpYWJlbC4NCjwvZGl2Pg0KDQo8ZGl2IHN0eWxlPSJoZWlnaHQ6IDIwcHg7Ij48L2Rpdj4NCg0KPGRpdiBzdHlsZT0iY29sb3I6IGJsYWNrOyBiYWNrZ3JvdW5kLWNvbG9yOiAjRDdEM0JGOyBwYWRkaW5nOiAyMHB4OyBib3JkZXItcmFkaXVzOiAxMHB4OyBib3gtc2hhZG93OiAwIDRweCA4cHggcmdiYSgwLDAsMCwwLjEpOyI+ICANCiMgKipEZXNrcmlwc2kgRGF0YSoqDQoxLiBBa3RpZmthbiBsaWJyYXJ5IHlhbmcgZGlndW5ha2FuDQpgYGB7ciBsaWJyYSwgbWVzc2FnZT1GQUxTRSwgd2FybmluZz1GQUxTRX0NCmxpYnJhcnkocmVhZHhsKSAgICAjIFVudHVrIG1lbWJhY2EgZmlsZSBFeGNlbA0KbGlicmFyeShkcGx5cikgICAgICMgVW50dWsgbWFuaXB1bGFzaSBkYXRhDQpsaWJyYXJ5KGdncGxvdDIpICAgIyBVbnR1ayB2aXN1YWxpc2FzaSBkYXRhDQpsaWJyYXJ5KHNjYWxlcykgICAgIyBVbnR1ayBmb3JtYXR0aW5nIGF4aXMNCmxpYnJhcnkoRFQpICAgICAgICAjIFVudHVrIHRhYmVsIGludGVyYWt0aWYNCmxpYnJhcnkodGlkeXZlcnNlKSAjIEtvbGVrc2kgcGFrZXQgZGF0YSBzY2llbmNlDQpsaWJyYXJ5KGtuaXRyKSAgICAgIyBNZW5nYXR1ciB0YW1waWxhbiBvdXRwdXQgZGkgUk1hcmtkb3duDQpsaWJyYXJ5KGdncHVicikgICAgIyBVbnR1ayBtZW1idWF0IGdyYWZpayBkYW4gbWVuYW1iYWhrYW4gdWppIHN0YXRpc3RpayBwYWRhIGdyYWZpayBnZ3Bsb3QNCmxpYnJhcnkocGF0Y2h3b3JrKSAjIFVudHVrIG1lbmdnYWJ1bmdrYW4gcGxvdA0KYGBgDQoNCjIuIElucHV0IERhdGENCmBgYHtyLCB9DQpEYXRhMDIgPC0gcmVhZF9leGNlbCgifi9TZW1lc3RlciA0L1NJTS9DTSAxLzMuIENNMSAtIENvZmZlZSBDaGFpbiBEYXRhc2V0cy54bHN4IikNCmBgYA0KDQozLiBUYW1waWxrYW4gRGF0YQ0KYGBge3IsIGVjaG89VFJVRX0NCmxpYnJhcnkoRFQpDQpsaWJyYXJ5KGRwbHlyKQ0KbWFya2V0aW5nX3NhbGVzIDwtIERhdGEwMiAlPiUgc2VsZWN0KE1hcmtldGluZywgU2FsZXMpDQpEVDo6ZGF0YXRhYmxlKG1hcmtldGluZ19zYWxlcykNCmBgYA0KPC9kaXY+DQoNCjxkaXYgc3R5bGU9ImhlaWdodDogMjBweDsiPjwvZGl2Pg0KDQo8ZGl2IHN0eWxlPSJjb2xvcjogYmxhY2s7IGJhY2tncm91bmQtY29sb3I6ICNEN0QzQkY7IHBhZGRpbmc6IDIwcHg7IGJvcmRlci1yYWRpdXM6IDEwcHg7IGJveC1zaGFkb3c6IDAgNHB4IDhweCByZ2JhKDAsMCwwLDAuMSk7Ij4gIA0KIyAqKkFuYWxpc2lzIEtvcmVsYXNpIFNwZWFybWFuKiogey50YWJzZXR9DQoNCiMjIFVqaSBOb3JtYWxpdGFzDQoNCi0gKipVamkgTm9ybWFsaXRhcyBWYXJpYWJlbCBNYXJrZXRpbmcqKiANCg0KYGBge3IgcXFwbG90LW1hcmtldGluZywgZmlnLndpZHRoPTYsIGZpZy5oZWlnaHQ9NSwgZmlnLmFsaWduPSdjZW50ZXInLCB3YXJuaW5nPUZBTFNFLCBlY2hvPVRSVUV9DQpsaWJyYXJ5KGdncHVicikNCg0KZ2dxcXBsb3QobWFya2V0aW5nX3NhbGVzJE1hcmtldGluZykgKw0KICBsYWJzKHRpdGxlID0gIlEtUSBQbG90IFZhcmlhYmVsIE1hcmtldGluZyIpICsNCiAgdGhlbWUoDQogICAgcGxvdC50aXRsZSA9IGVsZW1lbnRfdGV4dCgNCiAgICAgIGhqdXN0ID0gMC41LCAgDQogICAgICBzaXplID0gMTQsICAgIA0KICAgICAgZmFjZSA9ICJib2xkIiwgDQogICAgICBtYXJnaW4gPSBtYXJnaW4oYiA9IDE1KSAgDQogICkpDQpgYGANCg0KYGBge3J9DQpzaGFwaXJvLnRlc3QobWFya2V0aW5nX3NhbGVzJE1hcmtldGluZykNCmBgYA0KDQoNCioqS2VzaW1wdWxhbioqPGJyPg0KS2FyZW5hIHAtdmFsdWUgPSAyLjJlLTE2IDwgMCwwNSBtYWthICRIXzAkIGRpdG9sYWsgeWFuZyBiZXJhcnRpIGRhdGEgdGlkYWsgYmVyZGlzdHJpYnVzaSBub3JtYWwuDQoNCg0KDQotICoqVWppIE5vcm1hbGl0YXMgVmFyaWFiZWwgU2FsZXMqKg0KDQoNCmBgYHtyIHFxcGxvdC1zYWxlcywgZmlnLndpZHRoPTYsIGZpZy5oZWlnaHQ9NSwgZmlnLmFsaWduPSdjZW50ZXInLCBlY2hvPVRSVUV9DQpnZ3FxcGxvdChtYXJrZXRpbmdfc2FsZXMkU2FsZXMpICsNCiAgbGFicyh0aXRsZSA9ICJRLVEgUGxvdCBWYXJpYWJlbCBTYWxlcyIpICsNCiAgdGhlbWUoDQogICAgcGxvdC50aXRsZSA9IGVsZW1lbnRfdGV4dCgNCiAgICAgIGhqdXN0ID0gMC41LA0KICAgICAgc2l6ZSA9IDE0LA0KICAgICAgZmFjZSA9ICJib2xkIiwNCiAgICAgIG1hcmdpbiA9IG1hcmdpbihiID0gMTUpKQ0KICApDQpgYGANCg0KYGBge3J9DQpzaGFwaXJvLnRlc3QobWFya2V0aW5nX3NhbGVzJFNhbGVzKQ0KYGBgDQoNCioqS2VzaW1wdWxhbioqIDxicj4NCkthcmVuYSBwLXZhbHVlID0gMi4yZS0xNiA8IDAsMDUgbWFrYSAkSF8wJCBkaXRvbGFrIHlhbmcgYmVyYXJ0aSBkYXRhIHRpZGFrIGJlcmRpc3RyaWJ1c2kgbm9ybWFsLg0KDQoNCg0KDQojIyBVamkgS29yZWxhc2kgU3BlYXJtYW4NCg0KYGBge3IgY29tYmluZWQtcGxvdHMsIGVjaG89VFJVRSwgd2FybmluZz1GQUxTRSwgZmlnLmFsaWduPSdjZW50ZXInLCBtZXNzYWdlPUZBTFNFLCBmaWcud2lkdGg9MTAsIGZpZy5oZWlnaHQ9NX0NCmxpYnJhcnkoZ2dwbG90MikNCmxpYnJhcnkocGF0Y2h3b3JrKSAgDQoNCiMgUGxvdCB1bnR1ayBNYXJrZXRpbmcNCnBsb3RfbWFya2V0aW5nIDwtIGdncGxvdChtYXJrZXRpbmdfc2FsZXMsIGFlcyh4ID0gTWFya2V0aW5nKSkgKyANCiAgZ2VvbV9oaXN0b2dyYW0oYmlucyA9IDMwLCBmaWxsID0gIiM5QTdFNkYiLCBjb2xvciA9ICIjNTQ0NzNGIiwgYWxwaGEgPSAwLjcpICsNCiAgbGFicyh0aXRsZSA9ICJEaXN0cmlidXNpIE5pbGFpIE1hcmtldGluZyIsDQogICAgICAgeCA9ICJNYXJrZXRpbmciLA0KICAgICAgIHkgPSAiRnJla3VlbnNpIikgKw0KICB0aGVtZV9taW5pbWFsKCkNCg0KIyBQbG90IHVudHVrIFNhbGVzDQpwbG90X3NhbGVzIDwtIGdncGxvdChtYXJrZXRpbmdfc2FsZXMsIGFlcyh4ID0gU2FsZXMpKSArIA0KICBnZW9tX2hpc3RvZ3JhbShiaW5zID0gMzAsIGZpbGwgPSAiI0I1OUY3OCIsIGNvbG9yID0gIiM1NDQ3M0YiLCBhbHBoYSA9IDAuNykgKw0KICBsYWJzKHRpdGxlID0gIkRpc3RyaWJ1c2kgTmlsYWkgU2FsZXMiLA0KICAgICAgIHggPSAiU2FsZXMiLCANCiAgICAgICB5ID0gIkZyZWt1ZW5zaSIpICsNCiAgdGhlbWVfbWluaW1hbCgpDQoNCiMgTWVuZ2dhYnVuZ2thbiBwbG90IHNlY2FyYSBob3Jpem9udGFsDQpjb21iaW5lZF9wbG90cyA8LSBwbG90X21hcmtldGluZyArIHBsb3Rfc2FsZXMgKyANCiAgcGxvdF9hbm5vdGF0aW9uKHRpdGxlID0gIkRpc3RyaWJ1c2kgVmFyaWFiZWwgTWFya2V0aW5nIGRhbiBTYWxlcyIsDQogICAgICAgICAgICAgICAgdGhlbWUgPSB0aGVtZShwbG90LnRpdGxlID0gZWxlbWVudF90ZXh0KGhqdXN0ID0gMC41LCBzaXplID0gMTQpKSkNCg0KIyBNZW5hbXBpbGthbiBwbG90IGdhYnVuZ2FuDQpjb21iaW5lZF9wbG90cw0KYGBgDQoNCg0KYGBge3IsIHdhcm5pbmc9RkFMU0V9DQpjb3JfcmVzdWx0IDwtIGNvci50ZXN0KG1hcmtldGluZ19zYWxlcyRNYXJrZXRpbmcsIG1hcmtldGluZ19zYWxlcyRTYWxlcywgDQogICAgICAgICAgICAgICAgICAgICAgIG1ldGhvZCA9ICJzcGVhcm1hbiIsIGV4YWN0ID0gRkFMU0UpDQpwcmludChjb3JfcmVzdWx0KQ0KYGBgDQoNCioqS2VzaW1wdWxhbioqPGJyPg0KS2FyZW5hIHAtdmFsdWUgPSAyLjJlLTE2IDwgMCwwNSBtYWthICRIXzAkIGRpdG9sYWsgeWFuZyBiZXJhcnRpIHRlcmRhcGF0IGh1YnVuZ2FuIChrb3JlbGFzaSkgeWFuZyBzaWduaWZpa2FuIGFudGFyYSBtYXJrZXRpbmcgZGVuZ2FuIHNhbGVzLiANCg0KRGlkYXBhdGthbiAgbmlsYWkgcmhvICRccmhvJCBzZWJlc2FyICoqMC44MDcxNTA4KiogeWFuZyB0ZXJtYXN1ayBkYWxhbSBrYXRlZ29yaSBrb3JlbGFzaSBrdWF0IGthcmVuYSA+IDAsNy4gVGVyZGFwYXQgaHVidW5nYW4gcG9zaXRpZiBrdWF0IGFudGFyYSB2YXJpYWJlbCBtYXJrZXRpbmcgZGFuIHNhbGVzLiBTZXRpYXAgcGVuaW5na2F0YW4gcGFkYSBha3Rpdml0YXMgbWFya2V0aW5nIGNlbmRlcnVuZyBkaWlrdXRpIHBlbmluZ2thdGFuIHNhbGVzLg0KDQoNCmBgYHtyLCBlY2hvPVRSVUUsIGZpZy5hbGlnbj0nY2VudGVyJywgbWVzc2FnZT1GQUxTRSwgd2FybmluZz1GQUxTRX0NCmxpYnJhcnkoZ2dwbG90MikNCg0KZ2dwbG90KG1hcmtldGluZ19zYWxlcywgYWVzKHggPSBNYXJrZXRpbmcsIHkgPSBTYWxlcykpICsNCiAgZ2VvbV9wb2ludChhbHBoYSA9IDAuNSwgc2l6ZSA9IDEuNSkgKyAgDQogIGdlb21fc21vb3RoKG1ldGhvZCA9ICJsbSIsIHNlID0gRkFMU0UsIGNvbG9yID0gImJsdWUiLCBsaW5ld2lkdGggPSAxKSArICANCiAgZ2d0aXRsZSgiSHVidW5nYW4gYW50YXJhIE1hcmtldGluZyBkYW4gU2FsZXMiKSArDQogIHhsYWIoIkJpYXlhIE1hcmtldGluZyIpICsNCiAgeWxhYigiVG90YWwgU2FsZXMiKSArDQogIHRoZW1lKA0KICAgIHBsb3QudGl0bGUgPSBlbGVtZW50X3RleHQoDQogICAgICBoanVzdCA9IDAuNSwgICAgICAgICAgIA0KICAgICAgc2l6ZSA9IDE0LCAgICAgICAgICAgICANCiAgICAgIGNvbG9yID0gIiMzMzMzMzMiLCAgICAgIA0KICAgICAgZmFtaWx5ID0gIlRpbWVzIE5ldyBSb21hbiINCiAgICApLA0KICAgIA0KICAgIGF4aXMudGl0bGUgPSBlbGVtZW50X3RleHQoDQogICAgICBzaXplID0gMTQsICAgICAgICAgICAgDQogICAgICBjb2xvciA9ICIjNTU1NTU1IiAgICAgIA0KICAgICksDQogICAgYXhpcy50ZXh0ID0gZWxlbWVudF90ZXh0KA0KICAgICAgc2l6ZSA9IDEyLCAgICAgICAgICAgIA0KICAgICAgY29sb3IgPSAiIzY2NjY2NiIgICAgDQogICAgKSwNCg0KICAgIHBsb3QuYmFja2dyb3VuZCA9IGVsZW1lbnRfcmVjdChmaWxsID0gIiNGRkY4RTciKSwgIA0KICAgIHBhbmVsLmJhY2tncm91bmQgPSBlbGVtZW50X3JlY3QoZmlsbCA9ICIjRkZGOEU3IiksIA0KDQogICAgcGFuZWwuZ3JpZC5tYWpvciA9IGVsZW1lbnRfbGluZShjb2xvciA9ICJncmF5ODAiLCBsaW5ld2lkdGggPSAwLjUpLCAgDQogICAgcGFuZWwuZ3JpZC5taW5vciA9IGVsZW1lbnRfYmxhbmsoKSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQogICAgcGFuZWwuYm9yZGVyID0gZWxlbWVudF9yZWN0KGNvbG9yID0gImJsYWNrIiwgZmlsbCA9IE5BLCBsaW5ld2lkdGggPSAxKSAgDQogICkNCmBgYA0KPHAgc3R5bGU9InRleHQtaW5kZW50OiAzMHB4OyI+DQpHYXJpcyBiaXJ1IG1lbnVuanVra2FuIGtlbWlyaW5nYW4gcG9zaXRpZiwgeWFuZyBtZW5hbmRha2FuIGJhaHdhIHNlY2FyYSB1bXVtLCBzZW1ha2luIHRpbmdnaSBiaWF5YSBtYXJrZXRpbmcsIG1ha2Egc2VtYWtpbiB0aW5nZ2kgcHVsYSB0b3RhbCBwZW5qdWFsYW4gKHNhbGVzKS4gVGl0aWstdGl0aWsgZGF0YSB0ZXJzZWJhciBjdWt1cCBsdWFzIGRpIHNla2l0YXIgZ2FyaXMuIEluaSBtZW51bmp1a2thbiBiYWh3YSBtZXNraXB1biBhZGEga2VjZW5kZXJ1bmdhbiBwb3NpdGlmLCBodWJ1bmdhbiBhbnRhcmEgYmlheWEgbWFya2V0aW5nIGRhbiBwZW5qdWFsYW4gdGlkYWsgc2VsYWx1IGtvbnNpc3Rlbi4gQWRhIHBlbmdhcnVoIGZha3RvciBsYWluIGF0YXUgdmFyaWFzaSBhbGFtaSBkYWxhbSBkYXRhLiBUZXJkYXBhdCBiZWJlcmFwYSB0aXRpayB5YW5nIG1lbnlpbXBhbmcgamF1aCBkYXJpIGdhcmlzIChiYWlrIGRpIGJhd2FoIG1hdXB1biBkaSBhdGFzKSwgeWFuZyBiaXNhIGRpYW5nZ2FwIHNlYmFnYWkgb3V0bGllci4gSW5pIG1lbnVuanVra2FuIGJhaHdhIGRhbGFtIGJlYmVyYXBhIGthc3VzLCBiaWF5YSBtYXJrZXRpbmcgdGluZ2dpIHRpZGFrIHNlbGFsdSBtZW5naGFzaWxrYW4gc2FsZXMgdGluZ2dpIGF0YXUgc2ViYWxpa255YS4NCjwvcD4NCg0KDQo8L2Rpdj4NCg0KPGRpdiBzdHlsZT0iaGVpZ2h0OiAyMHB4OyI+PC9kaXY+DQoNCjxkaXYgc3R5bGU9ImNvbG9yOiBibGFjazsgYmFja2dyb3VuZC1jb2xvcjogI0Q3RDNCRjsgcGFkZGluZzogMjBweDsgYm9yZGVyLXJhZGl1czogMTBweDsgYm94LXNoYWRvdzogMCA0cHggOHB4IHJnYmEoMCwwLDAsMC4xKTsiPiAgDQojICoqS2VzaW1wdWxhbioqDQo8cCBzdHlsZT0idGV4dC1pbmRlbnQ6IDMwcHg7Ij4NCkJlcmRhc2Fya2FuIHVqaSBub3JtYWxpdGFzIG1lbmdndW5ha2FuIFNoYXBpcm8tV2lsaywgZGlrZXRhaHVpIGJhaHdhIGRhdGEgcGFkYSB2YXJpYWJlbCBtYXJrZXRpbmcgZGFuIHNhbGVzIHRpZGFrIGJlcmRpc3RyaWJ1c2kgbm9ybWFsLiBBbmFsaXNpcyBkaWxhbmp1dGthbiBkZW5nYW4gdWppIGtvcmVsYXNpIG5vbi1wYXJhbWV0cmlrIG1lbmdndW5ha2FuIFNwZWFybWFuLiBIYXNpbCB1amkga29yZWxhc2kgU3BlYXJtYW4gbWVudW5qdWtrYW4gYmFod2EgbmlsYWkgKnAtdmFsdWUqIDwgMCwwNSwgc2VoaW5nZ2EgJEhfMCQgZGl0b2xhay4gSW5pIGJlcmFydGkgdGVyZGFwYXQgaHVidW5nYW4geWFuZyBzaWduaWZpa2FuIGFudGFyYSB2YXJpYWJlbCBtYXJrZXRpbmcgZGFuIHNhbGVzLiBOaWxhaSBrb2VmaXNpZW4ga29yZWxhc2kgJFxyaG8kIChyaG8pIHNlYmVzYXIgMCw4MDcxNTA4IG1lbmdpbmRpa2FzaWthbiBhZGFueWEgaHVidW5nYW4gcG9zaXRpZiB5YW5nIGt1YXQgYW50YXJhIGtlZHVhbnlhLCB5YW5nIG1lbnVuanVra2FuIGJhaHdhIHNldGlhcCBwZW5pbmdrYXRhbiBha3Rpdml0YXMgbWFya2V0aW5nIGNlbmRlcnVuZyBkaWlrdXRpIG9sZWggcGVuaW5na2F0YW4gb3RhbCBzYWxlcy4NCjwvcD4NCjxwIHN0eWxlPSJ0ZXh0LWluZGVudDogMzBweDsiPg0KRGVuZ2FuIGRlbWlraWFuLCBkYXBhdCBkaXNpbXB1bGthbiBiYWh3YSBzdHJhdGVnaSBtYXJrZXRpbmcgeWFuZyBkaWxha3VrYW4gc2VsYW1hIGluaSB0ZWxhaCBiZXJqYWxhbiBzZWNhcmEgZWZla3RpZiBkYW4gc2VzdWFpIGRlbmdhbiB0dWp1YW4gcGVtYXNhcmFuLCBrYXJlbmEgdGVyYnVrdGkgbWFtcHUgbWVuZG9yb25nIHBlbmluZ2thdGFuIHRvdGFsIHBlbmp1YWxhbi4gSGFsIGluaSBtZW51bmp1a2thbiBiYWh3YSBhbG9rYXNpIGFuZ2dhcmFuIGRhbiB1cGF5YSBkYWxhbSBrZWdpYXRhbiBtYXJrZXRpbmcgbWVtYmVyaWthbiBkYW1wYWsgeWFuZyBueWF0YSB0ZXJoYWRhcCB0b3RhbCBwZW5qdWFsYW4uDQo8L3A+DQo8L2Rpdj4NCg0KPGRpdiBzdHlsZT0iaGVpZ2h0OiAyMHB4OyI+PC9kaXY+DQoNCjxkaXYgc3R5bGU9ImNvbG9yOiBibGFjazsgYmFja2dyb3VuZC1jb2xvcjogI0Q3RDNCRjsgcGFkZGluZzogMjBweDsgYm9yZGVyLXJhZGl1czogMTBweDsgYm94LXNoYWRvdzogMCA0cHggOHB4IHJnYmEoMCwwLDAsMC4xKTsiPg0KIyAqKlJlZmVyZW5zaSoqDQoNCjEuIE5lbHZpZGF3YXRpLCAmIEthc21hbiwgTS4gKDIwMjMpLiBQZW5nZ3VuYWFuIGtvcmVsYXNpIFNwZWFybWFuIHVudHVrIG1lbmd1amkgaHVidW5nYW4gc3VodSBkYW4gYmVzYXJueWEgY3VyYWggaHVqYW4gYnVsYW5hbiBkaSBLb3RhIFBhZGFuZy4gSnVybmFsIERhdXIgTGluZ2t1bmdhbiwgNigxKSwgMzTigJMzOS4NCg0KMi4gTnVncm9obywgUy4sIEFrYmFyLCBTLiwgJiBWdXN2aXRhc2FyaSwgUi4gKDIwMDgpLiBLYWppYW4gaHVidW5nYW4ga29lZmlzaWVuIGtvcmVsYXNpIFBlYXJzb24gKHIpLCBTcGVhcm1hbi1yaG8gKCRccmhvJCksz4EgS2VuZGFsbC1UYXUgKCRcdGF1JCksIEdhbW1hICgkXEdhbW1hJCksIGRhbiBTb21lcnMgKCRkX3t5eH0kKS4gSnVybmFsIEdyYWRpZW4sIDQoMiksIDM3MuKAkzM4MS4NCg0KMy4gWWFudGksIEMuIEEuLCAmIEFraHJpLCBJLiBKLiAoMjAyMSkuIFBlcmJlZGFhbiB1amkga29yZWxhc2kgUGVhcnNvbiwgU3BlYXJtYW4gZGFuIEtlbmRhbGwgVGF1IGRhbGFtIG1lbmdhbmFsaXNpcyBrZWphZGlhbiBkaWFyZS4gSnVybmFsIEVuZHVyYW5jZTogS2FqaWFuIElsbWlhaCBQcm9ibGVtYSBLZXNlaGF0YW4sIDYoMSksIDUx4oCTNTguDQoNCjQuIEFtZWxpYSwgRC4gRy4sIE5hdGFzeWEsIE0uLCBTZXB0aWFuYSwgTS4sIERld2ksIFouIEsuLCAmIEhhbGl6YWgsIE4uICgyMDI0KS4gQW5hbGlzaXMga29yZWxhc2kgYW50YXJhIGt1YW50aXRhcyB3YWt0dSB0aWR1ciBkZW5nYW4ga29uc2VudHJhc2kgYmVsYWphciBtYWhhc2lzd2EgQWdyaWJpc25pcyBVbml2ZXJzaXRhcyBTdWx0YW4gQWdlbmcgVGlydGF5YXNhLiBJSkVEUjogSW5kb25lc2lhbiBKb3VybmFsIG9mIEVkdWNhdGlvbiBhbmQgRGV2ZWxvcG1lbnQgUmVzZWFyY2gsIDIoMSkuDQoNCg0KPC9kaXY+DQo=